PHP:preg_match_all在匹配换行符时导致403

时间:2015-01-06 01:22:19

标签: php codeigniter xampp preg-match-all http-status-code-403

我刚遇到了一个奇怪的问题。我目前正在使用XAMPP和codeigniter框架。

我需要匹配短代码,我的正则表达式是:

\[(background)=?(.*?)\](.+?)\[/\1\]

但是如果标签之间有新的行,它就不匹配内容,所以我将其更改为:

\[(background)=?(.*?)\]((.|\n)*)\[/\1\]

更改后,网站给我403错误。如果我改回来,它就可以了。

整个代码:

while (preg_match_all('`\[(background)=?(.*?)\]((.|\n)*)\[/\1\]`', $string, $matches)) foreach ($matches[0] as $key => $match) {
    list($tag, $param, $innertext) = array($matches[1][$key], $matches[2][$key], $matches[3][$key]);
    switch ($tag) {
        ...
    }
    $string = str_replace($match, $replacement, $string);
}

这是错误日志给我的:

[Tue Jan 06 03:12:56.101114 2015] [ssl:warn] [pid 10580:tid 596] AH01909: RSA certificate configured for www.example.com:443 does NOT include an ID which matches the server name
[Tue Jan 06 03:12:56.145116 2015] [mpm_winnt:notice] [pid 10580:tid 596] AH00354: Child: Starting 150 worker threads.

有人遇到类似的问题,并设法修复它吗?

0 个答案:

没有答案