Variable PHP

Benjamin46 -  
Blocks Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

J'aimerais récupérer un texte précis sur une autre page. Je définis la page dans une variable, exemple :

$data = file_get_contents("http://www.siteexterieur.com/page.php);

Puis, dans cette page, j'aimerais rechercher du texte qui est définit par exemple entre <div class="profile"> et le prochain </div>. Tout le texte qui s'y trouve serait alors dans une variable $texte par exemple.

Je sais que cela passe par explode (du moins je crois) mais je ne sais pas comment faire.

Merci d'avance.
A voir également:

4 réponses

Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Bonjour,

En effet tu peux le faire avec des combinaisons d'explode et/ou d'expressions régulières, cependant cela dépend vraiment de la structure de la page, par exemple si le div que tu veux récupérer contient lui même des divs c'est plus compliqué...

Tu saurais développer le contenu (en terme de balises) du div que tu veux récupérer ?
0
Benjamin46
 
Le div que je veux récupérer contient seulement une ligne et c'est du texte (pas d'autre insertion comme des div).
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
Re, avec quelques jours de décalage voilà une solution pour un div, tu peux la modifier pour l'adapter :

Fonction :
function interieur_div($chaine, $capture="")
{
	$new_chaine = preg_replace("/^.*(<div".$capture.">.*)<\/div>.*$/", "$1", $chaine);
	if($new_chaine==$chaine)
		return "Chaine non trouvee";
	if(!preg_match("<\/div>", $new_chaine))
		return preg_replace("/<div".$capture.">/", "", $new_chaine);
	else
		return interieur_div($new_chaine, $capture);
}



Test :
$str='iauhdoaudh<div id="mon_div_cible" class="cool">good</div>aidjajd<div>azodjaodja</div>adjaida';
$capture=' id="mon_div_cible" class="cool"';

echo htmlentities(interieur_div($str, $capture));



Voilà en espérant que ça serve :)

A noter : ça ne marche que pour les divs ne contenant pas de div.
0
Blocks Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   3
 
En gros, si tu as juste ca <div class="profile">texte</div>

Bah tu dis :

$texte = strstr($data, '<div class="profile">');
$masque = strstr($texte, '</div>');
$texte = str_replace($masque, '', $texte);
$texte = str_replace('<div class="profile">', '', $texte);
0