特定の文字列を取得してきて、それを特定の条件で加工し、mysqlへ加工する…そんなことをしようとしてました。そんな時、スクリプトがwarningをだしていることに気づく。加工に使っていたのは、preg_replaceです。その箇所でエラーが…なぜかな。。と思ったら/(スラッシュ)がクオートされていないのが原因でした…
preg_quoteは、/(スラッシュ)をクオートしていない
以下のような感じで、文字列をクオートしてpreg_replaceしてました
$tmp=preg_replace("/".preg_quote($word)."/");
これでいけてると思っていたが、どうも$wordの中に、/(スラッシュ)が入っていたらしく、その影響でエラーが出ていたらしい。あれ?どうしたらいいん?/(スラッシュ)をreplaceする必要があるの。。。?
preg_quoteの第二引数にデリミタを指定することで/(スラッシュ)もquoteできる!
よくよく調べてみると、preg_quoteはクオートする文字列を第二引数で追加できるとのこと。であれば、/(スラッシュ)も追加しておけばいいようでしたので、追加してみます。
$tmp=preg_replace("/".preg_quote($word,"/")."/");
これでいいんですね!無事にエラーが止まりました。
あまり使う機会がないので勉強になりました。
同じカテゴリの記事
コメント
最高 観光サイト! 応援してます! <a href=https://iqvel.com/ja/a/%E3%82%B3%E3%82%B9%E3%82%BF%E3%83%AA%E3%82%AB/%E3%83%88%E3%83%AB%E3%83%88%E3%82%A5%E3%82%B2%E3%83%AD%E5%9B%BD%E7%AB%8B%E5%85%AC%E5%9C%92>自然の回廊</a> リスク&安全特集 — 強力な基盤。
