GrisouUQAM / wikiContributions

Help scientific wiki contributors get recognition
8 stars 11 forks source link

tdiff.exe, ne peut pas passer de longs textes en html #5

Closed ialexca closed 11 years ago

ialexca commented 11 years ago

Lorsque l'ont fait le traitement avec tdiff.exe avec de long textes HTML, php lance une erreur "Unable to fork" lorsque lorsque que le code suivant s'exécute dans le fichier diffFunctions.php (ligne 13): exec("tdiff.exe "textehtml1" "texthtml2"", $output);

Ce problème peut être causé par deux situations selon moi.

  1. Windows XP a un nombre de caractère limite de 8191 pour une commande. (http://support.microsoft.com/kb/830473) Prenez note que les système plus récent que Windows XP et Windows server 2003 ne semble pas avoir la même contrainte. Je n'ai pas trouvé l'information, quel est-elle?
  2. Le texte html contient des caractères tel que " et '. Ces caractères entre en conflit avec une ligne de commande conventionnelle.

Solution temporaire: Une solution serait de stocker le texte dans un fichier temporairement et exécuter la fonction en passant en paramètre le chemin des deux fichiers a tdiff.exe.

Cette solution est peu performante. Est-ce que quelqu'un à une idée comment passer un "memory stream" entre deux application?

ialexca commented 11 years ago

J'ai implémenté la solution tel que spécifié dans le post.

C'est à dire que l'information est communiqué entre le code PHP et l'application tdiff.exe par un fichier sur le disque dur.

Une amélioration pourrait être fait selon la plateforme du serveur qui va héberger l'application. Utilisation de COM sous windows ou utilisation de variable dans le shell sous linux?