-1

我正在尝试编辑外部文件。我已经更改了文件的 chmods (666),我可以使用 file_get_contents 读取文件,但我无法放置内容:

[function.file-put-contents]:无法打开流:HTTP 包装器不支持可写连接

我该如何解决这个问题?

有没有办法在外部服务器上编辑文件?也许你可以提出更好的方法

4

2 回答 2

1

将外部服务器上的文件 CHMOD 到 0777,然后可以在外部更改它们:

<?php
chmod("/somedir/somefile", 0777);
?>

然后用于编辑:

<?php
$file = fopen ("ftp://login:password@server", "w");

if (!$file) {
  echo "<p>Unable to open remote file for writing.\n";
  exit;
}

/* Write the data here. */
fwrite ($file, "blablabla");
fclose ($file);
?>

请注意,这可能会造成重大的安全风险。

于 2012-05-04T19:06:42.527 回答
1

检查http://us.php.net/manual/en/function.file-put-contents.php的“注释”部分,了解有关使用 URL 文件规范编写文件的一些线索。tl;dr:不像通过 file_get_contents() 读取远程文件那么容易让你相信。

但是,从安全的角度来看,这是一个坏主意。几个稍微好一点的想法:

  1. 检查 ssh2_scp_send 并将本地更改的文件副本 scp 到远程服务器。这可能涉及通过您的操作系统供应商安装 SSH2 PECL 扩展(例如,将它们安装在 'apt' 用于 Debian 类型的 Linux 机器,'yum' 用于 Red Hat 等,或类似的)或从 PECL。

  2. POST 到远程服务器上的脚本并让它为您更新文件。

于 2012-05-04T19:15:56.337 回答