0

次のワードプレスコードがあります

function shortcode_parse_atts($text) {
    $atts = array();
    $pattern = '/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/';
    $text = preg_replace("/[\x{00a0}\x{200b}]+/u", " ", $text);
    if ( preg_match_all($pattern, $text, $match, PREG_SET_ORDER) ) {
        foreach ($match as $m) {
            if (!empty($m[1]))
                $atts[strtolower($m[1])] = stripcslashes($m[2]);
            elseif (!empty($m[3]))
                $atts[strtolower($m[3])] = stripcslashes($m[4]);
            elseif (!empty($m[5]))
                $atts[strtolower($m[5])] = stripcslashes($m[6]);
            elseif (isset($m[7]) and strlen($m[7]))
                $atts[] = stripcslashes($m[7]);
            elseif (isset($m[8]))
                $atts[] = stripcslashes($m[8]);
        }
    } else {
        $atts = ltrim($text);
    }
    return $atts;
}

パスを指定して関数を実行すると、次のエラーが発生します。

警告: preg_replace() [function.preg-replace]: コンパイルに失敗しました: 行 258 の /PATH/wp-includes/shortcodes.php のオフセット -1 に不明なオプション ビットが設定されています

258行目はここにマークされています

$text = preg_replace("/[\x{00a0}\x{200b}]+/u", " ", $text); //<--- LINE 258

誰でもこれについて何か助けてもらえますか?

いただければ幸いです

PHPのバージョンを下げられない...

4

1 に答える 1

1

これは、PCRE が古くなっているために発生します。PHP を 5.3 バージョンに更新した後、サーバーの PCRE を手動で更新する必要があります。

SSH で次のコードを実行します。

pcretest -C

実行中のバージョンが表示されます。最後のバージョンは 8.32 です。

各 PHP バージョンで使用する必要がある PCRE バージョンの関係は次のとおりです: http://php.net/manual/en/pcre.installation.php

于 2013-04-05T03:33:40.683 に答える