PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 18-05-2010 19:03:58

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Comparaison / édition de textes via PHP

Bonjour à tous,

J'aurais juste voulu connaître votre avis concernant la manipulation des textes grâce à PHP.

Je dois en effet faire des outputs de textes (longs, 150 pages) avec un surlignage des blocs modifiés ou supprimés
et je ne sais pas franchement quel chemin prendre.

Serait-il judicieux d'utiliser du XML avec XSLT (auquel je ne connais pas grand-chose) ? Peut-on imaginer de compter
les caractères et d'insérer des <span> de stylisation avec les divers fonction ad hoc ? Y a-t-il un livre / manuel sur la
question?

Bref je n'en suis qu'au tout début du projet et j'aimerais me documenter avant d'attaquer sur la mauvaise piste.

Merci pour vos lumières!

Bonne soirée à tous.

Yannick

Hors ligne

#2 18-05-2010 21:56:00

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Comparaison / édition de textes via PHP

Bonjour,

Ton projet à l'air interessant sur le plan technique^^.
Pour te répondre il me manque des infos. Donc permets moi de te poser quelques questions:
1) Le surlignage a effectuer doit-il être fait dynamiquement sur modification/suppression de texte ou à posteriori ou les deux?
2) Si cela doit être fait à postériori, comment est stocké le texte et son historique? via un SGBDR ou via un fichier de données XML?

Déjà ca permettrait d'y voir un peu plus clair wink


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 24-05-2010 16:49:33

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Comparaison / édition de textes via PHP

Hé bien le projet se présente comme suit :

Un logiciel Java lit deux fichiers textes (.doc ou .txt) et produit un fichier XML où les modifications / suppressions sont renseignée selon un code (ex. 1 pour modif, 2 pour suppression, etc) et une paire de coordonnées (le no. de caractère où commence / le no. où finit la modification). Il ne génère rien d'autre que ce fichier.

Mon boulot consiste à baliser le même texte (celui de destination), en HTML cette fois, et en dur pour le rendre accessible en mode read-only aux gens qui ne possèdent pas le logiciel. Pas de base de données, pas d'XML.

En gros, il me faut baliser le fichier grâce à une fonction PHP qui passerait en revue le XML en ma possession – en récupérant donc le code et les coordonnées - et qui produirait un fichier HTML balisé.

Maintenant comment faire pour bien faire?

Hors ligne

#4 24-05-2010 17:14:20

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Comparaison / édition de textes via PHP

Encore deux petites questions^^

- Est-ce que ton rendu html doit tenir compte de toutes les modifications et suppressions pour être à jour ou seulement celles contenu dans le dernier fichier XML généré?
- Si ton rendu doit tenir compte de toutes les modifications et suppressions, l'historique est-il géré/enregistré en base de données ou cela doit-il être fait via les dates de création des fichiers XML?

Cordialement


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 24-05-2010 18:33:47

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Comparaison / édition de textes via PHP

Le fichier HTML n'est qu'une vue, rien d'autre. Il y a donc un fichier qui (re)présente les modifications et un autre les suppressions.

Pour répondre à ta question, le fichier HTML ne présente donc que le dernier fichier XML et il n'y a pas d'historique (il y a autant de fichiers de sortie que de strates).

Je n'en ai pas parlé, mais le fichier à produire est un document de travail pour les étudiants en génétique linguistique. Ils doivent pouvoir comparer les diverses strates qui mène vers un texte définitif, mais ils ne sont pas les auteurs desdites comparaisons. C'est pour cela que je parlais de read-only plus haut.

Merci déjà d'avoir pris du temps pour me répondre jusqu'ici!

Hors ligne

#6 25-05-2010 21:07:41

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Comparaison / édition de textes via PHP

Bonsoir,

J'ai réfléchi aujourd'hui un peu à ton problème donc, et je pense que la manière la plus simple serait d'utiliser un parser XML pour lire tes deux fichiers XML (avec un traitement séparé pour chaque), d'appliquer pour chaque fichier XML un style CSS via le code sur le contenu récupéré, et comme tu connais pour chaque modif/suppression le caractère de départ et de fin, mettre à jour le fichier source via un str_replace(). Ensuite via PHP tu affiches le resultat sur une page HTML qui sera de fait readonly.
Le seul inconvénient cependant c'est que les petites config et les petites connexions ressentent bien le traitement d'un script avec un str_replace(). Mais bon y en a de moins en moins^^.

PS: Concernant le style CSS, passer par une feuille de style XSLT serait trop lourd bien que possible, alors que formater le code en appliquant une classe CSS dans un format xhtml avant de l'introduire dans le str_replace() est beaucoup plus simple, rapide et efficace.

Dernière modification par Jc (25-05-2010 21:17:24)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#7 26-05-2010 13:37:15

Yannick
Membre
Inscription : 22-09-2009
Messages : 42

Re : Comparaison / édition de textes via PHP

Très bien, merci pour ton aide.
Je crois que je partage ton opinion sur tous les points, ce qui est donc bon signe quant à la 'sanité' de l'approche!
Belle journée à toi.

Hors ligne

Pied de page des forums