Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法从多货币网页获取价格信息_Php - Fatal编程技术网

Php 无法从多货币网页获取价格信息

Php 无法从多货币网页获取价格信息,php,Php,第页: 代码:$html=file\u get\u contents('http://www.nastygal.com/accessories/minnie-bow-clutch'); 即使我在页面右上角更改货币,$html始终包含产品的美元价格。当我将页面的货币更改为CAD时,如何捕获具有CAD价格的html?似乎国家和货币选择存储在Cookie中 我假设您必须将这些值与文件\u get\u contents()调用一起传递。见: 编辑#1 为了跟进我的评论,我刚刚测试了以下内容: //

第页:

代码:$html=file\u get\u contents('http://www.nastygal.com/accessories/minnie-bow-clutch');


即使我在页面右上角更改货币,$html始终包含产品的美元价格。当我将页面的货币更改为CAD时,如何捕获具有CAD价格的html?

似乎国家和货币选择存储在Cookie中

我假设您必须将这些值与
文件\u get\u contents()
调用一起传递。见:


编辑#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:

回应你的第二个评论。这些都是重要的细节。你的书签是怎么处理这些内容的?您是否在自己的网站上保存书签产品页面的副本?无论如何,在提交运行
文件\u get\u contents()
的请求之前,您必须修改bookmarklet以检查用户的cookie

我可以使用以下简单的bookmarklet示例从nastygal.com访问我的cookies。注意:nastygal.com使用jQuery和jQuery UI cookie插件。如果您正在寻找更通用的解决方案,则不应依赖这些脚本:

javascript:(function(){ console.log($.cookie('CURRENCYPREFERENCE')); }());
JS控制台中的输出:

cad

似乎国家和货币选择存储在cookies中

我假设您必须将这些值与
文件\u get\u contents()
调用一起传递。见:


编辑#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:

回应你的第二个评论。这些都是重要的细节。你的书签是怎么处理这些内容的?您是否在自己的网站上保存书签产品页面的副本?无论如何,在提交运行
文件\u get\u contents()
的请求之前,您必须修改bookmarklet以检查用户的cookie

我可以使用以下简单的bookmarklet示例从nastygal.com访问我的cookies。注意:nastygal.com使用jQuery和jQuery UI cookie插件。如果您正在寻找更通用的解决方案,则不应依赖这些脚本:

javascript:(function(){ console.log($.cookie('CURRENCYPREFERENCE')); }());
JS控制台中的输出:

cad

看起来货币首选项保存在名为CURRENCYPREFERENCE的cookie中

由于不是您的浏览器建立了检索该视图的连接,因此您可能不会随请求发送任何cookie数据

我相信这里的示例4会满足您的需求:

看起来货币首选项保存在名为:CURRENCYPREFERENCE的cookie中

由于不是您的浏览器建立了检索该视图的连接,因此您可能不会随请求发送任何cookie数据

我相信这里的示例4会满足您的需求:

您在哪里更改货币?希望这些信息存储在cookie中。顺便说一句,尼斯网站:)你在哪里更改货币?希望这些信息存储在cookie中。顺便说一句,很好的站点:)谢谢你的指针,但是我如何获得这个cookie值,以便将其传递到php中呢?我尝试使用js document.cookie检索它,但找不到。@asdfasfdfasdfsf您不必“获取”cookie值。使用我链接的示例或PHP页面DavidHamp linked,您可以传递一个key=value对数组来模拟nastygal.com.Sry通常设置的cookies,只是为了澄清我的意图,用户将使用我的bookmarklet从他们的浏览器中提取价格,就像kaboodle那样。示例用例:1。用户进入产品页面(价格现在显示美元)2。他们将货币改为澳元(价格现在改为澳元)3。他们从浏览器4中点击我的书签。bookmarklet智能地将澳元价格剔除。我仍然无法确定他们选择的货币,因此我可以通过HTTP请求传递正确的cookie值,以获得包含所选货币价格的HTTP响应。希望这有意义!嗨,mofolo,我仍然无法使用$.cookie('CURRENCYPREFERENCE')获得cookie值;它返回null。然后我检查$.cookie()中的cookie列表,它们在document.cookie中是相同的集合,我缺少什么?感谢指针,但是我如何获得这个cookie值,以便将其传递到php?我尝试使用js document.cookie检索它,但找不到。@asdfasfdfasdfsf您不必“获取”cookie值。使用我链接的示例或PHP页面DavidHamp linked,您可以传递一个key=value对数组来模拟nastygal.com.Sry通常设置的cookies,只是为了澄清我的意图,用户将使用我的bookmarklet从他们的浏览器中提取价格,就像kaboodle那样。示例用例:1。用户进入产品页面(价格现在显示美元)2。他们将货币改为澳元(价格现在改为澳元)3。他们从浏览器4中点击我的书签。bookmarklet智能地将澳元价格剔除。我仍然无法确定他们选择的货币,因此我可以通过HTTP请求传递正确的cookie值,以获得包含所选货币价格的HTTP响应。希望这有意义!嗨,mofolo,我仍然无法使用$.cookie('CURRENCYPREFERENCE')获得cookie值;它返回null。然后我检查$.cookie()中的cookie列表,它们在document.cookie中是相同的集合,我缺少什么?