人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて質問です。

現在WEBマーケティングを行っています。

規則性のあるオークションサイト(ヤフオク)からHTMLのデータを取ってきているのですが、

例えば イチロー シャツ と入力した商品を閲覧できるページの最後のページのURL

http://search.auctions.yahoo.co.jp/jp/search?p=%a5%a4%a5%c1%a5%ed%a1%bc%a1%a1%a5%b7%a5%e3%a5%c4&f=0x2&alocale=0jp&mode=2&auccat=0&apg=5 ←数字の5を6に替えてページ移動します。

PHPで移動すると

http://search.auctions.yahoo.co.jp/jp/search?p=%a5%a4%a5%c1%a5%ed%a1%bc%a1%a1%a5%b7%a5%e3%a5%c4&f=0x2&alocale=0jp&mode=2&auccat=0&apg=6

とならず

http://search.auctions.yahoo.co.jp/jp/search?p=%a5%a4%a5%c1%a5%ed%a1%bc%a1%a1%a5%b7%a5%e3%a5%c4&f=0x2&alocale=0jp&mode=2&auccat=0&apg=6<center>auction?等等

HTMLタグがURLの後ろについてしまいます。

6ページへいくまでは全て正しいURLを返してくれるのですが、最後のページだけどうしてもおかしくなります。

どうにかして最後のページへ移動したいのですが

一度サイトへ飛んだ後、もしURLの最後にHTMLタグやその他文字が入った場合取り除くという作業を行いたいのですがその様なことはPHPでは可能でしょうか?

●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:HTML PHP URL Web イチロー
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● makeworld
●100ポイント ベストアンサー

質問文からは、なぜ最後のページだけ置換に失敗しているのかは、わかりませんでしたが、下記のように次のページのURLを生成できると思います。

preg_match()で、ページ番号を取得して、preg_replace()で置換しています。

<?php

$url = 'http://search.auctions.yahoo.co.jp/jp/search?p=%a5%a4%a5%c1%a5%ed%a1%bc%a1%a1%a5%b7%a5%e3%a5%c4&f=0x2&alocale=0jp&mode=2&auccat=0&apg=5';

preg_match('|&apg=(\d+)|', $url, $matches);
$page = $matches[1] + 1;

$next = preg_replace('|(&apg=)\d+|', '${1}'.$page, $url);

print "next = ($next)\n";

?>
◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ