dongtang2376 2016-04-25 15:25
浏览 65
已采纳

雅虎财经:404响应代码(PHP)

I'm using PHP to grab CSV files from Yahoo Finance based on an array of stock tickers.

My code is simple and is as follows:

$file = 'http://ichart.yahoo.com/table.csv?s='.$this->symbol.'&a='.$a.'&b='.$b.'&c='.$c.'&d='.$d.'&e='.$e.'&f='.$f.'&g='.$g.'&q=q&y=0&z='.$this->symbol.'&x=.csv';
$handle = fopen($file, "r");
//Then use fgetcsv to grab data, 
fclose($handle);

I'm getting the following error:

Warning: fopen(http://ichart.yahoo.com/table.csv?s=ANA.L&a=2&b=16&c=2016&d=2&e=19&f=2016&g=d&q=q&y=0&z=ANA.L&x=.csv): failed to open stream: HTTP request failed! HTTP/1.0 404 Not Found in y.php on line x

Manually entering the previous URL (http://ichart.yahoo.com/table.csv?s=ANA.L&a=2&b=16&c=2016&d=2&e=19&f=2016&g=d&q=q&y=0&z=ANA.L&x=.csv) gets the CSV file with no problem, so I'm confused as to why I'm getting a 404 response code.

EDIT: I have added a cURL request prior to using fopen. This is to check for a 404 response code. I am not getting any 404 response codes from the cURL but still getting the same error as mentioned above.

$curlhandle = curl_init($file);
curl_setopt($curlhandle,  CURLOPT_RETURNTRANSFER, TRUE);
/* Get the HTML or whatever is linked in $url. */
$response = curl_exec($curlhandle);
/* Check for 404 (file not found). */
$httpCode = curl_getinfo($curlhandle, CURLINFO_HTTP_CODE);

if($httpCode == 404) {
    echo "404:".$this->symbol."<br>";
    curl_close($curlhandle);
    return null;
    break;
} else {
    curl_close($curlhandle);
    $handle = fopen($file, "r");                        
}
  • 写回答

2条回答 默认 最新

  • dqmq0654 2016-04-25 15:33
    关注

    You need to URL encode all of your params otherwise you can have an invalid URL...

    $file = 'http://ichart.yahoo.com/table.csv?s='.urlencode($this->symbol).'&a='.urlencode($a).' //etc
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?