我想在字符串中获得youtube链接示例
"嗨,您如何检查https://www.youtube.com/watch?v=r_p8zxirfji";
然后我得到链接
https://www.youtube.com/watch?v=r_p8zxirfji
获得链接后,我想从字符串删除该链接
对于所有YouTube URL
使用@aampudia答案,从php的字符串中提取url,您可以获取URL并像
一样对其进行解析。<?php
$pattern='#bhttps?://[^,s()<>]+(?:([wd]+)|([^,[:punct:]s]|/))#';
$str="hi how are you check it https://www.youtube.com/watch?v=r_p8ZXIRFJI";
preg_match_all($pattern, $str, $match);
// if there are multiple urls then use loop here
print_r($match[0]);
echo '<br/>';
// otherwise just use
echo isset($match[0][0]) ? $match[0][0] : 'No url found';
// and to replace string use
echo '<br/>';
echo strpos($match[0][0],'.youtube.') ? str_replace($match[0][0],'',$str) : 'No youtube url'; // let $match[0][0] is defined and not null
?>
phpfiddle
在这里我们使用regular expression
从字符串中提取YouTube链接。
REGEX: (?:https?://)(?:www.)?(?:youtube|youtu).(?:be|com)/[^s]+
尝试REGEX DEMO
注意: youtube链接可以是此格式,也可以https://youtu.be/_3tvl-zac4k
示例字符串: 嗨,您如何检查https://www.youtube.com/watch?v=r_p8zxirfji youtube youtube链接可以是此类型https://youtu。BE/_3TVL-ZAC4K
尝试此代码段
<?php
$string="hi how are you check it https://www.youtube.com/watch?v=r_p8ZXIRFJI youtube link can be of this type https://youtu.be/_3tVL-ZAc4k";
preg_match_all("/(?:https?://)(?:www.)?(?:youtube|youtu).(?:be|com)/[^s]+/", $string,$matches);
print_r($matches);
输出:
Array
(
[0] => Array
(
[0] => https://www.youtube.com/watch?v=r_p8ZXIRFJI
[1] => https://youtu.be/_3tVL-ZAc4k
)
)