Problème Fonction exec() PHP

Résolu
Scorpio2201 Messages postés 19 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 1 juillet 2010 - 10 juin 2010 à 09:43
Scorpio2201 Messages postés 19 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 1 juillet 2010 - 10 juin 2010 à 13:20
Bonjour,

Je me permet de vous demander un conseil sur la fonction exec() de PHP.

Je suis sous Ubuntu 9.10 avec Apache, PHP et MySQL d'installer. Je souhaite exécuter une commande linux via PHP.

Voici cette commande :

xls2csv -q 0 ./excel/fichier_test.xls > ./excel/fichier_csv.csv

Elle fonctionne correctement directement via le terminal : elle permet de transformer un fichier .xls en fichier .csv.

Je souhaiterais pouvoir exécuter cette commande via PHP avec il me semble la fonction exec() de PHP. Mais sans réussite.

Voici le code que j'ai développer :

<?php
class Export_Excel
{
var $command;

function Export_Excel()
{
$this->command = "xls2csv";
}

function xls2csv($path,$xls_file,$short_name)
{
$cmd = "$this->command -q 0 $path/$xls_file";
$cmd .= " > $path/$short_name.csv";

@exec($cmd,$stdout,$errocode);

unlink("$path/$xls_file");

if ($errorcode > 0)
{
echo "
Erreur : ".$errocode;
}

echo "
".$cmd;

}

}

$chemin = "./excel";
$fichier = "fichier_test.xls";
$nom_csv = "fichier_csv";

$objet = new Export_Excel();
$objet -> xls2csv($chemin, $fichier, $nom_csv);
?>


J'ai l'impression que c'est un problème de droit de l'utilisateur httpd.

Si vous pouvez me donner des pistes afin que je puisse résoudre cette énigme.


Je vous remercie d'avance.
A voir également:

2 réponses

devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 juin 2010 à 10:31
salut,
essaye avec passthru($cmd,$ouput) tu poura recuperer le $output pour deboguer voir que retoune le terminal comme erreur
3
Scorpio2201 Messages postés 19 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 1 juillet 2010
10 juin 2010 à 13:20
Je vais essayer. Je te tiens au courant. Merci
0