使用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打开/读取。 我有什么东西可以忽略,或者这只是错误的做法吗?
答案 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')
。