0

PHP 更新后 5.4.19 面临一个以前不存在的新警告。它说:Warning: preg_replace(): Delimiter must not be alphanumeric or backslash in ... on line 645

有一个方法:

private function BBtoHTML($input_string)
{
    $search = array(
        '/\[b\](.*?)\[\/b\]/is',
        '/\[i\](.*?)\[\/i\]/is',
        '/\[u\](.*?)\[\/u\]/is',
        '/\[s\](.*?)\[\/s\]/is',
        '/\[quote\](.*?)\[\/quote\]/is',
        '/\[code\](.*?)\[\/code\]/is',
        '/\[url\=(.*?)\](.*?)\[\/url\]/is',
        '/\[(left|center|right)\](.*?)\[\/(left|center|right)\]/is',
        '/\[font\=(.*?)\](.*?)\[\/font\]/is',
        '/\[size\=(.*?)\](.*?)\[\/size\]/is',
        '/\[color\=(.*?)\](.*?)\[\/color\]/is',
        '\{PAGEBREAK\}',
    ); 

    $replace = array(
        '/<strong>$1</strong>/',
        '/<em>$1</em>/',
        '/<span style="text-decoration: underline;">$1</span>/',
        '/<del>$1</del>/',
        '/<blockquote>$1</blockquote>/',
        '/<code>$1</code>/',
        '/<a href="$1" target="_blank">$2</a>/',
        '/<div style="text-align: $1;">$2</div>/',
        '/<span style="font-family: $1;">$2</span>/',
        '/<span style="font-size: $1;">$2</span>/',
        '/<span style="color: $1;">$2</span>/',
        '/<!--nextpage-->/'
    );

    return preg_replace($search, $replace, $input_string);
}

正如您可能理解的那样,645 是return preg_replace($search, $replace, $input_string).

4

1 回答 1

1

您拥有的最后一个模式是'\{PAGEBREAK\}'. 如果您的意思是匹配\{PAGEBREAK\}包含反斜杠的文字,则模式应该是:

     '/\\\\{PAGEBREAK\\\\}/',

如果你{PAGEBREAK}的意思是匹配模式应该是:

     '/{PAGEBREAK}/',
于 2013-10-04T20:11:06.787 回答