2010-08-13 6 views
2

Essayez de comprendre cela. Je suis en train d'exécuter un script Perl dans les php, en utilisant shell_exec() comme ceci:Problèmes d'exécution des scripts Perl depuis PHP

<?php 
$output=shell_exec("./tst.pl > test.txt"); 
//$output=shell_exec("./tst.pl"); 
echo $output; 
?> 

Il ne sera pas écrire la sortie à un fichier en utilisant « > » filename.txt. Cela fonctionnera si je l'exécute sans le diriger vers un nom de fichier car je peux le confirmer avec echo.

Est-ce que cela a à voir avec ">"? Les autorisations devraient être correctes car je suis capable d'exécuter le même script perl sur la ligne de commande et directement au fichier. Des suggestions pour l'exécution de cela?

La sortie de « test.txt » sera utilisé comme entrée:

<?php 
$data = array(); 
$InputFile = file("test.txt"); 
... 
?> 
+0

Si PHP est exécuté par un serveur Web, il peut avoir des autorisations différentes – Robus

+0

bon point. Je cours ceci en dev et j'exécute ceci en tant que racine. donc je pense que cela fonctionnerait. – cjd143SD

Répondre

0

Il était sans aucun doute un problème d'autorisations. A écrit le fichier sur/tmp et cela a bien fonctionné.

<?php 
$output=shell_exec("./tst.pl > /tmp/test.txt"); 
echo $output; 
?> 
Questions connexes