2012-01-04 12 views
0

2つのファイルがあります。最初のファイルはフォームで、2番目のファイルは結果を表示します。テキストエリアから空白を削除できません

まずファイル:

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

セカンドファイル:

<?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つは削除できない空白があります。誰も私にこれを助けることができますか?

おかげで私は= str_replace( "\ rを"、 ""、$ textAr [$ i])と$のリンクを使用し、今ではすべてが

+0

おそらくテキストエリアでのキャリッジリターンが原因です。値から\ nと\ rを取り除いてみてください。 –

答えて

1

使用trim()代わりstr_replace

1

のあなたはtrim機能を使用することができますokです代わりにstr_replaceを使用する代わりに。

0

non-break-spaces(nbsp)のような空白でない空白や、改行の組み合わせの一部ですか?

0

お試しくださいnl2br()関数は、復帰改行または改行(\ r \ n、\ n \ r、\ n、\ r)になります。

+0

私は$ link = str_replace( "\ r"、 ""、$ textAr [$ i])を使用しました。 – sirDexter

+0

cool。しかし、nl2br()はこれらの状況に合わせて調整されています! :) –

1

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


コードを修正する方法はたくさんあります。たとえば、preg_split()を試みることができる:

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

しかし、私はこの提案の性能をテストしていません。

また、非常に重要なことは、正規表現に\nの前に\r\nを入れてください!


さらに、trim()は、str_replace()(もちろん必要な場合)よりも適しています。

0

私は後半を知っていますが、他人を助けるかもしれません。

文書の字下げが必要な場合にこれを使用します。

$('document').ready(function() 
{ 
    $('textarea').each(function(){ 
      $(this).val($(this).val().trim()); 
     } 
    ); 
}); 
+0

CSSを使って解決する方法はありますか? – Bipon

関連する問題