PHP スクリプトを変換して CSV ファイルを読み取り、エコーを複数回返す
P粉127901279
P粉127901279 2023-08-06 19:24:52
0
1
609
<p>CSV ファイルを読み取り、結果として得られるラジオ スケジュールを日時に基づいて Web サイトに公開する PHP スクリプトを作成しました。ただし、2回発売されるようです。 <br /><br />スクリプトの内容は次のとおりです。</p><p><br /></p> <pre class="brush:php;toolbar:false;"><?php // ステップ 1: 「data.csv」を CSV ファイルへのパスに置き換えます $csvFile = 'スケジュール.csv'; // ステップ 2: CSV を読み取り、その内容を配列に保存します if (($handle = fopen($csvFile, 'r')) !== false) { $csvData = []; while (($data = fgetcsv($handle)) !== false) { $csvData[] = $data; } fclose($handle); } それ以外 { die("CSV ファイルを開くときにエラーが発生しました。"); } // ステップ 3: 現在の日付と時刻を取得する $currentDay = date('l'); // l はその日の完全なテキスト表現を与えます (例: "月曜日") $currentHour = date('H'); // H は 24 時間形式で時間を表します (例: 午後 1 時は「13」) // 以下の時間オフセットを調整します。 $Hour = $currentHour 1; // ステップ 4: 現在の日付と時刻に基づいて配列をフィルタリングする $filteredData = []; foreach ($csvData as $row) { // CSV ファイルに「日」列と「時間」列があると仮定します。 $day = $row[0]; $time = intval($row[1]); $プログラム名= $行[2]; $program_when= $row[2]; $program_img= $row[4]; // 行が現在の日時と一致するかどうかを確認します if ($day === $currentDay && $Hour >= $time) { $filteredData[] = $row; } } // ステップ 5: 各行の CSS クラスを使用してフィルタリングされたデータを表示する if (count($filteredData) > 0) { foreach ($filteredData as $row) { echo "<div class='row'>"; echo "
"; echo "<img src='$row[4]' width='90' height='90' border='0'>"; echo "</div>"; echo "
"; echo "<h3>$row[2]<br>$row[3]</h3>"; echo "</div>"; echo "</div>"; } } それ以外 { echo '利用できません。'; }</pre> <p>これは CSV ファイルでテストしたデータです: </p> <pre class="brush:php;toolbar:false;">金曜日、12 日、MMV、午後 1 時まで、top_mmv.png 金曜日、13 日、MMV、午後 2 時まで、top_mmv.png 金曜日、14日、MMV、午後3時まで、top_mmv.png 金曜日、15 日、MMV、午後 4 時まで、top_mmv.png</pre> <p>しかし、金曜日の午後 2 時になると、午後 1 時と午後 2 時の両方の行が投稿されます。私が何を間違えたのでしょうか? </p>
P粉127901279
P粉127901279

全員に返信(1)
P粉481815897

データを収集するための条件を指定する必要があります。

リーリー

たとえば、現在の時刻は 14 時です (1 時間を追加して調整します)。

$時間 >= $time

リーリー

問題がどこにあるのかがわかると思います。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート