OVH Cloud OVH Cloud

probleme execution programme externe

1 réponse
Avatar
christophe
Bonjour,

Je souhaite utiliser le programme externe pdftotext.exe depuis mon
appli php pour lire le contenu d'un fichier pdf de facon automatique et
ensuite l'indexer dans une BD Mysql.

Je travaille sous Windows avec EasyPhp 1.7.

J'ai utilisé successivement les fonction exec, passthru et system sans
grand succes : le systeme mouline sans résultat à l'écran.

Voici le script d'essai :
<?php
$fic_ini="fichier_test.pdf";
$fic_fin="toto.txt";
echo "Essai de transformation de pdf en txt <br>";
echo "<br><br>";
echo "Fichier initial : $fic_ini<br>";
$cmd="c:\windows\pdftotext.exe $fic_ini $fic_fin";
exec($cmd);
echo "Résultat : $toto <br>";
?>
Le fichier fichier_test.pdf est dans le même répertoire que le script
php. j'ai un peu tout essayé pour l'emplacement du programme pdftotext.

Est-ce que qq peu m'eclairer sur l'utilisation des commandes externes
(prob. de configuration de apache ou php, chemin d'accès, ....) ?
Je vois pas trop comment ca marche (et j'ai bien lu le manuel php mais
c'est très succint sur le sujet).
Enfin, merci pour votre aide.

Christophe

1 réponse

Avatar
Jedi121
"christophe" a écrit le 28/10/2003 :
<?php
$fic_ini="fichier_test.pdf";
$fic_fin="toto.txt";
echo "Essai de transformation de pdf en txt <br>";
echo "<br><br>";
echo "Fichier initial : $fic_ini<br>";
$cmd="c:windowspdftotext.exe $fic_ini $fic_fin";
exec($cmd);
echo "Résultat : $toto <br>";
?>


Ce qui est sûr c'est que ta ligne echo "Résultat : $toto <br>"; ne
retournera rien puisque la variable $toto n'existe pas.
Tu veux plutôt utiliser une fonction de lecture de fichier texte sur le
fichier toto.txt...
Mais attention, l'exécution avec exec() est asynchrone, on n'attend pas
la fin d'exécution de la commande pour passer à la ligne suivante PHP,
on le fait tout de suite.

Voir la doc sur file_get_contents() entre autres.