php exec () hata değerleri

2 Cevap php

Ben iki sonraki çalıştırma komutları var. Sorunu ikinci olmadan ilk yürütür, ancak bir hata atıyor:

exec('/usr/bin/pdftk A='. trim($original) .' cat A1 output '. trim($onepage), $output, $error);
var_dump($output); var_dump($error);

exec('/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified), $output, $error);
var_dump($output); var_dump($error); 

İlk üretir:

array(0) { } int(0) 

İkinci:

array(0) { } int(1) 

Php script ve dizinleri izinleri tam olarak aynıdır. Ben de hayır şans ile escapeshellargs kullanarak exec komutunu ecaping denedim.

2 Cevap

Ben hata ne olduğundan emin değilim, ama ben daha kolay sorunu görebilirsiniz böylece arka plan gürültü bazı azaltmak öneriyoruz. Ben bu demek şudur ...

Almak

exec('/usr/bin/pdftk A='. trim($original) .' cat A1 output '. trim($onepage), $output, $error);
var_dump($output); var_dump($error);

exec('/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified), $output, $error);
var_dump($output); var_dump($error); 

Ve bunu

$command1 = '/usr/bin/pdftk A='. trim($original) .' cat A1 output '. trim($onepage);
$command2 = '/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified);

exec($command1, $output, $error);
var_dump($output); var_dump($error);
echo $command1;

exec($command2, $output, $error);
var_dump($output); var_dump($error); 
echo $command2;

Eğer kesmek ve yapıştırmak Unix komut satırı üzerine verilen komutun çıkışını, ve belki unix düzeyde neler olup bittiğini daha iyi bir görünüm elde edebilirsiniz.

Ne çalışma sona erdi şu oldu:

   $descriptorspec = array(
      0 => array("pipe", "r"), 
      1 => array("pipe", "w"));
   proc_open('/usr/bin/pdftk '. trim($onepage) .' background watermark.pdf output '. trim($modified), $descriptorspec, $pipes);