2014-10-09 3 views
0

로컬 컴퓨터에서 다음 코드를 테스트하는 동안 오류가보고되지 않았습니다. 하지만 직장에서 서버에서 테스트 한 후 다음과 같은 이상한 오류가 발생했습니다. PHP는 서버에 파일을 쓰지 않습니다. 내가 사용하고PHP로 파일에 쓰는 동안 오류가 발생했습니다

코드 :

$myfile = fopen("results/co".$a[$i].".txt", "w") or die("Unable to open file!"); 
fwrite($myfile,"some text"); 
fclose($myfile); 

그래서 어떤 파일이이 경우에 만들어지지 않습니다. . 내가 파일 이름 "결과/공동"를 대체 할 때 는 [$ i]를 $의 값으로. "TXT." "결과/co00112test.txt"

$myfile = fopen("results/co00112test.txt", "w") or die("Unable to open file!"); 
fwrite($myfile,"some text"); 
fclose($myfile); 

그냥 잘 작동합니다. 어떤 희망을 아직

$name = "results/co".$a[$i].".txt"; 
$myfile = fopen($name, "w") or die("Unable to open file!"); 
fwrite($myfile,"some text"); 
fclose($myfile); 

:

은 또한 다음을 시도했다.

이 오류의 원인은 무엇입니까?

+0

당신이 "w +"을 writting 모드를 사용하여 시도가 ... 또한 서버 – justrohu

답변

0

일부 정적 파일 이름을 넣을 때 코드가 잘 작동하면 변수 $a[$i]이 잘못 되었음이 분명합니다.

$name = "results/co".$a[$i].".txt"; 
var_dump($name); 

이름은 뭔가 이상한 표시해야하고 파일에 무슨 일이 일어나고 있는지 당신에게 말할 것이다 :

당신은 그것을 디버깅하는 그런 식으로 진행할 수 있습니다.

0

권한 때문일 수 있습니다. 귀하의 PHP 사용자는 파일을 만들려는 파일이나 권한이없는 폴더 (파일이 이미있는 경우)를 편집 할 폴더에 대한 권한이 없습니다.

현재 권한 (이 우분투에 대해,하지만 그것은 정말 중요하지 않습니다 OS)에 대한 전체 기사를 읽을 수 있습니다 : https://help.ubuntu.com/community/FilePermissions

사용자 권한 (644)을 시도 할 수 있습니다 또는 작동하지 않는 경우 777 (644)가 사용할 수 있습니다 파일 소유자 만이 파일을 편집 할 수 있기 때문에 더욱 안전합니다. 사용자의 OS 사용자는 편집 할 수 없습니다.

이처럼에서 폴더 권한 및 모든 파일/폴더를 변경할 수 있습니다

chmod -R 644 /path/to/folder/ 

나는 644이 디렉토리의 파일에 대한 표준 및 755 생각합니다.

는이 같은 파일/폴더의 소유자를 변경할 수 있습니다 : 그것은 문제가 될 수 있도록

chown name_of_user:name_of_group /path/to/folder 
0

파일 이름을 더블 제로 문자로 시작된다.

이 작동하지 않습니다

$number = 112; 
$file_name = "results/co".$number."test.txt"; 

이 작동합니다 :

$number = 112; 
$number_pad = str_pad($number, 5, '0', STR_PAD_LEFT); 
$file_name = "results/co".$number_pad."test.txt"; 
+0

아니 그것의 PHP 버전 것입니다 그렇지 않으면 파일 이름은'co'로 시작합니다. –

+0

당신의 변수 $ a [$ i] – Yoric

관련 문제