• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP ファイルから文字列を検索し、スペースで区切)

PHPファイルから文字列を検索し、スペースで区切る方法

このQ&Aのポイント
  • PHPプログラム初心者の方向けに、テキストファイルから文字列を検索し、スペースで区切る方法について解説します。
  • テキストファイル内の文字列と数字の組み合わせをスペースで分割し、特定の文字列を検索する方法を学びます。
  • さまざまな文字列を検索して、該当する文字列と数字の組み合わせを取得し、合計値を計算する方法について説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5292/13826)
回答No.2

特にエラーが出ていないのであれば、テキストファイルの文字コードがプログラムの文字コードと同じか確認ですかね。 後半部分の所を以下のように変えてみて、テキストファイルから読み込んだ単語と$Keywordの値が一致しない理由を探しましょう。 以下のようにすると、テキストファイルから読み込んだ単語が順次出力されてきますので、まずは文字化けが無いかチェックして文字コードの確認。 後は区切り文字が間違っていて、単語をうまく展開できていないと言う事がないか確認ですね。 私の手元で確認した限りはちゃんと動きました。 $Keyword = '良い'; $Score = 0; foreach ($WordList as $Value) { foreach (explode(':', $Value['Word']) as $WordValue) { var_dump($WordValue); // ココを追加 if ($WordValue == $Keyword) { $Score += $Value['Score']; } } }

rieqop7
質問者

お礼

ありがとうございます! おそらく文字化けしてたんだと思います。 実行できました!ほんとうに感謝いたします。

その他の回答 (2)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.3
rieqop7
質問者

お礼

すみませんでした。

  • t_ohta
  • ベストアンサー率38% (5292/13826)
回答No.1

$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;

rieqop7
質問者

お礼

ありがとうございます。参考になりました。

rieqop7
質問者

補足

早速の回答有り難うございます。 とても参考になります。 このプログラムのテキストファイル名を当てはめて実行したのですが、 スコアが0から変わりません。 どこが動いていないと考えられるでしょうか・・。

関連するQ&A

専門家に質問してみよう