【发布时间】:2014-03-30 08:26:02
【问题描述】:
所以我正在使用这样的 API 来编码超链接:
<u>\n\\*HYPERLINK \"http://www.youtube.com/watch?v=A0VUsoeT9aM\"A Youtube video</u>
我想将它们转换为普通的超链接:
<a href="http://www.youtube.com/watch?v=A0VUsoeT9aM">A Youtube video</a>
我有一些问题,因为它使用了很多反斜杠和引号
所以我想也许这会起作用:
<?
$string = '<u>\\n\\\\*HYPERLINK \\"http://www.youtube.com/watch?v=A0VUsoeT9aM\\"A Youtube Video</u>';
$patterns = array();
$patterns[0] = '/(<u>....................)/g';
$patterns[1] = '/(\\\\")(?!http:\/\/)/g"';
$patterns[2] = '/(<\/u>)/g';
$replacements = array();
$replacements[2] = '<a href=';
$replacements[1] = '"';
$replacements[0] = '</a>';
echo preg_replace($patterns, $replacements, $string);
?>
但是 A. 这不起作用:警告:preg_replace(): Unknown modifier 'g' in X.php on line 11
和 B. 如果超链接文本也是 Url,则此方法不起作用
【问题讨论】:
-
使用 API 而不是正则表达式
-
你到底是什么意思?我使用了一个显而易见的 API,我现在必须使用它......
标签: php regex hyperlink preg-replace