Rechercher : dans
Par :

[php] Supprimer d'une sous chaine à une autre

Dernière réponse le 15 mar 2008 à 10:23:39 kilian, le 16 oct 2004 à 19:50:18 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un problème. Imaginons que j'ai devant moi un texte criblé de balises html. J'aimerais en retirer uniquement le texte brut.

Connaissez vous une fonction qui permet, dans une chaine, de supprimer une sous chaine contenue entre un caractère et un autre. Par exemple imaginons:

$chaine="O fière voûte celeste! Que mire-je? Sont-ce des <b>salsifis</b> qui scintillent  ainsi par delà les <i>cieux</i>?";


Et là j'aimerais zapper les balises
<b>
et
<i>
grâce à une fonction qui pourrait par exemple supprimer toute partie commençant par < et se terminant par >.

Voilà, merci d'avance.



Kilian, débutant en tâche de fond.....

Meilleures réponses pour « [php] Supprimer d'une sous chaine à une autre » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
[PHP] Les ressemblances à ne pas confondre VoirIntroduction Concaténation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente plusieurs fonction ou astuces en...
Supply Chain Management (SCM) VoirIntroduction à la notion de chaîne logistique Dans une entreprise de production, le temps de réalisation d'un produit est fortement conditionné par l'approvisionnement en matières premières, en éléments d'assemblage ou en pièces détachées à tous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...

1

tafiscobar, le 16 oct 2004 à 20:57:43

Regardes du coté des expressions réguliéres, tu ne récupéreras q ce qui t'interresse. J'ai oublié les noms des fcts.

tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!

Répondre à tafiscobar

2

kilian, le 16 oct 2004 à 21:48:50

Ah oui, je connaissais pas ces trucs là tiens....
Bon là j'ai mal à la tête à force de regarder les expressions régulières, j'irais revoir ça plus tard.

Merci en tout cas :-)

Kilian, débutant en tâche de fond.....

Répondre à kilian

3

kilian, le 16 oct 2004 à 22:44:03

J'ai trouvé un fonction toute faite pour ce que je veux faire: strip_tags():
http://php.planetmirror.com/manual/fr/function.strip-tags.ph­p

Mais je vais de toutes façon avoir besoin des expressions regulières très bientôt :-)

Kilian, débutant en tâche de fond.....

Répondre à kilian

4

kilian, le 22 nov 2004 à 09:38:05

Rebonjour,

Pour m'entrainer aux expressions régulières, j'essaie de construire un "ereg_replace()"qui jouerait le même rôle que strip_tags(), c'est à dire supprimer les balises html dans un texte, mais ça n'affiche rien à l'écran. Voici mon code:

<?
$source_html="n'importe quelle source";

$expression="(<{1,1})(([[:print:]]|[[:space:]])*)(>{1,1})";

echo ereg_replace($expression,"",$source_html);

?>


Voilà, voilà. Merci d'avance....

Répondre à kilian

5

GallyNet, le 22 nov 2004 à 10:37:24

Je suis pas sur mais essaye une expression comme ca:

$expression="<[^>]*>";

Répondre à GallyNet

6

kilian, le 22 nov 2004 à 10:49:09

Salut,

Ben ça marche... Mais j'ai pas bien compris ton système:
=>on autorise la balise "<" puis on interdit tous les ">" et enfin la chaine doit se terminer par ">".....

Je pensais qu'avec un truc de ce genre, toute la chaine serait zappée de la première balise ouverte à la dernière balise fermée...
J'ai encore du mal avec les expression régulières.

Merci beaucoup GallyNet...

Répondre à kilian

7

GallyNet, le 22 nov 2004 à 12:55:24

Et ben en fait tu peut dire que la chaine que tu recherche peut être divisé ainsi:

commence par un '<'
finit par un '>'
et au milieu tu as tout le texte que tu veut sauf '>'

ce qui donne l'expression régulière que je t'ai donné. :-)
Personnelement, ce doit être la seul chose que j'ai compris sur les expression régulière.

D'ailleur il existe un générateur d'expression régulière. Je connais pas son nom mais je l'utilise (sous KDE) quand je fait une recherche d'un fichier par rapport à son contenu.

Répondre à GallyNet

9

 mycha, le 15 mar 2008 à 10:23:39

Bonjour,
j'ai essayé cette expression reguliere mais comme d'autres que j'ai faites ou des fonctions que j'ai utilisees, elles ne semblent pas toucher les balises images car celles-ci s'affichent malgre tout. D'où cela peut-il venir ?

Répondre à mycha

8

kilian, le 22 nov 2004 à 14:16:02

Oki, ça doit être utile le générateur mais je préfère apprendre à le faire tout seul.
Merci pour l'astuce et l'explication ;-)

Répondre à kilian