3

使用 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);

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

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

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

4

3 回答 3

2

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

尝试在文件开头运行它:

<?php
   ini_set("allow_url_fopen", 1);
于 2012-06-23T12:57:18.163 回答
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() 是将文件内容读入字符串的首选方法。如果您的操作系统支持,它将使用内存映射技术来提高性能。

于 2012-06-23T12:57:14.357 回答
0

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

于 2012-06-23T12:56:01.757 回答