0

ユーザー入力を含むがカスタム定義の区切り文字を含む文字列を展開する必要がある状況にあります。間違った場所で文字列が爆発しないように、ユーザーが入力にその区切り文字を入力できないようにします。

これを行うための最良の方法は何ですか?区切り文字の出現を削除するためにユーザーデータに対して実行する必要があるフィルターの種類はありますか?一意の区切り文字を作成するよりも良い答えがあると思います。

ありがとう。

4

2 に答える 2

5

これは古い問題なので、すでに解決されている方法で解決してください。

CSV ファイルではカンマが区切り文字ですが、エントリにはカンマを含めることができます。どのように?エントリを引用符で囲みます。エントリに引用符が含まれている場合はどうなりますか? ユーザー入力の引用符を 2 倍にして、区切り文字ではなくデータであることを確認します。

Field One,Field Two,"Field, Three","Field ""Four"""

PHP には、カスタム定義の区切り文字を使用して CSV 形式を作成および読み取る関数があるため、コードを記述する必要さえありません。

于 2010-12-07T02:27:28.337 に答える
0

環境に str-getcsv がない場合は、元の質問のコメントに従ってください。

区切り文字がパイプ記号であると仮定します

$clientString = 'somestring|fobar';
$clientString = str_replace('|', '{{{somecrazydelimiter}}}', $clientString);

展開後に状況を逆にして、一時的な区切り文字を元の区切り文字に置き換えることができます。

$clientString = str_replace('{{{somecrazydelimiter}}}', '|', $clientString);
于 2010-12-07T05:00:30.477 に答える