2013-01-08 5 views
2

디렉토리를 생성하는 PHP 파일이 있습니다. 그 PHP 파일을 배경에서 실행 싶습니다. 아래 2 개의 파일을 작성했습니다. index.php를exec를 사용하여 백그라운드에서 PHP 스크립트를 실행하십시오.

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
$i = ''; 
exec("php file1.php $i > test.txt &"); 
?> 

file1.php

<?php 
error_reporting(E_ALL); 
ini_set("display_errors", 1); 
echo 'calling file1'; 
if(!is_dir('testdir')){ 
    mkdir('testdir'); 
} 
?> 

나는 index.php에이 브라우저를 통해 실행될 때 디렉토리가 생성되고 싶어요. 나는 exec() 함수를 작성하는 실수를하고 있다고 생각한다. 아무도 그것이 어떻게 될지 말해 줄 수 있습니까?

+1

curl_execute를 사용하여 서버에서 php 파일을 열 수 있습니다. 간부보다 훨씬 안전합니다. ($ i에 주입에 관한 것. – Aminadav

+0

@Amina : 이상한 충고 : - – zerkms

+1

@Amina :'$ i'가 어떻게 주입 될 수 있는지에 대한 어떤 구체적인 예가 있습니까? – zerkms

답변

0

그래서 답은 CURL을 사용하는 것입니다. 왜냐하면 PHP 바이너리를 사용할 필요가 없기 때문입니다.

당신이 file2.php 마무리는 FILE1에 컬 요청에 제한 시간을 추가 할 때까지 기다려야 file1.php을하지 않으려면 : 이제

$curlcontext,CURLOPT_CONNECTTIMEOUT_MS,100; 

, 이것이 file2.php에 추가하는 것이 중요합니다 :

ignore_user_abort (true); 

그것은 제한 시간 후 종료하거나 file1.php하지 않을 것이다 file2.php 의미의

http://php.net/manual/en/function.ignore-user-abort.php http://php.net/manual/en/function.curl-s etopt.php

관련 문제