Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/05/2011, 12h21   #1
Membre confirmé
 
Inscription : mars 2008
Messages : 260
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 260
Points : 295
Points : 295
Par défaut Balises php fermées ou non.

Bonjour,

Je me trouve devant un problème assez épineux. Je travail sur un petit script qui me permet de retrouver des informations de couverture de code avec xdebug. Cependant, j'ai besoin d'inclure un fichier php à la fin de chaque fichier à suivre.

Modifier ces fichiers n'est pas pour moi un problème, je peux modifier mes fichiers pendant mes tests, c'est d'ailleurs ce que je tente de faire. Le souci viens alors du fait qu'un fichier php peux ne pas terminer sa balise php, c'est à dire commencer avec <?php et ne jamais voir le ?> derrière.
Je retrouve ceci dans une grande partie du projet mais pas tous.

Existe-t-il un moyen ne serait-ce que de détecter si le fichier php en question termine avec sa balise php fermée ou non ?

Je dispose bien évidemment du nom du fichier, je peux l'ouvrir, récupérer et modifier son contenu.
Je suis conscient des problèmes possibles liés aux commentaires (à la fois php et html), c'est pourquoi je préfère demander si cela n'existe pas déjà plutôt que de réinventer la roue et refaire un analyseur php.

Cordialement,
Grimly
Grimly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 13h46   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Tu rajoutes du code donc, pourquoi ne pas faire ceci dans le code rajouté :
Ainsi si la balise n'est pas fermée => commentaire
Si la balise était fermée => parasite HTML "//"
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h11   #3
Membre confirmé
 
Inscription : mars 2008
Messages : 260
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 260
Points : 295
Points : 295
Citation:
Envoyé par transgohan Voir le message
Tu rajoutes du code donc, pourquoi ne pas faire ceci dans le code rajouté :
Ainsi si la balise n'est pas fermée => commentaire
Si la balise était fermée => parasite HTML "//"
L'idée m'est venu à l'esprit mais le problème viendrais alors du parasite en question. Le résultat est analysé comme du xml par nos tests et ce texte étranger hors de la racine ne permet pas l'analyse du xml.
Dans le même genre, "<!-- ?> -->" inclus des parasites dans les deux cas et est bien pire.

L'idée que j'essaie actuellement d'implémenter est la suivante :

retirer tous les commentaires html (<!-- -->)
retirer toutes les balises html et balises php fermées (<>, </>, <?[php|=] ?>)
retirer tous les commentaires multilignes php (/* */)
retirer tous les commentaires php restants (//)
retirer toutes les chaines de caractères (" ")
regarder si il reste une balise php ouverte (<?[php|=])

C'est un cas vicieux à cause de tous ces types de commentaires valides pas aux mêmes endroits et j'imagine que même mon idée aura des exceptions.
Si une autre solution existe, elle reste intéressante.
Grimly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 14h24   #4
Membre confirmé
 
Inscription : mars 2008
Messages : 260
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 260
Points : 295
Points : 295
Re bonjour,

Un collègue qui viens d'arrivé m'a aiguillé vers le tokenizer de php et voici donc le résultat de mes recherches fructueuses du web :

http://php.net/manual/fr/function.token-get-all.php

Bref, quand on cherche "analyseur", il faut chercher "token"

J'espère que cela servira à d'autres.
Grimly est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h55.


 
 
 
 
Partenaires

Hébergement Web