Extraire une information d'une page Web
Bonjour, je cherche à extraire le nom dans une page Youtube
Par exemple dans la fiche de MegaOnlyMusic (http://www.youtube.com/user/MegaOnlyMusic),
je veux extraire "SamSoFar" dans la balise input. Voici un extrait du code html de la page:
<div style="float:right;text-align:right;">
<div onclick="swap_with_input('first_name', true);" id="profile_temp_first_name" class="edit_value"> SamSoFar</div>
<input onblur="swap_with_input('first_name');" type="text" name="first_name" id="profile_edit_first_name" value="SamSoFar" class="edit_text" style="display:none" onkeypress="if (event.keyCode==13) {this.blur();return false;}">
</div>
</div>
Je souhaiterais ensuite insérer l'information voulue (ici "SamSofar") dans une table SQL.
Avez-vous des idées?
Merci d'avance.
SSF
salut,
utilise preg_match() avec un motif correct et une requete insert simple
pour l'expression régulière => expreg.com
@+
Il en faut peu pour être heureux !!!!!
Il est aussi possible d'utiliser DOMDocument et XPathEvaluator. Cependant, si le champ est renseigné par du javascript, c'est mort.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
slt!!
merci beaucoup pr avoir répondu, g essayer d'utiliser preg_mach()comme ceci :
<?php
$ch = curl_init();
$timeout = 5; // set to zero for no timeout
curl_setopt ($ch, CURLOPT_URL, 'http://www.youtube.com/user/MegaOnlyMusic');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
$chaine=file_get_contents('http://www.youtube.com/user/MegaOnlyMusic');
$listeDebut = array();
$listeDebut[0] = '<a href="http://www.youtube.com/user/';//chaine
$listeDebut[1] = 'id="profile_show_age">';//age
$listeDebut[2] = 'id="profile_show_hobbies">';//Centres d'interêts
$listeDebut[3] = 'id="profile_show_country">';//Pays
$listeFin = array();
$listeFin[0]='">';
$listeFin[1]='</div>';
$listeFin[2]='</div>';
$listeFin[3]='</div>';
$compte=array();
$compte[0]='chaine';
$compte[1]='age';
$compte[2]='centresinteret';
$compte[3]='pays';
$cpt=0;
for($i=0;$i <= 3;$i++)
{
preg_match( '`'.$listeDebut[$i].'([[:graph:] \',"]+)'.$listeFin[$i].'`isU', $chaine,$out );
echo '<br />';
$compte[$cpt]=$out[1];
echo $compte[$cpt];
$cpt++;
//Insertion dans la base de données...
}
?>
le problème qui se pose c'est que ce code m'affiche uniquement le contenu de compte[0], qui est 'MegaOnlyMusic'..
ce problème ne se pose pas lorsque j'affecte à $chaine une chaine de caractère copié du code source.le programme m'affiche la chaine, l'age, le pays et les centres d'interet...
merci d'avance :).
SSF
Juste comme ca, quel est l'interet de récupérer 2 fois le contenu de la page distante ?
Faire du file_get_contents sur du distant, c'est pas génial, préfère la solution curl.
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: