こんばんは。お世話になっております。
先日、http://oshiete1.goo.ne.jp/qa4940684.html こちらにて別ファイルにある文字列を変数に代入することをお教えいただきました。(今回の件とは直接的に関係ないと思うのですが・・)
今回再度質問させて頂きたいのは、変数に代入されているテキスト(改行を含まない一行テキスト)を、違う別のファイルに登録されている単語を削除したい。というものです。
その別ファイル(削除すべき単語が登録されているファイル)は、
1
2
3
、
。
のように登録されていており、削除する際、
//変数、$moto_txtに長文の1行テキストが代入されてる。
$file_name = "./data/key.txt";//排他単語の取得
if(file_exists($file_name)){
$f_data_array = file($file_name);
$f_cnt= count($f_data_array);
for($h=0; $h<$f_cnt; $h++){
$delete_key = trim($f_data_array[$h]);
$moto_txt = str_replace($delete_key, "", $moto_txt);//
}
}
のように、削除したい単語が登録されているファイルを単語単位で配列に格納し、for文で$moto_txtからstr_replace()を使って削除しようとすると、何故か他の文字(今確認しているのは、「ア」です)まで削除されてしまう状況となっております。
何か他の方法はないかな?と色々と調べているのですが、その方法が分からず、また、上記の流れで、何故他の単語まで削除されてしまうのかが分かりません。
どんな些細なことでも結構ですので、アドバイスいただけると幸いです。
No.1ベストアンサー
- 回答日時:
文字列の置換を行うのであれば、質問にもありましたように、str_replaceを使う事で対応できると思います。
両ファイルの文字コード,プログラムファイルの文字コードは統一されてますか?
また、インストールされていればmb_ereg_replaceなどのマルチバイト関数を使用する事もできるかと思います。
参考URLはマルチバイトの対応について書かれています。
ご参考になればどうぞ。
あと、for文よりもforeach文の方が処理が早いですよ!!
参考URL:http://fetus.k-hsu.net/document/programming/php/ …
a0205s様
こんばんは。早速のご回答を有難う御座います。
質問投函後、色々と見直したところ、登録単語を保存する際、不適切な書き込みを行っていました。
いずれにせよ、削除するための関数に自信がなかった(他に良い方法があるのでは?と)ため、a0205s様のお言葉で安心しました。
(foreach文の方が処理が早いですよ!!このアドバイスにも感謝いたします!)
ご丁寧なアドバイスを有難う御座いました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
COPYコマンドで結合すると余計...
-
ファイルの最後に文字列挿入
-
テキストファイルで提出とは?
-
.txtではなく.logの方が良いの...
-
Windowsのバッチファイルを利用...
-
エクセルVBA テキストに出力、...
-
フォルダ階層のあるzipファイル...
-
ハードディスク上書き用大容量...
-
VBSで、テキストファイルに対し...
-
VBAでワークシートを引数として...
-
OpenOffice.org...
-
txtとはWordでなんですか?
-
3つ以上のテキストファイルをコ...
-
UWSCでファイルを開く方法
-
多数のサブディレクトリ内のフ...
-
FDからDドライブへどんどんコピ...
-
テキスト(txt)→ワード(docx)へ...
-
EXCEl/VBAで拡張子なしのファイ...
-
エクセルの各セルの内容をそれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
拡張子を元に戻す
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
バッチファイルで文字列削除に...
-
renameコマンドについて
-
forfilesで検索したファイルを...
-
accessでSQL文を使ってcsvファ...
-
バッチファイルからVBAに引数を...
-
psqlでエラーログをとりたい
-
UWSCでテキストファイルを開い...
-
cshでファイルサイズ取得
-
MS-DOSのバッチファイルの中で...
-
コマンドプロンプトで指定した...
-
テキストファイルのタブをカン...
おすすめ情報