<?php
function pregForPreg($value)
{
$value = preg_replace(array('#\(#', '#\)#', '#\+#', '#\?#', '#\*#', '#\##', '#\[#', '#\]#', '#\&#', '#\/#', '#\$#', '#\\\\#'), array('\(', '\)', '\+', '\?', '\*', '\#', '\[', '\]', '\&', '\/', '\\\$', '\\\\'), $value);
return $value;
}
$var = "TI - Yeah U Know [OFFCIAL VIDEO] [TAKERS] [w\LYRICS]";
$var = pregForPreg($var);
//$var is now:
// TI - Yeah U Know \[OFFCIAL VIDEO\] \[TAKERS\] \[w\LYRICS\]
$var = preg_replace("#" . $var . "#isU", 'test', $var);
echo $var;
そして、私はエラーを取得する:*警告:にpreg_replace():コンパイルに失敗しました:PCREは、\ Lをサポートしていない、\リットル、\ N、\ U、またはuを\は、で50をオフセットtest.php on line 13. *PHP PCREエラーにpreg_replace
正しい機能を作る方法pregForPreg?
私の文字列はpreg_quoteに置き換えられません。 – Isis
いいえ、その時点ですでに文字列にある\の前に別の\を追加することで、\ preg_quoteに手動でエスケープする必要があります。 – Arantor
@Isis:あなたが何を意味するか分かりません。 'pregForPreg'の代わりに' preg_quote'を使うべきです。そしてあなたは実際に達成したいものを指定していません... –