i made this code to change the instagram embed to a preview image
$strings = array('https://instagram.com/p/BanWWFtBz6O', 'BanWWFtBz6O');
$searchs = array('/instagram\.com\/p\/([a-zA-Z0-9]+)/', '/([a-zA-Z0-9]+)/');
$replaces = array('instagram.com/p/$1/media/?size=l', 'https://instagram.com/p/$1/media/?size=l');
$soc_instagram = preg_replace($searchs,$replaces,$strings);
but i have a problem with that code, first when i try to put the first value in $strings https://instagram.com/p/BanWWFtBz6O it change to https://instagram.com/p/BanWWFtBz6O/media/?size=l that should be ok
the problem when i try to put second value from $strings BanWWFtBz6O (only the ID of instagram post) it change to
https://instagram.com/p/https/media/?size=l://https://instagram.com/p/instagram/media/?size=l.https://instagram.com/p/com/media/?size=l/https://instagram.com/p/p/media/?size=l/https://instagram.com/p/BaQsAubg6H3/media/?size=l/https://instagram.com/p/media/media/?size=l/?https://instagram.com/p/size/media/?size=l=https://instagram.com/p/l/media/?size=l
did i miss something? please help
==================================================================== how about youtube code?
$string = array('https://www.youtube.com/watch?v=QTrPMYYGam8', 'QTrPMYYGam8');
$search = array('/www.youtube\.com\/watch\?v=([a-zA-Z0-9_\-+?:]+)/', '/([a-zA-Z0-9_\-+?:]+)/');
$replace = array('i.ytimg.com/vi/$1/hqdefault.jpg', 'https://i.ytimg.com/vi/$1/hqdefault.jpg');
$soc_youtube = preg_replace($search,$replace,$string);
A single replace will work:
$strings = array('https://instagram.com/p/BanWWFtBz6O', 'BanWWFtBz6O');
$searchs = array('~(?:https://instagram\.com/p/)?([a-zA-Z0-9]+)~');
$replaces = array('https://instagram.com/p/$1/media/?size=l');
$soc_instagram = preg_replace($searchs,$replaces,$strings);
print_r($soc_instagram);
Output:
Array
(
[0] => https://instagram.com/p/BanWWFtBz6O/media/?size=l
[1] => https://instagram.com/p/BanWWFtBz6O/media/?size=l
)
for youtube
use the same method:
$string = array('https://www.youtube.com/watch?v=QTrPMYYGam8', 'QTrPMYYGam8');
$search = array('~(?:https://www.youtube\.com/watch\?v=)?([a-zA-Z0-9_\-+?:]+)~');
$replace = array('https://i.ytimg.com/vi/$1/hqdefault.jpg');
$soc_youtube = preg_replace($search,$replace,$string);