使用 PHP 编辑外部服务器上的文件


editing a file on external server with php

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

[function.file-put-content]:无法打开流: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 文件规范编写文件的一些线索。 dr:不像通过file_get_contents()读取远程文件那么容易,可能会让你相信。

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

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

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