![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
こんにちは。PHPプログラム初心者です。
今回、実装したいのは、テキストファイルを読み込みます。
-----------------------
優れる:すぐれる 1
良い:よい 0.999995
喜ぶ:よろこぶ 0.999979
褒める:ほめる 0.999979
・・・
------------------------
といった内容のテキストファイルです。文字と数字の間には半角スペースがあります。
そして、入力した文字が「良い」であるとします。
その文字をテキストファイルの中にあるかどうか検索して、文字と数字をスペースで分割して、
0.999995を出力したいのです。
この作業を何回か繰り返し、最後に合計を出したいと思っています。
どうすればよいでしょうか。
よろしくお願い致します。
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'];
}
}
}
No.3
- 回答日時:
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;
この回答への補足
早速の回答有り難うございます。
とても参考になります。
このプログラムのテキストファイル名を当てはめて実行したのですが、
スコアが0から変わりません。
どこが動いていないと考えられるでしょうか・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- その他(プログラミング・Web制作) 2つのテキストファイルを比べて文字列を特定する方法を教えて下さい 5 2022/05/01 15:22
- C言語・C++・C# C言語で 英文字のみからなる文字列、”Radar”、”WasItACatISaw”、”a”、””(空 5 2022/12/20 15:17
- フリーソフト テキストファイル内を検索したい 1 2022/06/01 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
テキストファイル固定長データ...
-
テキストファイルの特定行の削...
-
VB(VBA)で、バイナリデータを使...
-
テキストファイルのログをExcel...
-
C#で大容量ファイルの一部編集
-
テキストファイルの一部分を抽...
-
WORDのVBAで差し込み印刷時、デ...
-
ストリームについて。
-
テキストファイル(英語&日本...
-
Excel VBAが徐々に遅くなる
-
既存のテキストファイルを開く方法
-
perlでの特定の値抽出について
-
My.Resourcesにあるテキストフ...
-
PHP ファイルから文字列を検索...
-
StreamReaderで読み込んだファ...
-
テキストファイルをSQLServerデ...
-
Linuxにてテキストファイル出力...
-
VBA。開いているテキストファイ...
-
accessでクエリをExcelにエクス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ATTファイルってどうやって開け...
-
VBSでテキストファイルの2行目...
-
テキストファイルの一部分を抽...
-
既存のテキストファイルを開く方法
-
Excel VBAが徐々に遅くなる
-
テキストファイルの特定行の削...
-
Windowsのメモ帳でUTF-8を選択...
-
VB(VBA)で、バイナリデータを使...
-
テキストファイル内容の、16進...
-
エクセルVBAでメールの自動作成...
-
VBA。開いているテキストファイ...
-
[VB.NET] 処理の高速化を行いた...
-
ASP.NET Web上のテキストファ...
-
フォーム無しでアプリを作成す...
-
テキストファイル固定長データ...
-
ファイルのチェックサムを改行...
-
文字コードの変換(JISコードへ)
-
UTF-8とASCIIコードにおける互...
-
C言語でテキストファイルをバイ...
-
Excel+VBAでフランス語を扱いた...
おすすめ情報