0

我快到了!

这是我要调整的字符串,以及我的 preg_replace 尝试。

$description_string = '<p>Here is the test link: <a href="http://www.youtube.com/watch?v=2MFn8L9tIrg" target="_blank">“Man or Muppet”&lt;/a> with other text afterwards.</p>';

$description = preg_replace( '/(<a[^>]+youtube[^>]*>)+[^"]*(<\/a>)+/', '$0Watch This Video$2', $description );

我得到的结果不正确:

这是测试链接:“Man or Muppet”之后观看此视频和其他文字。

任何帮助将不胜感激!谢谢!

4

1 回答 1

0

好吧,不确定您是否要在其中获取实际标题。但这是我想出的:

<?php
$description_string = '<p>Here is the test link: <a href="http://www.youtube.com/watch?v=2MFn8L9tIrg" target="_blank">\'Man or Muppet\'</a> with other text afterwards.</p>';

$description = preg_replace( '/(<a[^>]+youtube[^>]*>)+[^"]*(<\/a>)+/', '$1Watch This Video$2', $description_string );

echo $description;
?>

结果:

<p>Here is the test link: <a href="http://www.youtube.com/watch?v=2MFn8L9tIrg" target="_blank">Watch This Video</a> with other text afterwards.</p>

您最大的问题是标题中的引号(“)。它切断了锚标签。使用 $0 也是不正确的。您需要使用 $1。

这可能不是您所需要的,但它对您来说是一个快速的猴子补丁。

于 2012-07-16T20:25:18.293 回答