プロトコル ドキュメントに続いて、各パラメーターが空白で区切られた文字列としてエンコードされたパラメーターの配列を受け取ることができます。パラメータ内のスペースはバックスラッシュでエスケープされます。
したがって、パラメーター配列内に次の文字列があるとします。
array('Eli is beautiful', 'Fran is ugly', 'Oso is nice')
これらは、次のように 1 つの文字列にエンコードされます。
Eli\ is\ beautiful Fran\ is\ ugly Oso\ is\ nice
エンコーディングは大きな問題ではありませんが、デコーディングの問題に直面しています。
バックスラッシュの後にないスペースで分割する必要がある正規表現を使用してパラメーターを分割しようとしているので、これが私のコードです:
$params = preg_split('/[^\\\\]\s/', $str);
期待どおりにパラメーターを分割しますが、それぞれの最後の文字も削除するため、var_dump の出力は次のようになります。
array(3) {
[0]=>
string(15) "Eli is beautifu"
[1]=>
string(11) "Fran is ugl"
[2]=>
string(11) "Oso is nice"
}
誰かがこれを解決する方法を知っていますか?
ティア、