データ末尾の半角スペース
こんにちは。お世話になっております。
先日、http://oshiete1.goo.ne.jp/qa4951480.html にて、質問させていただき、状況こそ違うのですが、変数に代入された文字列から、事前に登録された単語や記号を削除すると、変数に代入された文字列に一部文字化けが起こる現象が続いています。
※前回の質問では、str_replaceにて指定文字を削除していましたが、str_ireplaceの方が文字化けの頻度が少ない。
色々と試行錯誤を繰り返しながら、その対策を試しているのですが、一向に改善する兆しがなく困っている状況です。
ちなみに、事前に登録された単語や記号とは、別ページにて、入力されたフォームからデータをPOSTにて受け取り、以下のようなスクリプトで登録を行っています。
//$keyword = trim($keyword).PHP_EOL;
$keyword = trim($keyword)."\n";
$file = fopen($file_name, "a") or die("OPENエラー $file_name");
flock($file, LOCK_EX);
fputs($file, $keyword);
flock($file, LOCK_UN);
fclose($file);
chmod($file_name,0606);
そこで、削除したい単語をブラウザで表示(tableを使って表示)してみたところ、登録されている単語の末尾に、半角スペースがある状況です。
これは以前にも他のプログラムでも気づいてはいたのですが、今回のように不具合が一向に直らない状況で、「もしかしたらこれも原因の1つ?」と気になり質問させてもらいました。
少々回りくどい質問、かつ説明が足りないところがあるかと思いますが、この半角スペースの件、ならびに、このような状況の文字化けに関して、アドバイスなど頂戴出来れば幸いです。宜しくお願いいたします。
お礼
tatus99 さま、ありがとうございました。これはPascalでやる delete(string,length(string),1)に相当するものですね。つまり必ず結果として文字列長は1半角分短くなるのですね。