我正在尝试编辑外部文件。我已经更改了文件的 chmods (666),我可以使用 file_get_contents 读取文件,但我无法放置内容:
[function.file-put-contents]:无法打开流:HTTP 包装器不支持可写连接
我该如何解决这个问题?
有没有办法在外部服务器上编辑文件?也许你可以提出更好的方法
我正在尝试编辑外部文件。我已经更改了文件的 chmods (666),我可以使用 file_get_contents 读取文件,但我无法放置内容:
[function.file-put-contents]:无法打开流:HTTP 包装器不支持可写连接
我该如何解决这个问题?
有没有办法在外部服务器上编辑文件?也许你可以提出更好的方法
将外部服务器上的文件 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);
?>
请注意,这可能会造成重大的安全风险。
检查http://us.php.net/manual/en/function.file-put-contents.php的“注释”部分,了解有关使用 URL 文件规范编写文件的一些线索。tl;dr:不像通过 file_get_contents() 读取远程文件那么容易让你相信。
但是,从安全的角度来看,这是一个坏主意。几个稍微好一点的想法:
检查 ssh2_scp_send 并将本地更改的文件副本 scp 到远程服务器。这可能涉及通过您的操作系统供应商安装 SSH2 PECL 扩展(例如,将它们安装在 'apt' 用于 Debian 类型的 Linux 机器,'yum' 用于 Red Hat 等,或类似的)或从 PECL。
POST 到远程服务器上的脚本并让它为您更新文件。