使用PHP提取特定的字符串数据

时间:2013-05-21 23:00:58

标签: php regex

将iframe分配给变量$ string。我想在iframes src中提取embed /和?rel之间的文本。所以我会寻找这个代码sL-2oYAI35o

<iframe width="420" height="315" src="http://www.youtube.com/embed/sL-2oYAI35o?rel=0" frameborder="0" allowfullscreen></iframe>

我需要使用php substr函数还是正则表达式?我不能使用常规子字符串,因为起始值可能不同。

2 个答案:

答案 0 :(得分:1)

我对此进行了测试,但确实有效。

$string = preg_replace('/embed.*\?rel/', 'embed?rel', $string);

编辑,感谢@Orangepill

$string = preg_replace('/embed(.*)\?rel/', 'embed?rel', $string);

编辑2 我对其进行了测试,无论有没有捕获组,它的工作方式都相同。

答案 1 :(得分:0)

$text = '<iframe width="420" height="315" src="http://www.youtube.com/embed/sL-2oYAI35o?rel=0" frameborder="0" allowfullscreen></iframe>';

preg_match('`embed/(.+)\?rel`i', $text, $matches);
$code = (!empty($matches[1])) ? $matches[1] : '';