Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1844 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Suprimer des balises html <> avec des regex

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suprimer des balises html <> avec des regex

n°1361251
weed
Posté le 07-05-2006 à 13:42:19  profilanswer
 

voila, j'aimerais pouvoir supprimer un ensemble de caractère :
la chaine de caractère table-,  
suivi d'un nombre
suivi de -
 
cette sous chaine à supprimer est au dbut de la chaine.
 
exemple :  
table-106-client  ====> 106-client
 
 
j'ai essayé ca  
 

Code :
  1. $t = eregi_replace( "^((table-)[:digit:](-))","", "table-106-client" );
  2. echo $t;


mais j'ai une belle erreur ...
 
je m'explique comment je raisonne ....
je recherche un ensembre de caractère (table-) puis de chiffres [:digit:] puis le caractère (-)
ces 3 sous ensemble forment un ensemble ((table-)[:digit:](-))
et celui ci doit etre au début de chaine
^((table-)[:digit:](-))


Message édité par weed le 14-05-2006 à 11:44:00
mood
Publicité
Posté le 07-05-2006 à 13:42:19  profilanswer
 

n°1361338
afbilou
pouet your life
Posté le 07-05-2006 à 17:14:45  profilanswer
 

substr ...
 
edit : si tu fais ca dans le but de t'entrainer aux regex alors :
preg_replace('#^table-([0-9]+-.*)$#i', '$1', 'table-106-client')


Message édité par afbilou le 07-05-2006 à 17:19:27
n°1365799
weed
Posté le 14-05-2006 à 03:35:14  profilanswer
 

oui c'est surtout pour m'entrainer.
nop substr ne suffit pas ....
comme tu l'as bien spécifier [0-9]+ => au moins 1 caractère de 0 à 9. Ca peut etre un nombre de 1 chiffre à n.  
C'est pas possible avec un substr, parce que l'on donne la position de départ et la longeur. C'est figé. A la rigueur un explode ("-","table-106-client'" ) peut etre pas mal.
 
Question :
pourquoi as tu mis des # ?

n°1365843
weed
Posté le 14-05-2006 à 11:41:21  profilanswer
 

Bon, j'ai d'autre questions. Je souhaiterais supprimer toutes mes balises html d'une chaine de caractères php ....
 
Pour mes tests, je remplace les < > par ( ) pour voire si cela a bien été retiré.
 
$test = "(span classe='tetetet') kjsdhfjksdfh (/span)";
 


$test2 = preg_replace ('(\((/)?.*\))', '', $test);
echo "test = $test, <br>test2 = $test2<br>";
affiche :
test = (span classe='tetetet') kjsdhfjksdfh (/span),
test2 =


tout a été effacé. C'est un normal car j'ai spécifié dans le motif, n'importe quel caractères, .*,  apres une premiere (, il a donc pris en compte aussi la prenthèse fermante ). Le motif ne s'est pas arrété a la première ).
 
J'ai donc été plus restrictif : uniquement des alphanumériques entre les parenthèses :
 
 

$test2 = preg_replace ('(\((/)?[[:alnum:]]*\))', '', $test);
echo "test = $test, <br>test2 = $test2<br>";
affiche :
test = (span classe='tetetet') kjsdhfjksdfh (/span),
test2 = (span classe='tetetet') kjsdhfjksdfh


ma première balise n'a pas été pris en compte à cause des ' par contre la 2ème (/span) a bien été prise en compte.
Comment faire ?
 
j'ai essayé avec ([\'\"=][[:alnum:]])* mais cela ne fonctionne pas.

$test2 = preg_replace ('(\((/)?([\'\"=[[:alnum:]]])*\))', '', $test);


Message édité par weed le 14-05-2006 à 12:15:53
n°1366048
weed
Posté le 14-05-2006 à 21:58:45  profilanswer
 

un petit up.
Je suis sur que pour certain d'entre vous, cela ne doit pas etre bien compliqué.

n°1366060
sielfried
Posté le 14-05-2006 à 22:25:45  profilanswer
 

[[:alnum:]] ne contient pas le caractère d'espacement.
 
#\([^\)]*\)# devrait faire ce que tu veux (pose des questions si tu ne comprends pas).
 
(Et pour répondre à ta question plus haut, le # est un caractère qu'il faut mettre en début et en fin de masque, mais qui peut être n'importe quel autre caractère. Ceci dit en encadrant de parenthèses comme tu as fait il me semble que c'est bon aussi.)


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1366134
weed
Posté le 15-05-2006 à 01:44:22  profilanswer
 

arf zut. Merci bcp.
Je vais tester ca demain.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Suprimer des balises html <> avec des regex

 

Sujets relatifs
Comment convertir les .ppt en .html???HTML suffisant pour cette fonction ?
images php + code htmlhtml:radio
PB !! superposition en HTML (index,etc...)[HTML/CSS]Submit d'un form (touche entrée) avec bouton submit perso?
Changer police des liens htmlEncoder en html
[PHP] Regex du tonnerre de ZeusPetit soucis html et CSS avec Dreamweaver
Plus de sujets relatifs à : Suprimer des balises html <> avec des regex


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR