2011-02-10 9 views
2

私はユニットテストで比較している2つの文字列を持っています。これらの文字列をエコーすると、まったく同じように見えますが... strcmpと比較すると、そうではありません。文字列は正確に表示されますが、一致しません。

strlen()を見ると、1文字列はわずかに3文字ほど長くなります。

私はこれが改行/改行のためであると思われます。

オン文字列の$ aはファイル(Windowsの場合)から読み込まれ、もう一方の$ bはスクリプトによって生成されます。私はユニットテストで$ bを$ aと比較しています。

すべての改行を同じように変換するにはどうすればよいですか?

+0

ない可能性が高いとそれらを削除し、問題があるが、それはUTF-8文字列だ場合、それはまた問題をコード化することができれば。 – mario

+0

またはunix v.s.ウィンドウの行終了。 '\ n'vs。 '\ r \ n'は、入力文字列に3つの改行があると仮定して、長さの違いを説明します。 –

答えて

4

まず、実際に問題があるかどうかを確認します。 var_dump両方の文字列がある環境では空白行が表示されます。その後

、行末がtrim

$str = trim($str); 

それともstr_replace

$str = str_replace(array("\r", "\n"), "", $str); 
+0

'str_replace()'メソッドは、文字列 – NullUserException

+0

の真ん中の改行も削除します。これは完全に機能しました。本当にありがとう! –

関連する問題