PHP 无法从 URL 打开/读取 CSV 文件,而我可以从本地主机打开/读取它.怎么了


PHP Cannot open/read CSV file from URL whereas I can open/read it from localhost. What's wrong?

使用php,我试图从在线存储的.csv文件中获取一些数据(www.website.com/data/my_file.csv)。在本地主机(使用 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);

这将给我"无法打开文件"。如果我从本地主机尝试相同的代码,它可以工作。此外,我尝试了另一种方式:

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

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

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

尝试在文件开头运行以下命令:

<?php
   ini_set("allow_url_fopen", 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() 是读取 文件转换为字符串。如果支持,它将使用内存映射技术 通过您的操作系统来提高性能。

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