PHP无法从URL打开/读取CSV文件,而我可以从localhost打开/读取它。怎么了?

时间:2012-06-23 12:53:06

标签: php csv

使用php我试图从在线存储的.csv文件中获取一些数据(www.website.com/data/my_file.csv)。在localhost上测试代码时(使用xampp)一切都很好,但是当我将文件移动到我的在线服务器时它不起作用。 我在做的是:

$filesize=2000;
$handle = fopen("www.website.com/data/my_file.csv", "r") or die ('cannot open the file');
$raw = fread($handle, $filesize);
fclose($handle);

这会给我'无法打开文件'。如果我从localhost尝试相同的代码,它的工作原理。 此外,我尝试了另一种方式:

$filesize=2000;
$handle = fopen("my_file.csv", "r") or die ('cannot open the file');
$raw = fread($handle, $filesize);
fclose($handle);

实际上有效,但问题是.csv文件应该从完整的URL打开/读取。 我有什么东西可以忽略,或者这只是错误的做法吗?

3 个答案:

答案 0 :(得分:2)

您是否在某种共享主机帐户上?很多这些地方都不允许通过禁用allow_url_fopen指令进行远程调用。

尝试在文件的开头运行:

<?php
   ini_set("allow_url_fopen", 1);

答案 1 :(得分:1)

可能是安全问题。我会尝试使用file_get_contents

$csv = file_get_contents("www.website.com/data/my_file.csv");
// limit maximum length
$csv = file_get_contents("www.website.com/data/my_file.csv", false, null, 0, $filesize);
  

file_get_contents()是读取a内容的首选方式   将文件转换为字符串。如果支持,它将使用内存映射技术   通过您的操作系统来提高性能。

答案 2 :(得分:0)

确保allow_url_fopen已启用后,请使用fopen('http://www.website.com/data/my_file.csv','r')