2013-05-12 93 views
-1

我得到的错误:如何使用cURL而不是exec()?

Warning: exec() has been disabled for security reasons

对于下面的代码,我怎么能解决这个任何想法,而无需使用exec()

$file = 'test.jpg'; 
$cmd = 'curl -F userfile=$file ' . 
     '-F outputencoding="utf-8" ' . 
     '-F outputformat="txt" ' . 
     'http://maggie.ocrgrid.org/cgi-bin/weocr/ocr_scene.cgi >result.txt'; 
exec($cmd, $result); 
echo $result; 
+2

如果有周围的一种方式,它不会是非常安全的。 – SLaks 2013-05-12 03:01:21

+4

你不能这样做吗? http://php.net/manual/en/book.curl.php – 2013-05-12 03:02:20

+2

为什么不直接使用curl? – SLaks 2013-05-12 03:02:56

回答

0

试试这个:

$url = 'http://maggie.ocrgrid.org/cgi-bin/weocr/ocr_scene.cgi'; 
$filename = 'test.jpg'; 

// postfields 
$data = array(
    'userfile' => '@'.realpath($filename) 
); 

$fp1 = fopen('res_error.txt','w'); 
$fp2 = fopen('res_header.txt','w'); 

// cURL 
$ch = curl_init(); 
curl_setpot_array($ch, array(
    CURLOPT_URL   => $url , 
    CURLOPT_POSTFIELDS  => $data , 
    CURLOPT_CONNECTTIMEOUT => 60 , 
    CURLOPT_HEADER   => false , 
    CURLOPT_RETURNTRANSFER => true , 
    CURLOPT_POST   => true , 
    CURLOPT_VERBOSE  => true , 
    CURLOPT_STDERR   => $fp1 , 
    CURLOPT_WRITEHEADER => $fp2 , 
)); 
$res = curl_exec($ch); 

fclose($fp1); 
fclose($fp2); 

echo $res;