1
私はこのラインを持っていると選択肢は...「e」の修飾
preg_replace('/([^\x20-\x7e])/e', '"\\\\\\x" . dechex(ord("${1}"))', $string);
をにpreg_replaceする...、それは/ e修飾子を持つにpreg_replace()の使用についての警告を生成しています。
私はこの正規表現を代替する方法に関するヒントを探しています。
"preg_replace_callback"を代わりに使用できるとは思っていますが、実際に実装するには何らかの助けが必要です。
私はPHP manualを読んだことがありますが、依然として苦労しています。私の質問は、元のものとは異なるpreg_replace_callbackのものです。
これは有効ですか?
function myCallback($matches) {
return '"\\\\\\x" . dechex(ord($matches[1]))';
}
preg_replace_callback('/([^\x20-\x7e])/', 'myCallback', $string);
*これは有効です*そのように見えるが、していないようですあなたが欲しいもの。関数呼び出しはまだ文字列の中にあります。周囲の一重引用符を削除するだけです。それ以外の場合は、文字列をそのまま返します。 –