2012-05-28 3 views
1

PHP에서 작동하지 않습니다와 나는 하나 개의 파일이 코드를 가지고있는 D 드라이브에 내 WAMP 서버가 파일 sd.pdf이 존재변환 이미지 내 C 드라이브에 고스트와 ImageMagick이 설치되어

<?php exec('convert "sd.pdf[0]" -colorspace RGB -geometry 200 "document.png"'); 
?> 

내 프로그램이있는 폴더입니다.이 프로그램은 아무런 오류도주지 않고 그 폴더에 이미지를 만들지 않습니다. 왜요? 추가 질문 : - PHP에서 Imagemagick 및 ghostscript를 사용하면 프로그램이 느려지거나 빠를까요?

+0

은 셸의 경로로 변환됩니까? 웹 서버 userID에 해당 디렉토리에 쓰기 권한이 있습니까? 웹 서버 ID에 의해 실행 가능/도달 가능한 고스트 스크립트입니까? –

+0

큰 따옴표로만 문제가 발생했습니다. –

답변

0

Windows에서 큰 따옴표를 제거하거나 이스케이프해야 올바르게 작동하지 않습니다. 더 내 실행() 메소드를 살펴 보자 : https://github.com/webarto/instagraph/blob/master/instagraph.php#L55

public function execute($command) 
{ 
    # remove newlines and convert single quotes to double to prevent errors 
    $command = str_replace(array("\n", "'"), array('', '"'), $command); 
    # replace multiple spaces with one 
    $command = preg_replace('#(\s){2,}#is', ' ', $command); 
    # escape shell metacharacters 
    $command = escapeshellcmd($command); 
    # execute convert program 
    exec($command); 
} 

IM 가장 큰 공헌자 중 하나와 채팅 ... 어떤 따옴표없이

, RGB (255, 255, 255)와 함께 공간으로 인해 문제가 발생합니다. 마찬가지로 16 진수 값의 #은 이 아니라면 문제를 일으킬 수 있습니다. 창에서 또는 변수를 사용하는 경우 큰 따옴표가 필요합니다. 그렇지 않으면, 작은 따옴표 또는 큰 따옴표로 IM을 사용할 수 있습니다. 그러나 PHP exec에서 IM 명령을 호출하는 경우 알다시피 은 조심해야합니다 (또는 이스케이프 처리해야 함).