【问题标题】:file_get_contents not working when getting FTP url获取 FTP url 时 file_get_contents 不起作用
【发布时间】:2018-03-27 08:27:57
【问题描述】:

我需要获取 CSV 文件的内容以进行导入。我得到了一个可以使用的 URL,你可以在下面看到,我使用这个代码:

print_r(file_get_contents('ftp://*username*@*host*:*password*@*host*/nagyker_csv.csv'));

当我在我的服务器上测试时,它总是返回空。因此,我尝试在本地主机上执行此操作,并正确返回了内容。

虽然 php.ini 文件中有一些东西阻止了该功能的工作,所以我尝试获取 Google 主页的内容,并且它正确返回。

因此,在服务器上,我可以获取任何 URL 的内容,除了我需要的 FTP,但该 URL 是可访问的,正如我所说,我使用本地主机中的相同代码访问它。

代码在 Drupal 7 模块中,可能会导致问题?

有人知道是什么原因造成的吗?也许一些服务器设置?

【问题讨论】:

  • 这可能是因为您没有在 PHP 中启用 URL 包装器。
  • 但是我可以获取例如 Google.com 的内容,但不能获取我需要的 FTP。
  • 您可以使用此替代方法并尝试一下吗? <? $filename = "ftp://username:pa‌​ssword@hostname/path/to/file"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); echo $contents; ?> 如果这行得通,请告诉我。
  • 试过了,不行,返回空。我也尝试使用 cURL,结果相同。
  • 那么可能是你的文件或路径错误。检查路径是否正确。

标签: php drupal drupal-7


【解决方案1】:

首先,请检查文件权限。

<?php  
      $username = "username";  
      $password = "********";  
      $url = "mydomain.com/file.txt"; // IP address also works in place of domain.com  
      $hostname= "ftp://$username:$password@$url";  
      $contents = file_get_contents($hostname);  
    ?>  

【讨论】:

  • 你检查过文件权限吗?
  • 默认是0644,我改成0777,还是不行。
  • 我正在使用相同的代码。可以试试 777 吗?
猜你喜欢
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 2013-06-30
  • 2016-03-09
  • 2023-03-08
相关资源
最近更新 更多