アプリ版:「スタンプのみでお礼する」機能のリリースについて

検索ボックスに入力されたクエリを基に検索する、search.phpを作成しました。
queに格納されているキーワードを検索して、50件ずつ表示します。
このとき
search.php?que=[検索キーワード]&cat=[検索カテゴリ]&page=1
で検索結果の1ページ目、
search.php?que=[検索キーワード]&page=2
で検索結果の2ページ目が表示されます。

ページ下部には
前へ 次へ
とあり、それぞれページひとつ前、ページひとつ次のURLがあるのですが、このURLはクエリによって動的に変化します。
search.php?que=aaa&cat=abc&page=4 なら前へ:search.php?que=aaa&cat=abc&page=3 、 次へ:search.php?que=aaa&cat=abc&page=5
search.php?que=bbb?page=4 なら前へ:search.php?que=bbb?page=3 、 次へ:search.php?que=bbb?page=5

このように、それ以外のクエリを保持したまま、ページ番号だけを書き換えるにはどのようにすればいいのでしょうか。

よろしくお願いします。

A 回答 (1件)

クエリは$_SERVER["QUERY_STRING"]で拾えるので


合致する文字を足したり引いたりすればよいです
ただし、page=1のひとつ前はpage=0、page=0のひとつ前はpage=-1
になっちゃうので、その辺を処理する場合は工夫が必要です

<?PHP
$q=$_SERVER["QUERY_STRING"];
$pattern="/(?<=(?<=^|&)page=)\d+?(?=&|$)/e";
$replacement="$0-1";
$pre= preg_replace($pattern,$replacement,$q);
$replacement="$0+1";
$next= preg_replace($pattern,$replacement,$q);

print "<a href=\"".$_SERVER["SCRIPT_NAME"].($pre!==""?"?":"").$pre."\">前</a>";
print "<a href=\"".$_SERVER["SCRIPT_NAME"].($next!==""?"?":"").$next."\">後</a>";
?>
    • good
    • 0
この回答へのお礼

なるほどです。
ありがとうございました。

お礼日時:2012/03/25 23:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!