J'ai essayé de mettre en place un moteur de recherche très basique utilisant les modules Whoosh en python appelés depuis PHP. Je l'ai fait fonctionner jusqu'à ce que j'ai mis à jour les modules pour certaines fonctionnalités supplémentaires dont j'avais besoin. À quel point un bogue étrange semblait apparaître. Toute instruction d'impression après la ligne "searcher = ixtemp.searcher()" n'est pas reçue par le script PHP.Problème d'envoi de données entre PHP et Python
Le script de recherche de python est appelé à partir de PHP et le premier résultat est affiché avec les commandes suivantes
exec("python print.py",$output,$ret_code);
echo $output[0];
Le script python -
from whoosh.index import open_dir
ixtemp = open_dir("index")
searcher = ixtemp.searcher()
results = searcher.find("content", u""+"test")
for k in results:
print k['filename']
L'exécution du PHP donne maintenant l'erreur suivante -
Remarque: Offset non défini: 0 à /opt/lampp/htdocs/new/search.php on ligne 17
Le script python fonctionne lorsque je l'exécute tout seul. Après une petite enquête, il semble que toutes les instructions d'impression avant la ligne "searcher = ixtemp.searcher()" peuvent être lues par le PHP, mais toutes ne sont pas reçues par le script PHP. J'ai aussi essayé les fonctions popen() et proc_open, mais elles ont le même problème.
Des idées sur ce qu'est le problème ou comment je peux le contourner?
Merci
Bonjour, le script prend moins d'une seconde à exécuter et fonctionne parfaitement à l'intérieur de l'interpréteur. Aussi et imprimer les instructions avant que "searcher = ixtemp.searcher()" fonctionne. – usertest
Comment savoir si stdout était en cours de redirection? Et comment pourrais-je arrêter ça? Merci – usertest
Salut, oui les deux scripts sont au même endroit et les données se déplacent entre eux tant que ce n'est pas après "searcher = ixtemp.searcher()", donc cela ne peut pas être un problème avec le répertoire de travail. – usertest