2009-07-01 7 views
1
function escCtrlChars(str) 
{ 
    return str.replace(/[\0\t\n\v\f\r\xa0'"!-]/g, 
      function(c) { 
       return '!' + c.charCodeAt(0) + '!'; 
    }); 
} 

は、[OK]を、これは私の質問がある!このjavascript関数をPHPに変換するにはどうすればよいですか?

で始まり、終わる別の文字列と文字列から制御文字を置き換える機能です。 strを通過中にc文字が見つかりましたか?
もしそうなら、この機能をPHPでどうやって模倣することができますか?

​​

私はPHPでこれを持っていたが、私は今では

答えて

4

てみてください(それは文字列ではなく見つかった文字を使用しているため)間違っている実現:

function escCtrlChars($str) 
{ 
    return preg_replace('/([\0\t\n\v\f\r\'\"!-])/ie', '"!".ord(substr("$1",0,1))."!"', $str); 
} 

e修飾子をコードすることを指定2番目の引数で実行する必要があります。これは基本的に、それぞれの置換に対して実行されるcreate_function()を使用して新しい関数を作成することによって行われます。また、パターンをキャプチャするためにパエンシスを追加する必要があります。

$str = "foo\n\t'bar baz \rquux"; 
echo escCtrlChars($str)."\n"; 

収量:このようにそれを使用して

foo!10!!9!!92!bar baz !13!quux 
+0

きちんとfunctinalityだ、私も正しい結果が届きません。それを妨げる何かがあるかどうかを調べる。 –

+0

コードを試して、エラーを見つけられるかどうかを確認します。つかまっている。 –

+0

後にかっこを追加しました。彼らはトリックをしました。 –

関連する問題