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. 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
    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
      1. Par traces, j'entends la méthode de base du débugage de scripts, faire des "echo" pour tracer l'activité du script.
        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 ?