Problème extraction allociné php

Résolu/Fermé
hurricane97 Messages postés 60 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 7 juin 2013 - Modifié par hurricane97 le 19/05/2011 à 09:23
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 19 mai 2011 à 18:03
Bonjour,

Je veuc creer des fiches film a partir d'information prise sur allociné
J'ai un code d'extraction qui retourne systématiquement "Aucun film trouvé..." et je ne trouve pas l'erreur .
Mon code est long donc je vais mettre un extrait.
Help me please.

Voici le code extraction.php


<?php
define('ALLOCINE_URL_RECHERCHE','http://www.allocine.fr/recherche/?motcle=');
define('ALLOCINE_URL_DETAIL','http://www.allocine.fr/film/fichefilm_gen_cfilm=');
define('ALLOCINE_URL_DETAIL_ROLE','http://www.allocine.fr/film/casting_gen_cfilm=');
define('ALLOCINE_URL_DETAIL_ACTEUR','http://www.allocine.fr/personne/fichepersonne_gen_cpersonne=');

if(isset($_GET['qt'])){
$titre=$_GET['qt'];
echo '<p><a href="javascript:history.go(-1)">Retour</a></p>';
getListFilm($titre);
}
else
{
if(isset($_POST['id'])) {
$id=$_POST['id'];
$date=$_POST['date'];
echo '<p><a href="javascript:history.go(-1)">Retour</a></p>';
getInfoFilm($id);
}
else
{
echo'<fieldset class="clear"><legend>Titre du film</legend><p><form action="creer.php?page=extraction" method="get">
<input type="text" name="qt" size="30">
<input class="submit" type="submit" value="ok">
</form></p></fieldset>
';
}}
function getListFilm($recherche) {
$site = "allocine";

$chaineRecherche = str_replace(" ","+",$recherche);

$url = ALLOCINE_URL_RECHERCHE.$chaineRecherche."&f=3&rub=0";
list($films,$erreur) = getListFilmAllocine($url);



if(!empty($films)) {
echo'<table class="none">
<tr>
<td class="titre">Titre</td>
<td class="titre">Réalisateur</td>
<td class="titre">Année</td>
<td class="titre"></td>
</tr>';
foreach($films as $unFilm) {
echo'<tr>
<td class="donne">'.$unFilm['titre'].'</td>
<td class="donne">'.$unFilm['realisateur'].'</td>
<td class="donne">';
if(!empty($unFilm['annee'])) print $unFilm['annee'];
echo'</td><form action="creer.php?page=extraction" method="post">
<input type="hidden" name="id" value="'.$unFilm['id'].'">
<input type="hidden" name="date" value="'.$unFilm['annee'].'">
<td class="donne"><input class="submit" type="submit" value="ok"></form></td></tr>';
}
echo'</table>';
}
else {
echo'<h2>Aucun film trouvé ...lol</h2>';
}
if(!empty($erreur)) {
echo'<h2>Le script a générer des erreurs</h2>';
foreach($erreur as $uneErreur) {
echo'<p>'.$uneErreur.'</p>';
} }}


J'ajouterais si ça ne suffit pas pour trouver le problème.





Je vous remercie de votre aide





A voir également:

7 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
19 mai 2011 à 12:24
étant donné que ça t'écris ça, ça veut dire que le test if(!empty($films)) { n'est pas bien passé, donc $films est vide et on voit qu'il est setté avec list($films,$erreur) = getListFilmAllocine($url);

Sans le code de la fonction getListFilmAllocine c'est plutôt pas possible de debugger...

T'as essayé de faire des traces un peu avant de demander ?
0
hurricane97 Messages postés 60 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 7 juin 2013 3
19 mai 2011 à 17:57
des traces???!!

non explique stp
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
19 mai 2011 à 17:58
Par traces, j'entends la méthode de base du débugage de scripts, faire des "echo" pour tracer l'activité du script.
0
hurricane97 Messages postés 60 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 7 juin 2013 3
19 mai 2011 à 18:00
ajout de getListAllocine

function getListFilmAllocine($url)
{
$erreur = '';
$films = '';

if( $contenuUrl = getContenuURL($url) )
{
// on isole le bloc de résultats
if($resultats = getEpression($contenuUrl,'#</h4></b></h3></td></tr></table>(.*?)<br />#is'))
{
$resultats = $resultats[0];
// on isole les lignes de résultats
if(preg_match_all('#<table cellpadding="0" cellspacing="0" border="0">(.*?)</table>#is',$resultats, $lignesResultats))
{
$i = 0;
// pour chaque ligne de resultat
foreach($lignesResultats[0] as $unResultat)
{

if( $titreTmp = getEpression($unResultat,'#<td valign="top">(.*?)<div style="padding-top: 2px;">#is') )
{
$titre = strip_tags($titreTmp[0]);

$films[$i]['titre'] = $titre;
$films[$i]['id'] = '';
$films[$i]['realisateur'] = '';
$films[$i]['annee'] = 0;
if( $idTmp = getEpression($unResultat,'#<a href="/film/fichefilm_gen_cfilm=(.*?).html"#is') )
{
$films[$i]['id'] = strip_tags($idTmp[0]);
}
if( $realisateurTmp = getEpression($unResultat,'#<h5 style="color: \#808080">de (.*?)</h5>#is') )
{
$films[$i]['realisateur'] = strip_tags($realisateurTmp[0]);
}
if( $anneeTmp = getEpression($unResultat,'#<h4 style="color: \#808080">(.*?)</h4>#is') )
{
$films[$i]['annee'] = strip_tags($anneeTmp[0]);
}

$i++;
}}}}}
else $erreur[] = "impossible de lire la page";
return(array($films,$erreur));
}

merci encore de votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hurricane97 Messages postés 60 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 7 juin 2013 3
19 mai 2011 à 18:02
oui j'ai appris à faire avec des algo mais avec un vrai langage je c'est pas comment faire...

Je suis une débutante de débutante
0
hurricane97 Messages postés 60 Date d'inscription dimanche 18 mai 2008 Statut Membre Dernière intervention 7 juin 2013 3
19 mai 2011 à 18:03
merci de ton aide
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
19 mai 2011 à 18:03
pas de problèmes, on a tous commencé un jour :)
0