-1

外部ファイルを編集しようとしています。ファイルの chmod (666) を変更しました。file_get_contents を使用してファイルを読み取ることはできますが、コンテンツを配置できません。

[function.file-put-contents]: ストリームを開けませんでした: HTTP ラッパーは書き込み可能な接続をサポートしていません

どうすればその問題を解決できますか?

外部サーバー上のファイルを編集する方法はありますか? 多分あなたはより良い方法を提案することができます

4

2 に答える 2

1

http://us.php.net/manual/en/function.file-put-contents.phpの「メモ」セクションをチェックして、URL filespec を使用してファイルを書き込む手がかりを確認してください。tl;dr: file_get_contents() を介してリモート ファイルを読み取ると信じてしまうほど簡単ではありません。

ただし、これはセキュリティの観点からは悪い考えです。いくつかの少し良いアイデア:

  1. ssh2_scp_send をチェックアウトし、ローカルで変更されたファイルのコピーをリモート サーバーに scp します。これには、OS ベンダーを通じて (たとえば、Debian タイプの Linux マシンの場合は「apt」、Red Hat などの場合は「yum」にインストールするなど)、または PECL から SSH2 PECL 拡張機能をインストールする必要があります。

  2. リモート サーバー上のスクリプトに POST し、ファイルを更新します。

于 2012-05-04T19:15:56.337 に答える
1

外部サーバー上のファイルを 0777 に CHMOD すると、外部で変更できます。

<?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 に答える