前提・実現したいこと
csvデータを下から数えて10行目から最後までを表示させたい
ヘディングのテキスト
<?php if (have_posts()): ?> <?php if(isset($_GET['s']) && empty($_GET['s'])) { echo '検索キーワード未入力'; } else { echo '“'.$_GET['s'] .'”の検索結果:'.$wp_query->found_posts .'件'; // 検索キーワードと該当件数を表示 // chmodで書き込み権限を付与 $filename = chmod("test.csv", 0775); // PHPでcsvファイルを読み込みする $f_path = "test.csv"; var_dump($f_path); // 送信内容をShift_JISに変更 mb_convert_variables('Shift_JIS', 'UTF-8', $ShiftJIS); // 書き方はおそらくあってる $keyword_data = array(date('Y-m-d-G-i-s'), $_SERVER["REMOTE_ADDR"],$_GET['s'].PHP_EOL); // ファイルを開くか、新しいテキストファイルを作って最後に追加書き込み $fp = fopen('test.csv', 'a'); // ファイルに対する処理を行う前にファイルをロックして、作業中は他の人がそのファイルに作業を行えないようにする、排他的ロック flock($fp, LOCK_EX); // CSVファイルにフォームの送信内容を記入しています fputcsv($fp, $keyword_data); // ロック解除 flock($fp, LOCK_UN); // CSVファイルをクローズして終わり fclose($fp); } ?> <ul> <?php while(have_posts()): the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php echo get_the_title(); ?></a> </li> <?php endwhile; ?> </ul> <?php else: ?> 検索されたキーワードにマッチする記事はありませんでした <?php endif; ?> <?php setlocale(LC_ALL, 'ja_JP.UTF-8'); $fp = fopen('test.csv', 'r'); flock($fp,LOCK_SH); $rows = array(); while ($row = fgetcsv($fp)) array_push($rows, $row); flock($fp,LOCK_UN); fclose($fp); foreach (array_slice($rows, -10) as $row) vprintf("%s %s\n", $row); var_dump($row); ?>
発生している問題・エラーメッセージ
なし
補足
var_dump($row);で確認したところ
2021-09-07-4-27-36 126.156.166.227 2021-09-07-4-27-52 126.156.166.227 2021-09-07-4-31-03 126.156.166.227 2021-09-07-4-50-36 126.156.166.227 2021-09-07-4-52-03 126.156.166.227 2021-09-07-4-52-15 126.156.166.227 2021-09-07-4-52-26 126.156.166.227 2021-09-07-5-01-27 126.156.166.227 2021-09-07-5-14-25 126.156.166.227 2021-09-08-4-48-06 126.133.202.39 array(3) { [0]=> string(18) "2021-09-08-4-48-06" [1]=> string(14) "126.133.202.39" [2]=> string(40) "ううううううううううううう " }
と出てます
回答2件
あなたの回答
tips
プレビュー