Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
preg_替换php图像messup_Php_Regex - Fatal编程技术网

preg_替换php图像messup

preg_替换php图像messup,php,regex,Php,Regex,我正在努力让bbcode图像正常工作。但我有问题 代码中有什么错误,为什么 我有以下意见: [img]http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg[/img] 并希望它是: <img src="http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg"> 但结果是: `Q:我怎样才能让它正常工作? 完整代码: func

我正在努力让bbcode图像正常工作。但我有问题

代码中有什么错误,为什么

我有以下意见:

[img]http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg[/img]
并希望它是:

<img src="http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg">

但结果是:

`Q:我怎样才能让它正常工作?

完整代码:

 function parsebb($body,$userid = false, $user2 = false) {
            $find = array(
                "@\n@",
                "@[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]@is",
                "/\[url\=(.+?)\](.+?)\[\/url\]/is",
                "/\[b\](.+?)\[\/b\]/is",
                "/\[i\](.+?)\[\/i\]/is",
                "/\[u\](.+?)\[\/u\]/is",
                "/\[farge\=(.+?)\](.+?)\[\/farge\]/is",
                "/\[size\=(.+?)\](.+?)\[\/size\]/is",
                "/\[font\=(.+?)\](.+?)\[\/font\]/is",
                "/\[boks\=venstre\](.+?)\[\/boks\]/is",
                "/\[boks\=hoyre\](.+?)\[\/boks\]/is",
                "/\[boks\=midten\](.+?)\[\/boks\]/is",
                "/\[img\](.+?)\[\/img\]/is",
                "/\[email\](.+?)\[\/email\]/is",
                "/\[midten\](.+?)\[\/midten\]/is",
                "/\[venstre\](.+?)\[\/venstre\]/is",
                "/\[hoyre\](.+?)\[\/hoyre\]/is",
            );

            $replace = array(
                "<br />",
                "<a href=\"\\0\">\\0</a>",
                "<a href=\"$1\" target=\"_blank\">$2</a>",
                "<strong>$1</strong>",
                "<em>$1</em>",
                "<span style=\"text-decoration:underline;\">$1</span>",
                "<font color=\"$1\">$2</font>",
                "<font size=\"$1\">$2</font>",
                "<span style=\"font-family: $1\">$2</span>",
                "<div align=\"left\" style=\"text-align:center; width:50%; \">$1</div>",
                "<div align=\"right\" style=\"text-align:center; width:50%;\">$1</div>",
                "<div align=\"center\" style=\"text-align:center; width:50%;\">$1</div>",
                "<img src=\"$1\">",
                "<a href=\"mailto:$1\" target=\"_blank\">$1</a>",
                "<div style=\"text-align:center;\">$1</div>",
                "<div style=\"text-align:left;\">$1</div>",
                "<div style=\"text-align:right;\">$1</div>",


            );


                $body = htmlspecialchars($body);
                $body = preg_replace($specialCodes, $specialCodesReplace, $body);




            return $body;
        }
函数parsebb($body,$userid=false,$user2=false){
$find=数组(
“@\n@”,
“@[:alpha:]+://[^[:space:]+[:alnum:]/][is”,
“/\[url\=(.+?)\](.+?)\[\/url\]/is”,
“/\[b\](.+?)\[\/b\]/is”,
“/\[i\](.+?)\[\/i\]/is”,
“/\[u\](.+?)\[\/u\]/is”,
“/\[farge\=(.+?)\](.+?)\[\/farge\]/is”,
“/\[size\=(.+?)\](.+?)\[\/size\]/is”,
“/\[font\=(.+?)\](.+?)\[\/font\]/is”,
“/\[boks\=venstre\](.+?)\[\/boks\]/is”,
“/\[boks\=hoyre\](.+?)\[\/boks\]/is”,
“/\[boks\=midten\](.+?)\[\/boks\]/is”,
“/\[img\](.+?)\[\/img\]/is”,
“/\[email\](.+?)\[\/email\]/is”,
“/\[midten\](.+?)\[\/midten\]/is”,
“/\[venstre\](.+?)\[\/venstre\]/is”,
“/\[hoyre\](.+?)\[\/hoyre\]/is”,
);
$replace=数组(
“
”, "", "", “$1”, "$1", "$1", "$2", "$2", "$2", "$1", "$1", "$1", "", "", "$1", "$1", "$1", ); $body=htmlspecialchars($body); $body=preg_replace($specialCodes,$specialCodesReplace,$body); 返回$body; }
问题出在您的身上

"@[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]@is"
“@[[:alpha:]+://[^[:space:]+[[:alnum://]@is”

模式,甚至[img]。。。[/img]正在与它匹配,请对它们进行注释并重试,它将以良好的形式进行回复,或者将此模式行放在数组的末尾

有很多bbcode解析器。此外,请使用其他分隔符;像
~
@
而不是
/
。问题在于你的
“@[[:alpha:]+://[^[:space:]+[:alnum:]/@is”,
模式甚至[img]。。。[/img]正在与它匹配,请对它们进行注释,然后重试。您将看到它将以良好的形式被回复,或者将此模式行放在阵列的末尾。您的服务器也将因此类正则表达式而过载,您可以考虑使用<代码> PrggQueule<代码>,而不是逃避每一个代码块,而不是使用<代码> $ 1 <代码>作为替换字符串,使用例如“代码> 1美元< /代码>,并在一个单独的文件中定义CSS类<代码> .Center < /Cord>(尝试查找另一个名称)。这样做有两个好处:1)html代码会更短。2) 当您想要更改消息的外观时,只需编辑css类即可。