検索

ホームページ  >  に質問  >  本文

PHP7.0 が preg_replace を放棄した後に preg_replace を調整する方法

$options = Typecho_Widget::widget('Widget_Options');
$sUrl = str_ireplace('/', '\/', rtrim($options->siteUrl, '/'));
$preg = '#(<a .*?href=")(?!' . $sUrl . ')([^"]+)"(.*?<\/a>)#ise';
$text = preg_replace($preg, "stripslashes('$1') . '$options->siteUrl' . 'go.html?url=' .base64_encode('$2') . '\" target=\"_blank\ "' .stripslashes('$3')", $text);

コードを PHP7.0 に組み込んだ後、プロンプトによると、preg_replace が放棄され、preg_replace_callback に置き換える必要があることがわかりました。やり方は?

高洛峰高洛峰2836日前609

全員に返信(3)返信します

  • 天蓬老师

    天蓬老师2017-05-16 13:11:06

    preg_replace が放棄されたのではなく、/e 修飾子が放棄されました。

    おそらくこのように変更する必要があると思います

    リーリー

    返事
    0
  • 迷茫

    迷茫2017-05-16 13:11:06

    この機能が廃止されたことはどこで確認できますか?
    http://php.net/manual/zh/func...
    サポート (PHP 4、PHP 5、PHP 7)
    エラーメッセージを投稿する

    返事
    0
  • 黄舟

    黄舟2017-05-16 13:11:06

    Preg 接頭辞が付いた関数は廃止されていませんが、eregi 接頭辞が付いた関数は廃止されました

    返事
    0
  • キャンセル返事