instagram preg_replace 获取预览
instagram preg_replace to get preview
我编写了这段代码来将 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//media/?size=l', 'https://instagram.com/p//media/?size=l');
$soc_instagram = preg_replace($searchs,$replaces,$strings);
但我对该代码有疑问,
首先,当我尝试将第一个值放入 $strings https://instagram.com/p/BanWWFtBz6O it change to https://instagram.com/p/BanWWFtBz6O/media/?size=l 时应该没问题
当我尝试从 $strings BanWWFtBz6O 中输入第二个值时出现的问题(只有 instagram 的 ID post)它变为
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//hqdefault.jpg', 'https://i.ytimg.com/vi//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//media/?size=l');
$soc_instagram = preg_replace($searchs,$replaces,$strings);
print_r($soc_instagram);
输出:
Array
(
[0] => https://instagram.com/p/BanWWFtBz6O/media/?size=l
[1] => https://instagram.com/p/BanWWFtBz6O/media/?size=l
)
对于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//hqdefault.jpg');
$soc_youtube = preg_replace($search,$replace,$string);
我编写了这段代码来将 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//media/?size=l', 'https://instagram.com/p//media/?size=l');
$soc_instagram = preg_replace($searchs,$replaces,$strings);
但我对该代码有疑问, 首先,当我尝试将第一个值放入 $strings https://instagram.com/p/BanWWFtBz6O it change to https://instagram.com/p/BanWWFtBz6O/media/?size=l 时应该没问题
当我尝试从 $strings BanWWFtBz6O 中输入第二个值时出现的问题(只有 instagram 的 ID post)它变为
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//hqdefault.jpg', 'https://i.ytimg.com/vi//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//media/?size=l');
$soc_instagram = preg_replace($searchs,$replaces,$strings);
print_r($soc_instagram);
输出:
Array
(
[0] => https://instagram.com/p/BanWWFtBz6O/media/?size=l
[1] => https://instagram.com/p/BanWWFtBz6O/media/?size=l
)
对于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//hqdefault.jpg');
$soc_youtube = preg_replace($search,$replace,$string);