1

次のように、フロントエンドに非表示の入力で区切られた 2 つのテキスト領域を持つフォームがあります。

<textarea name="top">
blah 
blah 
</textarea>
<input type="hidden" name="foo" value="some string" />
<textarea name="bottom"> 
blah 
blah 
</textarea>

サーバー側でこのフォームを取得したら、非表示の入力の前後に改行文字を連結して、次のようにします。

$text = $_Post['top'] . "\n" . $_Post['foo'] . "\n" . $_Post['bottom']; 

その改行文字を、プログラムの後半で爆発するための区切り文字として使用する目的で、次のようにします。

$arrayOfTextSplitByNewlines = explode("\n", $text); 

私の問題は、文字列に追加した改行が、explode によって改行文字として認識されず、文字列リテラルとして扱われていることです。一重引用符、二重引用符、改行のエスケープなどを試しましたが、何らかの理由で、それらは単なる文字列です。私が間違っていることについての洞察はありますか?

4

1 に答える 1

1

内破!配列として送信するアイデアをくれた@barmarに感謝します。上記の理由でそれをしたくありませんが、文字列から配列を作成することができました:

$textArray = array($_POST['top'], $_POST['foo'], $_POST['bottom']); 

次に、区切り文字として改行文字を使用してそれを内包します。

$text = implode("\n", $textArray); 

他のすべては、コード全体で他の場所で期待どおりに機能しました。なぜそれが以前は内破せずに機能していなかったのかわからないので、何か洞察があれば、私はすべての耳です。もう一度ありがとう@barmar

于 2013-02-23T06:27:24.827 に答える