[reglé] Contenu entre 2 balises - PHP
8 messages • Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
[reglé] Contenu entre 2 balises - PHP
Bonjour,
Je bloque sur un truc pourtant tout simple !
J'ai une chaine, plus précisément la source d'une page, et je souhaite extraire le contenu entre les Xième <balise> et </balise>.
Voila ce que j'ai essayé sans succès :
Je bloque sur un truc pourtant tout simple !
J'ai une chaine, plus précisément la source d'une page, et je souhaite extraire le contenu entre les Xième <balise> et </balise>.
Voila ce que j'ai essayé sans succès :
- Code: Tout sélectionner
$src = @implode("", file("page.html"));
if(eregi("<balise>(.*)</balise>",$src))
{
eregi("<balise>(.*)</balise>",$src,$nb);
echo $nb[X];
}
else echo "<balise> non trouvée";
Dernière édition par rottman le Ven Juil 08, 2005 12:56, édité 1 fois.
Je n'ai pas testé, mais essaie ça:
- Code: Tout sélectionner
<?php
$pos = 0;
for($i = 0; $i < X && $pos !== false; $i++)
$pos = strpos($content, "<balise>", $pos);
if ($pos !== false)
{
$posend = strpos($content, "</balise>", $pos) ;
if ($posend !== false)
{
$str = substr ( $content, $pos + strlen("<balise>"), $posend - ($pos+strlen("<balise>")));
//process $str ...
}
}
?>
En détail, tu recherche la Xième position de la balise
Ensuite, tu recherche la première position de la balise fermante à partir de la position de la Xième balise.
Ensuite tu récupère le texte entre deux...
- Code: Tout sélectionner
$src = file_get_contents("page.html");
preg_match_all( "/<balise>(.*)<\/balise>/U", $src, $match );
if ( count( $match[1] ) > $x ) {
echo 'Balise trouvée: '.$match[1][$x+1];
}
else {
echo 'Balise non trouvée.';
}
Edité: j'avais oublié le U dans le pattern.
Dernière édition par shrom le Ven Juil 08, 2005 12:41, édité 2 fois.
Salut,
Le problème est que les REGEX sont gourmandes.
Avec ton code tu va englober de la première <balise> à la dernière </balise> sur la première occurence de recherche.
Il faut que ton (.*) empèche de prendre </balise>
Généralement le bidouille :
1/ Je remplace <balise> par un caractère spécial gamais utilisé (<¤> par exemple) et </balise> par </¤> (exemple)
2/ je recherche
eregi("<¤>([^¤]*)</¤>",$src,$nb);
Si y'a plus simple, je suis preneur aussi...
Le problème est que les REGEX sont gourmandes.
Avec ton code tu va englober de la première <balise> à la dernière </balise> sur la première occurence de recherche.
Il faut que ton (.*) empèche de prendre </balise>
Généralement le bidouille :
1/ Je remplace <balise> par un caractère spécial gamais utilisé (<¤> par exemple) et </balise> par </¤> (exemple)
2/ je recherche
eregi("<¤>([^¤]*)</¤>",$src,$nb);
Si y'a plus simple, je suis preneur aussi...
jeroen a écrit:Avec ton code tu va englober de la première <balise> à la dernière </balise> sur la première occurence de recherche.
Exact, j'ai édité le code pour ajouter le paramètre U dans le pattern qui permet de ne pas avoir de REGEXP gourmandes.
Ouaip, j'avais encore fais une petite erreur, essaie avec ça:
Si tu veux la seconde occurence, $x = 2.
- Code: Tout sélectionner
$src = file_get_contents("page.html");
preg_match_all( "/<balise>(.*)<\/balise>/U", $src, $match );
if ( count( $match[1] ) >= $x ) {
echo 'Balise trouvée: '.$match[1][$x-1];
}
else {
echo 'Balise non trouvée.';
}
Si tu veux la seconde occurence, $x = 2.
8 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Balises meta et référencement : les bases à savoir
- Description d'une page-type optimisée pour le référencement
- Google Code publie des statistiques sur le codage HTML des pages web
- Référencement : faut-il abandonner les balises META ?
- Conclusion sur l'analyse du PageRank de Google
- HTML 5 : quel impact sur le référencement ?
- Lancement de Spider Simulator
- Une check-list pour bien démarrer son référencement
- Plusieurs tests sur le référencement en cours sur WRI
- Les bonnes pratiques d'Opquast pour le référencement
Consultez la description détaillée des produits ou services de Google suivants : Google Base
- Calculer le ratio de liens profonds
Cet outil vous permet de calculer le taux de liens profonds vers un site web. Un lien profond est un lien qui ne pointe pas vers la page d'accueil mais au contraire vers une page interne du site. Les sites dont l'essentiel du référencement vient de leurs inscriptions dans des annuaires ont un taux de liens profonds faible ; à l'inverse, les sites de référence ont souvent un taux de liens profonds plus important, signe que leur contenu a suscité de nombreux liens spontanés.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum