私はfile()でテキストを抽出しますが、単語の長さ(strlen)は最後の単語を除いて2で大きくなります。 例えば:私のwords.txtはこのように見える場合:ファイルから読み込まれた単語が実際のものよりも大きい
SQL
単語
PHP
のstrlen(SQL)= 5
のstrlen(ワード)= 6
strlen(php)= 3
なぜですか? thx
私はfile()でテキストを抽出しますが、単語の長さ(strlen)は最後の単語を除いて2で大きくなります。 例えば:私のwords.txtはこのように見える場合:ファイルから読み込まれた単語が実際のものよりも大きい
SQL
単語
PHP
のstrlen(SQL)= 5
のstrlen(ワード)= 6
strlen(php)= 3
なぜですか? thx
おそらく、行末に「\ n」があるためです。ファイルを読むためのコードを提供して、より良くなるようにすることはできますか? 、すべての改行とキャリッジリターンを削除し、このコードを使用する
:
$val = preg_replace('/\r|\n/', '', $val);
strlen()
はバイト数ではなく、文字列の文字数を返します。 mb_strlen()
を使用してみてください代わりに
'しばらく($ワード) \t { \t \t $ファイル=ファイル( "words.txt"); \t \t foreach($ファイルは$ key => $ val){ \t \t \t echo $ wordです。 "" $ val。 "
"; \t \t \t echo strlen($ word)。 "" strlen($ val)。 "
"; \t \t \t($ヴァル== $ワード)場合 \t \t \t #code \t \t} \t \t $ワード=はstrtok(」「)。 \t} '//私はstrtokを使っている理由を$ textという変数にしました –
答えを更新したので、各行の長さを数える前にまず改行と改行を取り除いてください。 – Andreas
ありがとう、働いています。 –