2012-01-31 8 views
1
$url = 'http://gdata.youtube.com/feeds/api/playlists/blabla'; 
$fp = fopen($url, 'r'); 
$buffer=''; 
if ($fp) { 
while (!feof($fp)) 
$buffer .= fgets($fp, 1024); 
fclose($fp); 
$buff=stripslashes($buffer); 
$old = umask(0); 
file_put_contents("si.xml", $buff); 
chmod("si.xml", 0777); 
umask($old); 

警告が機能していない私も手動でディレクトリ全体のファイル777へのアクセス権、ない使用を設定したPHPのchmodコマンド()とのumask()は、私が手

Warning: file_put_contents(si.xml) [function.file-put-contents]: failed to open stream 
Warning: chmod() [function.chmod]: Permission denied 

です。
は、Windows上でfilezillaのを使用しています

+2

「許可が拒否されました」は、あなたが権限を持っていないことを示しています。 – xdazz

+0

と同じようにxdazzが言った。あなたは許可を持っていません – senzacionale

答えて

2

彼らはは、彼らはあなたの権利を与えるディレクトリに

書き込み権限(および777は、方法によって悪い考えです):-)ここだけの無関係な作業をしているされていますそのディレクトリ内のファイルの作成、名前の変更、および削除を行います。

あなたはすでにあるファイルに書き込みたい場合は

は、それは問題では ファイル上の権限ではなく、ディレクトリです。

エラーから、si.xmlは既に存在し、あなたのものではありません。ディレクトリへの書き込み権限があれば、そこにあるファイルを最初に削除してから再作成することができますが、ファイル自体のアクセス許可を修正するほうが良いでしょう。

+0

私は自分の知識の範囲内で、スクリプトを動作させるためのすべての可能性をチェックした方法を意味します。私はあなたが訂正されたコードを提案/書いてもよければうれしいでしょう。 – krishna

+2

@pbvamsi:emailzでそれを好きになりますか? –

+0

@pbvamsi:ファイルを作成/削除/名前を変更する場合(chmodを使用してこれを一度設定します)、ディレクトリへの書き込みアクセス権が必要です。上書きするために作成したファイルへの書き込みアクセス権が必要です(作成する前にumaskを使用し、作成後にchmodを使用します)。 chmod/umaskに使用する値は、アクセスを1人のユーザ、1人のグループ、または全員に制限するかどうかによってまったく異なります。 – paxdiablo

関連する問題