目前,我使用此代码检测并转换文本链接中的URL。
但是现在,我需要保留这个系统,但也检测并转换图像。
public function convert_to_link($text)
{
$reg_user = '!@(.+)(?:\s|$)!U';
if (preg_match_all($reg_user, $text, $matches))
{
return preg_replace($reg_user, '<a href="../userdetails.php?uname=$0" title="$0">$0</a>', $text);
}
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
if(preg_match($reg_exUrl, $text, $url)) {
// make the urls hyper links
if (preg_match("/\[img=([^\s'\"<>]+?)\]/i", $text))
{
//This is not working
return preg_replace("/\[img=([^\s'\"<>]+?)\]/i", "<img border=0 src=\"\\1\">", $text);
}
else
{
return preg_replace($reg_exUrl, '<a href="$0" title="$0">$0</a> ', $text);
}
}
else
{
return $text;
}
}
我也使用[img] [/ img]代码将图片转换为但是上面的代码结果很糟糕:
答案 0 :(得分:0)
看起来你的正则表达式正在寻找这种格式
[img=http://example.com/name.png]
但您的示例采用不同的格式
[img]http://example.com/name.png[/img]
识别第二种形式的正则表达式
"/^\[img\]([^\[]+)\[\/img\]$/i"