ホームページ >バックエンド開発 >PHPチュートリアル >preg_replace を常に前の文字を [食べる] 方法。

preg_replace を常に前の文字を [食べる] 方法。

WBOY
WBOYオリジナル
2016-06-13 13:22:10971ブラウズ

preg_replace を置き換えます。なぜ常に前の文字を食べるのですか...
なぜ次のコードを使用して置き換えますか? なぜ常に前の文字を食べるのですか...

コードは次のとおりです。コードの両方の行にこの問題があります...

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
        $newstext = preg_replace('/'.$r[keyname].'/u','<a href=\''.$r[keyurl].'\' target=\'_blank\' >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);



PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
        $newstext = preg_replace('/[^=>]'.$r[keyname].'/u','<a href=\''.$r[keyurl].'\' target=\'_blank\' >'.$r[keyname].'</a>',$newstext,$public_r[repkeynum]);



例: string = "私の美しい一日はこれから始まります"
キーワードは次のとおりです: beautiful

置き換えると、次のようになります: IBeautifulこれから一日が始まります

とても落ち込んでいました....

-----解決策----------- --- ------
あなたが指摘したような状況は起こりません。 $r[キー名]は何ですか?
------解決策----------------------
最初の式は正しいです
2 番目の式これはあなたが指摘した現象です: [^=>] が 1 文字を消費します
------解決策---------
解決策
------解決策---------

$ str = "私の素晴らしい一日が始まりました";
$newstext = preg_replace('/ 素晴らしい /', '
素晴らしいecho $newstext;
?>