質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

881閲覧

パラメータが都度変更になるURLのリンクについて

yamadadayo

総合スコア39

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/10/27 06:24

編集2021/10/28 12:01

同じサイト内の別ページから同じサイト内にあるお知らせ記事にページ内リンクで飛ぶようにしたいと思っています。
ただ、お知らせ記事のあるページの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>

是非ご教示いただけますと幸いです。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

「記事番号」を分割数(1ページあたりの件数)で割って1足して小数点以下を切り捨てれば、それが何ページ目の記事かがわかると思いますよ。

投稿2021/10/28 07:27

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamadadayo

2021/10/28 07:38

ご回答いただき、ありがとうございます。 「記事番号」についてなのですが番号と言うよりは記事の名前という方が近いです。 記事を投稿した日時の数字になります。 説明不足で申し訳ございません。修正します。 今後の参考にさせていただきます。 本当にありがとうございます。
kei344

2021/10/28 07:45

下記部分を見て、それが動いているなら、と思ったのですが、全体のコードが読めていませんでした、すみません。 // if($keys[0] >= 10 && $keys[0] <= 19 ){ // $linker = "?page=2"; // }else{ // $linker = "?page=1"; // } 先に全部のデータを走査し、何番目にどの記事番号があるかを配列か何かに入れるなどすればページ番号を取得できるとは思います。
yamadadayo

2021/10/28 11:52

お返事ありがとうございます。 参考にさせていただきます!
guest

0

知識不足で見当違いな事書いてました。。。

<?php function link_list($article_list){ $regex = $article_list; $array = array_filter($info_array, function($value) use($regex) { return preg_match($regex, $value); }); $keys_s = $keys[0] + 1 / 10 ; $link = ceil($keys_s); return $link; } ?> <?php $linker = link_list("20211021094808"); ?> <a href="https://www.test.co.jp/information.html?page=<?php echo $linker;?>#20211021094808">記事タイトル</a>

上記でやりたい事が出来ました!
定義するのは「class」ではなく「関数」でした。

回答くださった方ありがとうございます。
ここまで来るのに大変参考になりました。

投稿2021/10/29 00:27

編集2021/10/29 00:32
yamadadayo

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問