Php instagram preg_替换以获得预览

Php instagram preg_替换以获得预览,php,preg-replace,instagram,Php,Preg Replace,Instagram,我制作这段代码是为了将instagram嵌入到预览图像中 $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嵌入到预览图像中

$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); 
但我对那个密码有个问题, 首先,当我尝试将第一个值放入$strings时,它会更改为应该可以

当我尝试将$strings的第二个值BanWWFtBz6O仅将instagram post的ID更改为

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
我错过什么了吗?请帮忙

==================================================================== youtube代码呢

$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);

一次更换即可:

$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);
输出:

对于youtube,请使用相同的方法:

$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);

这段代码非常好用,谢谢。你能帮我查一下youtube代码吗?我已经编辑了第一篇文章
$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);