begin process at 2012 05 31 17:13:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Récupérer contenu DIV


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Récupérer contenu DIV

lundi 6 décembre 2010 à 11:30:15 | Récupérer contenu DIV

fabienfs

Membre Club Administrateur CodeS-SourceS

Bonjour,

J'aimerais récupérer tout le contenu HTML se trouvant dans une balise <div id="header"> sur un site distant.

J'ai donc ce script :



Code PHP :
$url = "http://www.monsite.com/";
$html = file_get_contents($url);
preg_match('/<div id="header">(.*?)<\/div>/', $html, $matches);
print_r($matches);



Seulement il ne me retourne aucun résultat. Pourtant dans le site que j'appel, il y a bien <div id="header">test</div>.

Si je fais
Code PHP :
preg_match('/<div id="(.*?)">(.*?)<\/div>/', $html, $matches);

pour qu'il me retourne toutes les div de mon site, il ne m'en retourne que deux, sur une centaine...

Avez-vous une idée ?

Merci,

A++

Fabien Schenkels (alias fabienfs)
mercredi 8 décembre 2010 à 18:38:50 | Re : Récupérer contenu DIV

neigedhiver

Salut,

Dans ton masque : (.*?)
Je comprends pas l'intérêt du point d'interrogation...

Tu pourrais poster un bout de code HTML qui devrait satisfaire le masque et qui ne fonctionne pas ? (j'ai une flemme d'en faire un, tu peux pas imaginer ! surtout, j'aimerais tester avec le même code HTML que toi... ou alors carrément l'URL, en mp si tu préfères)

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
mercredi 8 décembre 2010 à 18:47:13 | Re : Récupérer contenu DIV

neigedhiver

Ca y est, ça vient de me revenir.

T'as oublié l'option s qui permet au . de matcher aussi le caractère \n. Par défaut, les correspondances ne cherchent que sur la ligne courante (la première donc).

Y'a quand même un défaut... Par exemple, dans cette page :

Code HTML :
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Bidule</title>
</head>
<body id="index">
	
	<div id="header">
		<div id="banner">
		</div>
		<div id="ads">
					</div>
		<div id="menu">
			<ul>
				<li><a href="/">Home</a></li>
				<li><a href="/upload">Upload</a></li>
			</ul>
		</div>
	</div>
	
	<div id="contents">	</div>

	<div id="footer">
		&copy; 2010 &middot; bidule.com
		<ul>
			<li>Legal</li>
			<li>About</li>
		</ul>
	</div>

</body>

L'expression régulière :
Code PHP :
preg_match('`<div id="header">(.*)</div>`s', $html, $matches);

Va récupérer le code HTML entre <div id="header"> et LE DERNIER </div> trouvé. C'est pas ça que tu veux... Il faudrait alors utiliser l'option U, pour que la PCRE ne soit pas gourmande... :
Code PHP :
preg_match('`<div id="header">(.*)</div>`sU', $html, $matches);

Mais là, elle va s'arrêter au PREMIER </div>, qui, dans mon exemple, est celui du div banner... C'est pas ça non plus que tu veux...
Si tu SAIS que le code HTML ne contient AUCUN autre div dans le header, alors ça ira (avec sU). Sinon, t'es obligé de parser le code de la page pour trouver le bon </div> (ligne par ligne, ou plutôt div par div).

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : récupérer, code, html, contenu, div


Répondre à ce message

Sujets en rapport avec ce message

Tableau HTML et PHP [ par blob54 ] Salut à tous, Je voulais savoir si c'était possible de récupérer le contenu d'une case d'un tableau HTML dans une variable PHP ?Par exemple, récupére Récupérer le code html d'une page web [ par supergrey ] Salut, je voudrais récupérer a partir de mon script PHP, le code source d'une page web.Par exemple la page http://lesite.com/page.php est lu par le se Récupérer du code d'une page html [ par Metaldark ] Salut ! [;)] Bon, j'explique mon problème : j'ai fait un script qui gere des templates et génére des pages html statiques.Par exemple, le template es afficher code html provenant d'une bdd mysql [ par pinopy ] slut , mon souci est le suivant; dans un champ de ma db mysql j'ai pour contenu : contenu et quand j'affiche dans un navigateur j'ai toujous contenu Récupérer un mot dans un texte [ par fabienfs ] Hello, Petite question : j'ai une variable [i]$content[/i] contenant du code HTML. Que voici : [code=html] Inclure une page html au lieu d'appeler la base SQL ! [ par kikifrance ] Salut et bien le bonjour ! Je souhaites inclure dans une page, admettons pomme.html, un contenu qui serait créé dans une page html ou php. Son conten Extraire du contenu HTML avec Xpath [ par thunderfear ] Bonjour, Je suis entrain de développer une fonction qui devra exporter une partie d'un document HTML. J'utilise le chemin Xpath pour bien spécifier problème d'upload de fichier [ par lilj ] bonjour, voila je ne comprend pas pourquoi mon browser affiche undefined index aprés avoir envoyé une fichier !! voici mon code : mon form : [code=htm Export ACCESS table csv [ par Jarod1980 ] Bonjour, Je voudrais exporter une table ACCESS au format csv en utilisant php. J'ai essayé de faire un code, mais ça me génère un fichier csv vide .


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales