谷歌财务api正在本地服务器上工作,但没有在现场工作

时间:2016-09-01 04:52:16

标签: php

在下面找我代码帮助我

<?php 
$result=file_get_contents('http://finance.google.com/finance/info?client=ig&q=DHAMPURSUG');
$res=json_decode(result);
print_r($res);
?>

3 个答案:

答案 0 :(得分:2)

尝试使用基本的cURL Post。

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://finance.google.com/finance/info?client=ig&q=DHAMPURSUG");
curl_setopt($ch, CURLOPT_POST, 1);

// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$server_output = curl_exec ($ch);

curl_close ($ch);
var_dump($server_output);

答案 1 :(得分:0)

在您的服务器上,allow_url_fopen可能设置为false,这会阻止file_get_contents()提取网址(请参阅the manual)。

要弄清楚是否是这种情况,请运行:

var_dump(ini_get('allow_url_fopen'))

如果您的生产服务器上输出了0false,那么您就已经找到了问题所在。 2个可能的修复:

编辑INI文件

一种解决方法是更改​​php.ini文件,将此设置设置为1On。要查找管理脚本的ini文件,请执行:

echo php_ini_loaded_file();

转到编辑该文件,然后重新启动Web服务器。

改用cURL

另一种方法是使用cURL连接到谷歌并获取您需要的信息:

$options = [ 
    CURLOPT_URL => 'http://finance.google.com...?client=ig&q=DHAMPURSUG',
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => true,
];
$ch = curl_init();
curl_setopt_array($ch,$options);
$result = curl_exec($ch);
curl_close($ch);

if($result===false) die(curl_errno($ch));

$result现在持有回复。

<强>附录 另一种可能性(感谢Hanky Panky)是您的生产服务器上没有json_decode功能。要对此进行测试,请运行以下行以查看是否打印true

var_dump(function_exists('json_decode'));

答案 2 :(得分:-1)

您可以在根目录中上传htaccess文件。