我有这个代码
preg_match_all('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $asd, $match);
找到像
这样的网址的youtube密钥<a href="http://www.youtube.com/watch?v=">http://www.youtube.com/watch?v=ZiJRPREeQ1Q</a>
<br />
<a href="http://www.youtube.com/watch?v=GaEZgqxPHLs&feature=related">http://www.youtube.com/watch?v=GaEZgqxPHLs&feature=related</a>
这项工作很好找到代码ZiJRPREeQ1Q和GaEZgqxPHLs,现在我想用新代码替换所有html行
想要使用
preg_replace
找到整个youtube网址
<a href="*">*</a>
到新代码我该怎么做?
--------------加--------------
在我通过preg_math_all从url获取youtube的代码之后 我用这段代码来提取代码
foreach($match[1] as $youtube){
// $youtube; // this handle the youtube code
$match = ""; // what can i write here relative to $youtube ?
$str .= preg_replace($match, 'new code',$content); // $content handle the whole thread that contain the youtube url <a href=*>*</a>
}
我唯一需要的是我可以用来代替youtube代码的正则表达式
答案 0 :(得分:1)
$html = file_get_contents($url); //or curl function
$re="<link itemprop=\"embedURL\" href=\"(.+)\">";
preg_match_all("/$re/siU", $html, $matches);
$youtube = $matches[1][0];
或
$html = file_get_contents($url); //or curl function
$re="<link itemprop=\"url\" href=\"(.+)\">";
preg_match_all("/$re/siU", $html, $matches);
$youtube = $matches[1][0];