2012-06-27 3 views
2

일부 명령 행 PHP를 작성하려고합니다. PHP를 사용하여 명령 행에서 파일을 작성하는 트릭이 있습니까? 이 파일은 testcl.php라고 나는 그것을 실행된다커맨드 라인 PHP에서 파일에 쓰는 방법?

/usr/bin/php -f /var/www/html/media/testcli.php 

$myFile = "test.txt"; 
$fh = fopen($myFile, 'a'); 
fwrite($fh, "batman2"); 
fclose($fh); 
echo "batman"; 

배트맨 echo 문 작동, 그래서 파일이 실행중인 알 -하지만 어떤 이유로 TEST.TXT 서면 아니에요. testcli.php에 액세스하면 text.txt를 성공적으로 작성하므로 일부 트릭이 누락되었다고 생각합니다.

답변

5

난 당신이 CWD의 문제가 의심 : test.txt는이 스크립트를 호출하는 동안 당신이 서 어디든지 계산 될 수 있도록, 상대 경로 - 이것은 쉘 웹 서버에 사용자 사이에 differet 될 수 있습니다. 시도해보십시오.

$myFile=dirname(__FILE__).'/test.txt'; 

권한 문제 일 수도 있습니다.

+0

확인했는데 동일한 문제가 있었는데 문제는 상대 경로를 사용하고 있다는 것입니다. 파일은 PHP 스크립트 대신 CL 스크립트를 기준으로 작성되었습니다. 감사! –

1

나는 php 코드를 실행하기 전에/var/www/html/media /로 cd한다. 또한 현재 사용자가 해당 디렉토리에 쓸 수 있는지 확인하십시오/

2

아마도 허가 문제 일 수 있습니다. 사용해보십시오 :

sudo /usr/bin/php -f /var/www/html/media/testcli.php

1

두 가지 가능성을 :

  • 당신이 웹 서버에서 PHP를 실행하면 항상 스크립트를 포함하는 디렉토리로 설정 현재 디렉토리에 실행됩니다. 명령 줄에서 PHP를 실행하면 작업 디렉토리가 그대로 유지됩니다. cwd에서 출력 파일을 확인하십시오.

  • 해당 파일이 없으면 php-cli를 실행중인 사용자에게 현재 디렉토리에 쓸 수있는 권한이 없을 수도 있습니다.