J'essaie d'utiliser le PHP exec() ou system() (ou toute autre fonction similaire) pour exécuter un fichier batch, mais je ne peux pas semblent les obtenir pour retourner n'importe quoi.Les fonctions exec() et system() de PHP retournent toujours false dans IIS
L'exemple le plus simple que j'ai vu est ce qui génère rien:
<?php
echo system('dir');
?>
Le script est en cours d'exécution sur une machine Windows XP sur IIS avec PHP installé et je l'ai aussi essayé sur mon hébergement mutualisé compte exécutant Windows 2003 Server/IIS. Est-ce que quelqu'un peut suggérer ce que je dois faire pour que cela fonctionne, ou fournir toutes les commandes que je peux utiliser pour le dépannage?
Cheers,
Tom
Edit: deuxième exemple
Sur la base de la réponse de pavun_cool j'ai essayé ce qui suit:
<?php
$last_line = system('dir', $retval);
echo 'last_line '.$last_line.'<br/> retval '.$retval;
?>
La sortie est:
last_line
retval -1
Edit: troisième exemple
Basé sur Dilaverakis j'ai essayé Manos le code suivant
<?php
exec('dir', $response);
foreach($response as $line) {
echo $line . "<br>";
}
?>
La sortie est:
<br>
à savoir une ligne vide lorsqu'elle est affichée dans un navigateur.
recherche également dans php.ini
, la ligne suivante (qui vraisemblablement pourrait désactiver ces fonctions) est vide:
disable_functions =
Quelqu'un at-il d'autres suggestions ou tout ce que je peux essayer?
... pages de manuel de PHP sur exec et la réponse du système ce. Vous n'avez même pas besoin de faire défiler –
@Manos Dilaverakis - pourriez-vous être un peu plus précis? Le texte de la fonction exec indique "Valeurs de retour: la dernière ligne du résultat de la commande". - alors ne devrais-je pas voir la dernière ligne de sortie de tout ce que je cours courir? – Loftx