2013-12-18 2 views
-1

PHP 스크립트에서 쉘 스크립트를 실행합니다. mysql 행을 업데이트하기 전에 셸을 실행하고 이미지를 변환 하시겠습니까?

$make_small_thumbnail = shell_exec("convert ".$upload_dir."medium/".$processed_filename.".jpeg -resize 133x75 -background black -gravity center -extent 133x75 ".$upload_dir."thumb/".$processed_filename.".jpeg"); 

는 다음 나는 쉘의 이미지 변환을 완료하기 전에 그러나, 그것은 행을 갱신하는

$query = "UPDATE etc..."; 

후 MySQL의 쿼리 권리가 있습니다. 업데이트를 수행하기 전에 이미지가 변환되었는지 어떻게 확인할 수 있습니까?

+0

상세한 사용 방법에 대한 convert''의 공급 업체에 문의하십시오. – hakre

답변

0

$make_small_thumbnail = shell_exec("convert ".$upload_dir."medium/".$processed_filename.".jpeg -resize 133x75 -background black -gravity center -extent 133x75 ".$upload_dir."thumb/".$processed_filename.".jpeg"); 
echo $make_small_thumbnail; 
echo "<br />\n"; 
echo 'tests'; 

쇼를 무엇? 내 생각에, 비록 shell_exec가 동일한 스레드 내의 명령이라도 convert 명령은 실제로 새 스레드를 시작하거나 최소한 PHP가 명령을 완료했다고 생각하게 만듭니다. 이 경우 변환 명령이 실행되는 동안 sql-insert가 실행 중입니다. shell_exec이 변환이 완료 될 때까지 기다리거나 shell_exec를 전혀 사용하지 않고 imagick 라이브러리를 사용하여 동일한 결과를 얻도록 명령을 변경하십시오.

+1

PHP에 내장 된 스레드가 없습니다 – zerkms

+0

@Stijn 그냥
이되고 테스트가 반복됩니다. 이전 명령 줄에서 다음 명령에 영향을주지 않는 경고가 표시됩니다. – Darius

1

최종 이미지가 존재하는 경우이를 위해 간단히 확인할 수 있습니다, 같은 :

while(file_exists(PATH_TO_FILE) != true) 
    sleep(1); //wait one second 

If file exists run query. 
+0

그것은 질병이 아니라 증상을 치료하는 것입니다. – zerkms

관련 문제