Se connecter / S'enregistrer
Votre question

preg_match et regex ennuyeux

Tags :
  • Match
  • Programmation
Dernière réponse : dans Programmation
2 Juin 2006 00:44:24

Bonsoir,

Au dépar j'ai chercher à fair en sorte de récupérer un partie de html par exemple se qu'il y a entre les balise title...
J'ai fini par arriver à un code php plutot interressant, cependant, je n'arrive pas a fair en sorte a ce que la valeur comprise entre <title> et </title> soit transmise dans $teste.
Avez vous une solution?
Voici mon code:

  1. if($_POST["action"]=="mod") // Une fois le nom de la page donné, on affiche le formulaire permettant de modifier la page
  2. {$nom=stripslashes($_POST["nom"]) ;
  3. $fichier=fopen($nom, 'a+') ; // Ici a+ et non pas w+ pour ne pas écraser les données
  4. $fichiers=file_get_contents($nom, 'a+');
  5. $teste= preg_match('`<title>([^<]+)</title>`', $fichiers);
  6. echo '<table align="center" border="0">
  7. <tr><td colspan="2" align="center"><h2>Modifier une page</h2></td></tr>
  8.  
  9. <form method="post" action="npage.php" name="npage">
  10.  
  11. <tr><td align="right">Nom de la page :</td>
  12. <td align="left"><input type="text" name="nom" maxlength="30" value="'.$nom.'"/></td>
  13. <td align="left"><input type="text" name="nom" maxlength="30" value="'.$teste.'"/></td></tr>
  14.  
  15. <tr><td align="right">Contenu de la page :</td>
  16. <td align="left"><textarea name="contenu" cols="50" rows="30">';
  17.  
  18. // On met comme valeur l'ancien contenu de la page
  19.  
  20. while($ligne= fgets($fichier))
  21. {echo $ligne ;}
  22.  
  23. echo '</textarea></td></tr>
  24.  
  25. <tr><td align="center" colspan="2"><input type="hidden" name="action" value="modif"/><input type="submit" name="Envoyer"/>      
  26. <input type="reset" name="Annuler"/></td></tr>
  27.  
  28. </form>
  29. </table>';}


Merci a tout ceux qui pourrons m'aider...

Autres pages sur : preg match regex ennuyeux

a c 232 L Programmation
2 Juin 2006 11:52:39

Salut,

En rajoutant des \ devant les < et > est-ce que c'est mieux ?
Car les < et > sont réservés je crois en regexp.
2 Juin 2006 19:48:12

Non car si on utiliste les balise <a> ou <p>.... (toute les balises qui se voyent, sa fonction. Il n'y a qu'avec les balise que "invisible" que sa ne fonction pas (exemple: <head><title>...). Sauf pour les meta car il existe la fonction get_meta_tag ou un truc du genre. Mais pour title je ne vois pas...
Contenus similaires
3 Juin 2006 01:57:44

Dans "nom" tu mets une adresse http? Le code source d'une page HTML affiché par ton browser (Afficher Source) n'est pas forcément le VRAI code, tel qu'il sera lu par le php. Les majuscules ne sont pas respectées, et même dans certains cas, des balises apparaissent ou disparaissent: pour les tableaux, Netscape rajoute des "<tbody>", par exemple, même s'il n'y en a pas...

Tu as vérifié si c'était pas juste un pb de majuscules? Doit suffire de rajouter un /i à la fin de la regexp pour ne pas prendre la casse en compte.
a c 145 L Programmation
3 Juin 2006 09:52:31

Voila qui peut marcher:
<?
$teste= preg_match('`<title>([^>]*)</title>`i', $fichiers,$match);
echo $match[1];
?>
4 Juin 2006 01:17:27

Merci beaucoup CrazyCat, ta solution marche a merveille.
Grâce a toi je vais pouvoir continuer a crée mon petit systeme automatique...
Par la même occasion, si tu repasse sur le sujet, tu pourras me donner des liens ou tu as apris a t'en servir comme sa plz, sauf si bien sur tu ne la pas apris sur un site...

Encore merci et bonne soirée
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS