1

帮助,我正在尝试将 bbcode 转换为 html 代码,并且我不断收到此错误

bbcode 是[url=link][attach]1[/attach][/url]

SCREAM: Error suppression ignored for( ! ) Warning: preg_replace(): Unknown modifier '/'

        $content = $getThread['message'];
        $bbUrl = '/\[url=(http|https|ftp)://{1}([a-zA-Z0-9/%@?:#&+._=-]*)\](.*?)\[/url\]/gixsm';
        $htmlUrl = '<a href="{$1}://{$2}" target="_blank">{$3}</a>';
        $atable = $thread->get_atable($tid);
        $content = preg_replace($bbUrl, $htmlUrl, $content);

完成 url 后,将使用 [attach]1[/attach] 再次转换

$bbAttachment = 'etc...';
$htmlAttachment = 'etc...';
$content = preg_replace($bbAttachment, $htmlAttachment , $content);

这是正确的做法吗?

感谢您的帮助。

4

1 回答 1

1

您的正则表达式中有错误。您需要对“/”字符进行适当的转义。

改变这个

 $bbUrl = '/\[url=(http|https|ftp)://{1}([a-zA-Z0-9/%@?:#&+._=-]*)\](.*?)\[/url\]/gixsm';

对此

 $bbUrl = '/\[url=(http|https|ftp):\/\/([a-zA-Z0-9\/%@?:#&+._=-]+)\](.+?)\[\/url\]/gixsm';

您还应该更改*为,+因为我假设您不想解析可能为空的 url。

于 2013-05-22T04:58:24.983 回答