0

私は2つのファイルを持っています。最初のファイルはフォームで、2 番目のファイルは結果を表示します。

最初のファイル:

<form action="show.php" method=post>
<textarea name="test" cols=40 rows=6>
</textarea>
<input type=submit value="submit">
</form>

2 番目のファイル:

<?php
$text = trim($_POST['test']);
$textAr = explode("\n", $text);

for ($i=0; $i<sizeof($textAr); $i++)
{
    $link = str_replace(" ", "", $textAr[$i]);
    echo $link."---<br>";
}
?>

たとえば、フォームに入力すると

one
two
three

結果は次のとおりです。

one ---
two ---
three---

文字列の最後: 1 つと 2 つには、削除できない空白があります。誰でもこれで私を助けることができますか?

ありがとう $link = str_replace("\r", "", $textAr[$i]) を使用しましたが、すべて問題ありません

4

6 に答える 6

1

基本的に、textareaの改行は\r\nInternet Explorer と\n、他のすべてのブラウザー (Mac を含む) にあります。\nバージョン 9 以降のIE も使用します。


コードを修正するには、さまざまな方法があります。たとえば、次のことを試すことができますpreg_split()

preg_split('/(?:\r\n|\n)/', $text);

ただし、この提案のパフォーマンスはテストしていません。

また、非常に重要なことですが、正規表現の\r\n前に必ず入れてください。\n


その上、(もちろん、まだ必要な場合)trim()よりもはるかに適しています。str_replace()

于 2012-01-04T20:39:06.293 に答える
1

trim()の代わりに使用str_replace

于 2012-01-04T19:57:50.660 に答える
1

を使用する代わりに、トリム関数を使用できますstr_replace

于 2012-01-04T19:57:56.007 に答える
0

関数を試してくださいnl2br()。キャリッジ リターンまたは改行 (\r\n、\n\r、\n、および \r) を使用できます。

于 2012-01-04T20:06:01.790 に答える
0

多分それは非改行スペース(nbsp)または改行の組み合わせの一部のような非スペースの空白ですか?

于 2012-01-04T19:59:31.763 に答える