- ベストアンサー
PHPファイルから文字列を検索し、スペースで区切る方法
- PHPプログラム初心者の方向けに、テキストファイルから文字列を検索し、スペースで区切る方法について解説します。
- テキストファイル内の文字列と数字の組み合わせをスペースで分割し、特定の文字列を検索する方法を学びます。
- さまざまな文字列を検索して、該当する文字列と数字の組み合わせを取得し、合計値を計算する方法について説明します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
特にエラーが出ていないのであれば、テキストファイルの文字コードがプログラムの文字コードと同じか確認ですかね。 後半部分の所を以下のように変えてみて、テキストファイルから読み込んだ単語と$Keywordの値が一致しない理由を探しましょう。 以下のようにすると、テキストファイルから読み込んだ単語が順次出力されてきますので、まずは文字化けが無いかチェックして文字コードの確認。 後は区切り文字が間違っていて、単語をうまく展開できていないと言う事がないか確認ですね。 私の手元で確認した限りはちゃんと動きました。 $Keyword = '良い'; $Score = 0; foreach ($WordList as $Value) { foreach (explode(':', $Value['Word']) as $WordValue) { var_dump($WordValue); // ココを追加 if ($WordValue == $Keyword) { $Score += $Value['Score']; } } }
その他の回答 (2)
- agunuz
- ベストアンサー率65% (288/438)
お礼
すみませんでした。
- t_ohta
- ベストアンサー率38% (5292/13826)
$WordList = array(); if (($Hdl = fopen('list.txt', 'r')) !== FALSE) { while (($LineData = fgets($Hdl)) !== FALSE) { $WordData = explode(' ', $LineData, 2); $WordList[] = array('Word' => $WordData[0], 'Score' => $WordData[1]); } fclose($Hdl); } $Keyword = '良い'; $Score = 0; foreach ($WordList as $Value) { foreach (explode(':', $Value['Word']) as $WordValue) { if ($WordValue == $Keyword) { $Score += $Value['Score']; } } } echo $Score;
お礼
ありがとうございます。参考になりました。
補足
早速の回答有り難うございます。 とても参考になります。 このプログラムのテキストファイル名を当てはめて実行したのですが、 スコアが0から変わりません。 どこが動いていないと考えられるでしょうか・・。
お礼
ありがとうございます! おそらく文字化けしてたんだと思います。 実行できました!ほんとうに感謝いたします。