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では可能でしょうか?

回答の条件
  • 1人2回まで
  • 登録:2009/10/01 22:32:34
  • 終了:2009/10/02 18:24:29

ベストアンサー

id:makeworld No.1

makeworld回答回数75ベストアンサー獲得回数232009/10/01 23:15:23

ポイント100pt

質問文からは、なぜ最後のページだけ置換に失敗しているのかは、わかりませんでしたが、下記のように次のページの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";

?>
id:aiomock

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

2009/10/01 23:51:38

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません