2009-07-04 4 views
1

나는 붙어과 손을 필요로입니다. 누군가가 도울 수 있기를 바라십니까?PHP - 쓰기에 실패

사람은이 코드에서 "실패 쓰기"를 얻고있는 이유 어떤 생각을 가지고?

$write_file = "/usr/home/public_html/php/users_v2.sql"; 
$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!"); 

if (is_writeable($write_file)) { 
    if ($write_handle === FALSE) echo 'Failed handle?!'; 
    if (fwrite($write_handle, "Hi\n") === FALSE) echo "Failed write!\n"; 
} 

fclose($write_handle); 

미리 감사드립니다.

+0

확실하지 않지만 프로그램에 파일 쓰기 권한이 있는지 확인할 수 있습니까? –

+0

그래, 나는 그것을 확인. 777이 전체에 걸쳐 있습니다. 너무 이상해. – frio80

+0

서버의 오류 로그를 확인 했습니까? – PatrikAkerstrand

답변

1

. 그래서 $ write_handle 대신 파일 자원의, 참 또는 거짓 포함됩니다. 더 좋은 방법이이 것 성공적으로 완료되었는지 작성 및 테스트를위한 파일을 열 : 또한

$write_handle = fopen($write_file, 'w'); 
if ($write_handle === false) 
{ 
    die('Could not open file ' . $write_file); 
} 

을, 당신은 fopen을을 처리하는 file_put_contents() 기능()에 fwrite()와 FCLOSE()에 사용할 수 당신. 오버 헤드가 많아 지므로 동일한 파일에 하나의 쓰기 만 실행하는 경우이 옵션을 사용하는 것이 좋습니다. 사용자가 FILE_APPEND 플래그를 전달하지 않으면 모든 쓰기에 대해 파일이 비워집니다.

0

나는 모든 곳에서 사용되지만 문제가있다 보았다 || 죽는다 ("Couln't open users_v2!");

는 우선 추가 :

error_reporting(E_ALL); 

오류가 무엇 PHP를보고 확인합니다.

$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!"); 
fclose($write_handle); 

잘못된 스트림 핸들 오류 및 파일 핸들 1을 반환합니다. 반환 된 파일 핸들은 "리소스 ID #x"입니다.

에 라인을 변경 :

$write_handle = fopen($write_file, "w"); // || die("Couln't open users_v2!"); 

와 코드가 잘 작동합니다. 이제 php.net에 게시 할 것입니다. 를 사용하거나 파일 핸들을 만들 때 운영자, 당신은 작업에 따라 부울 값을 반환하는함으로써

+0

FreeBSD에서 실행됩니다. – frio80

관련 문제