<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>
データを収集するための条件を指定する必要があります。
リーリーたとえば、現在の時刻は 14 時です (1 時間を追加して調整します)。
$時間 >= $time
リーリー問題がどこにあるのかがわかると思います。