IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Extraire la balise Embed


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut Extraire la balise Embed

    J’aimerais savoir s’il existe une fonction php qui permet de garder une balise qui se trouve dans une chaîne de caractères ?

    Par exemple si le contenu de ma variable est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <object ........><embed num1></embed></object>
    du texte
    <object .........><embed num2></embed></object>
    du texte
    <embed num3></embed>
    Il ne doit rester que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <embed num1></embed><embed num2></embed><embed num3></embed>
    Merci d’avance pour votre aide

  2. #2
    Membre éclairé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Par défaut
    Pas de fonction PHP dédier à ma connaissance, mais tu peut très bien réaliser cela avec des regex.
    Heu, personnellement, a la vas vite, je ferais un preg_match_all avec une regex de la forme
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    "!.*<embed(.*)>(.*)</embed(.*)>!u"
    Tu peu ensuite pour chaque résultat de preg_match all reconstruire une chaine avec
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    "<embed".$res[$n][2].">".$res[$n][3]."</embed".$res[$n][4].">"

    Edit : n'oublies pas i pour l'insensibilité à la case, et que tu peut définir des classes plus restrictive que . (par exemple [[:alnum:]])
    Mes articles Développez | Dernier article : Raytracer en haskell
    Network library : SedNL | Zenol's Blog : http://zenol.fr

    N'oubliez pas de consulter la FAQ et les cours et tutoriels.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    Salut,
    Merci pour ta réponse mais j’ai jamais travaillé avec les regex :s
    Peut tu me donner un exemple pour tester ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<embed".$res[$n][2].">".$res[$n][3]."</embed".$res[$n][4].">"
    car je comprend pas d'ou vient les variables $res[$n][2], $res[$n][3],...

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    salut,

    j'ai trouvé la fonction strip_tags($var,"<embed>");

    mais le résultat envoyé est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <embed num1></embed>
    du texte
    <embed num2></embed>
    du texte
    <embed num3></embed>
    comment faire pour nettoyer ce résultat et ne laisser que les balises embed ?

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 147
    Par défaut
    encore salut

    ca marche avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?php 
     
    $video='<object ........><embed num1></embed></object>
    du texte
    <object .........><embed num2></embed></object>
    du texte
    <embed num3></embed>';
     
    function strip_text($a)
    {
    	$i=-1;$n='';$ok=1;
    	while(isset($a{++$i}))
    	{
        	if($ok&&$a{$i}!='<')
    		{
    			continue;
    		}
        	elseif($a{$i}=='>')
    		{
    			$ok=1;$n.='>';
    			continue;
    		}
        	elseif($a{$i}=='<')
    		{
    			$ok=0;
    		}
        	if(!$ok)
    		{
    			$n.=$a{$i};
    		}
    	}
      	return $n;
    } 
    echo strip_text(strip_tags($video,"<embed>"));
     
    ?>
    mais est-ce que ce code est parfait ou est-ce qu'il doit être optimisé ?

Discussions similaires

  1. Paramètre balise <embed>
    Par Renotk dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2006, 09h51
  2. jouer une playlist avec balise embed (wmp)
    Par titicurio dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/02/2006, 09h23
  3. [HTML] chargement du fichier avec la balise <embed>
    Par dinozor29 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/10/2005, 12h11
  4. balise <EMBED>
    Par dano dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 08/04/2005, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo