2012-01-31 5 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 

,하지만 사용할 수 있습니다.
창문에 FileZilla를 사용하고

+2

'권한이 거부되었습니다.'는 권한이 없음을 나타냅니다. – xdazz

+0

정확하게 xdazz가 말했다. 권한이 없습니다. – senzacionale

답변

2

그들은 , 그들은 당신에게 권리를 부여 디렉토리에

쓰기 권한 (및 777 그런데 나쁜 생각) :-) 여기에 단지 관련이없는 작업이야된다 해당 디렉토리에서 파일을 작성, 이름 변경 및 삭제할 수 있습니다.

당신이 이미있는 파일에 기록하려면

이 중요한 파일에 대한 권한이 아닌 디렉토리입니다.

오류로 인해 si.xml가 이미 존재하며 귀하로부터 보호됩니다. 디렉토리에 대한 쓰기 권한이 있으면 먼저 파일을 삭제 한 다음 다시 만들 수 있지만 파일 자체에 대한 사용 권한을 수정하는 것이 좋습니다.

+0

제 말의 의미대로 스크립트가 작동하도록 모든 가능성을 검사하는 방법을 의미합니다. 당신이 수정 된 코드를 제안/적어 줄 수 있다면 기뻐할 것입니다. – krishna

+2

@pbvamsi : emailz로 하시겠습니까? –

+0

@pbvamsi : 파일을 생성/삭제/이름을 바꾸려면 chmod를 사용하여 디렉토리에 대한 쓰기 권한이 필요합니다. 덮어 쓰려면 작성한 파일에 대한 쓰기 액세스 권한이 필요합니다 (작성하기 전에 umask를 사용하고 작성한 후에는 chmod를 사용하십시오). chmod/umask에 사용할 값은 한 사용자, 한 그룹 또는 모든 사용자로 제한된 액세스를 원하는지에 따라 다릅니다. – paxdiablo