同じサイト内の別ページから同じサイト内にあるお知らせ記事にページ内リンクで飛ぶようにしたいと思っています。
ただ、お知らせ記事のあるページのURLにはパラメータが付与されていて、1ページ内に10記事溜まる毎に自動的にページ追加が発生すると同時にパラメータが付与されていきます。
【例】
1ページ目:?pege=1
2ページ目:?page=2
3ページ目:?page=3
・
・
・
お知らせの記事は「information.dat」から読み込まれています。
【information.dat内】
記事番号※投稿日時(202110271501) 記事タイトル サブタイトル 内容 投稿日付
※タブで区切っています
本題(やりたいこと)
information.dat内からお知らせページと同じようにデータを読み込み、そこからリンクを貼りたい記事番号を検索して
該当の記事番号の記事の順番が上から11番目以上だった場合はリンクしてあるURLのパラーメータの表記を「?page=2」
21番目以上だった場合は「?page=3」と自動的にパラメータの表記を変更させたいです。
変数「$linker」にパラメータの表記を考えています。
※HTML内にPHPを書いてます。
$datafile = './dat/information.dat'; $info_array = file( $datafile ); if( !$_GET['page'] || $_GET['page'] <= 1 ){ $page = 1; }elseif( $_GET['page'] >= 2 ){ $page = $_GET['page']; } $total_count = count($info_array); for($i = 0; $i < $total_count ; $i++){ $total=list($article_no, $title, $sub_title, $src, $date) = explode("\t", $info_array["$i"]); if( !$info_array["$i"] ) continue; }
お知らせ記事のHTMLの先頭には<a name="$article_no">を設置しています。
詰まっているところ
該当のページ数を求めることができるようになりました。
ただ、やりたいこととしましてはクラスを定義して、別の箇所でメソッドを呼び出したいと思っています。
しかしうまくいかずに出力すると「NULL」が返されてしまいます。
<?php class hoge{ public function date_no(){ $regex = $article_list; } public function date_non(){ $array = array_filter($info_array, function($value) use($regex) { return preg_match($regex, $value); });} public function date_nonn(){ $keys_s = $keys[0] + 1 / 10 ;} public function date_nonnn(){ $linker = ceil($keys_s);} } ?> <tr> <th>2021年10月</th><td> <?php $article_list="20211021094808"; $hoge = new hoge(); $hoge->date_no(); $hoge->date_non(); $hoge->date_nonn(); $hoge->date_nonnn(); echo $linker; ?> <a href="https://www.test.co.jp/information.html?page=<?php echo $linker;?>#20211021094808">記事タイトル</a></tr>
是非ご教示いただけますと幸いです。
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/28 07:38
2021/10/28 07:45
2021/10/28 11:52