0

ページ: http://www.nastygal.com/accessories/minnie-bow-clutch

コード: $html = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch');

ページの右上で通貨を変更して、 $htmlには常に製品の USD 価格が含まれています。ページの通貨を CAD に変更するときに、CAD 価格を含む HTML を取得するにはどうすればよいですか?

4

2 に答える 2

2

国と通貨の選択がCookieに保存されているようです。

ここに画像の説明を入力してください

私はあなたがあなたのfile_get_contents()呼び出しと一緒にそれらの値を渡さなければならないだろうと仮定しています。参照: PHP-file_get_contentsを使用してCookieを送信する


編集#1

私のコメントをフォローアップするために、私はこれをテストしました:

// Create a stream
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: CURRENCYPREFERENCE=cad\r\n" 
  )
);

$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents('http://www.nastygal.com/accessories/minnie-bow-clutch', false, $context);
print_r($file);

そしてこれを得ることができました:

ここに画像の説明を入力してください


編集#2:

あなたの2番目のコメントに応えて。それらは重要な詳細でした。あなたのブックマークレットは削られた内容をどうしますか?ブックマークした製品ページのコピーを自分のWebサイトに保存していますか?とにかく、実行のリクエストを送信する前に、ブックマークレットを変更してユーザーのCookieを確認する必要がありますfile_get_contents()

次の簡単なブックマークレットの例を使用して、nastygal.comからCookieにアクセスできました。注:nastygal.comはjQueryとjQueryUIcookieプラグインを使用します。より一般的なソリューションを探している場合は、次のスクリプトが存在することに依存しないでください。

javascript:(function(){ console.log($.cookie('CURRENCYPREFERENCE')); }());

JSコンソールでの出力:

cad
于 2013-01-25T21:46:00.193 に答える
2

通貨設定がCURRENCYPREFERENCEという名前のCookieに保存されているようです

そのビューを取得するために接続を確立しているのはブラウザではないため、リクエストと一緒にCookieデータを送信していない可能性があります。

ここの例4で、必要なものが得られると思います:http: //php.net/manual/en/function.file-get-contents.php

于 2013-01-25T21:46:53.517 に答える