youtube网址的preg_match和preg_replace

时间:2011-12-29 00:39:39

标签: php

我有这个代码

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代码的正则表达式

1 个答案:

答案 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];