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

时间:2012-05-04 18:45:09

标签: php

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

  

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

我该如何解决这个问题?

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

2 个答案:

答案 0 :(得分: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);
?>

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

答案 1 :(得分: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扩展(例如,将它们安装在Debian型Linux机器的'apt',Red Hat等人的'yum'或类似设备)或PECL。

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