Problème extraction allociné php

Résolu
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

7 réponses

  1. é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
    1. des traces???!!

      non explique stp
      0
      1. Par traces, j'entends la méthode de base du débugage de scripts, faire des "echo" pour tracer l'activité du script.
        0
        1. 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
          1. 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
            1. merci de ton aide
              0
              1. pas de problèmes, on a tous commencé un jour :)
                0