2012-05-04 26 views
-1

外部ファイルを編集しようとしています。私は、ファイルのchmods(666)を変更していると私は、のfile_get_contentsを使用してファイルを読み込むことができますが、私は、コンテンツを置くことができません:外部サーバー上のファイルをPHPで編集する

[function.file-入れ-内容]:ストリームをオープンに失敗しました:HTTPラッパーをサポートしていません。書き込み可能な接続

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

外部サーバーのファイルを編集する方法はありますか?多分あなたはより良い方法

+1

どのようなファイルを変更しますか? –

+0

phpファイルとtxtファイル - 両方を変更しようとしましたが、2回失敗しました – andrewpo

+1

外部ファイルを変更して、その外部サーバーにも保存しますか?または、ファイルを変更して、変更したバージョンを自分のサーバーに保管したいですか? –

答えて

1

CHMOD 0777への外部サーバ上のファイル(複数可)を提案することができ、それらは外部から変更することができます:

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

が次に編集のために使用します。

<?php 
$file = fopen ("ftp://login:[email protected]", "w"); 

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

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

うこれにより重大なセキュリティリスクが発生する可能性があることに注意してください。

+0

「ftp:// loginpassword @ server」というファイルを開く方法が分からないので、正しく表示されず、「ftp://[email protected]/file.txt」も開くことができません。 – andrewpo

1

http://us.php.net/manual/en/function.file-put-contents.phpの 'Notes'セクションで、URLファイル指定のファイルを書き込む手がかりを確認してください。 tl; dr:file_get_contents()でリモートファイルを読むのは簡単ではないでしょう。

これは、セキュリティの観点からは、悪い考えです。

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

  2. リモートサーバーのスクリプトにPOSTして、ファイルを更新してください。

+1

私はあなたの2.提案を使用するつもりです - 投稿付きのローカルスクリプトを作成し、管理サーバからローカルのファイルにコピーするつもりです – andrewpo

+0

素晴らしい!私はupvoteまたはそれが私の答えを受け入れることは何でもありがとう - StackOverflowの私の最初の答えは、私は担当者を構築しようとしている:) – taiganaut

関連する問題