Bonjour à tous, alors mon soucis est que j'utilise l'api IMDB afin de récupéré les données concernant mes films et cette API me renvoi un fichier xml voici un exemple :
http://imdbapi.org/?title=matrix&type=xml&plot=simple&episode=0&limit=1&yg=0&lang=en-US&offset=&aka=simple&release=simple

Comme vous pouvez le constaté il est divisé en categorie et certaines m'interessent et d'autres non.

Donc j'ai codé un code de recupération du xml et j'ai essayé d'en retiré les données qui m'interesse mais rien à faire les données ne se mettent pas dans les variables.J'ai suivi l'explication du site php manual. Je vous joint mon code :

while(($data = mysql_fetch_assoc($result))){
    								$doc = new DomDocument();
    								//on enleve l'extension du fichier
    								$titre = enleveExtension($data['dc_title'], ".mkv");
    								//on remplace les espaces par des + pour la recherche imdb
    								$IMDBSearch = ereg_replace('\ ','+',$titre);
    								//on utilise l'api allocine pour recuperer les données de chaque film
    								$doc -> save('"http://imdbapi.org/?title='.$IMDBSearch.'&type=xml&plot=simple&episode=0&limit=1&yg=0&lang=fr-FR&offset=&aka=simple&release=simple"');
    								//echo $doc;
    								//$xmlFile = $doc->saveXML();
    								//$doc->loadXML($xmlFile);
    								$title = $doc->getElementsByTagName('title');
                                    $rating = $doc->getElementsByTagName('rating');
                                    $year = $doc->getElementsByTagName('year');
                                    $imdb_url = $doc->getElementsByTagName('imdb_url');
                                    $directors= $doc->getElementsByTagName('directors');
                                    $actors = $doc->getElementsByTagName('actors');
                                    $plot_simple = $doc->getElementsByTagName('plot_simple');
                                    $poster = $doc->getElementsByTagName('poster');
                                    $film = new Film($title,$rating,$year,$imdb_url,$directors,$actors,$plot_simple,$poster);
                                    
                                    echo '<li class="span2 text-center">
    								 	<div class="thumbnail">';
    								 	    $film -> title();
    							    	echo'</div>
    							    </li>';
    							}


Comme vous le remarquez j'ai créé une classe film afin de stocker les données je la joint aussi au cas ou mais elle marche bien normalement :

<?php

class Film

{
	private $title;
	private $rating;
    private $year;
    private $imdb_url;
    private $directors;
    private $actors;
    private $plot_simple;
    private $poster;
    
    
	function __construct($title,$rating,$year,$imdb_url,$directors,$actors,$plot_simple,$poster){
		$this->title=$title;
		$this->rating=$rating;
		$this->year=$year;
        $this->imdb_url=$imdb_url;
        $this->directors=$directors;
        $this->actors=$actors;
        $this->plot_simple=$plot_simple;
        $this->poster=$poster;
	}
	
	function poster(){
  		echo '<img src="http://image.toutlecine.com/photos/d/r/a/dragon-ball-serietv-01-g.jpg" class="img-rounded">';
 	}
     
    function title(){
        if(empty($this->title)){
            echo'<p>rien dedans</p>';    
            return false;
        }else{
            echo $this->title;
            return true;
        }
    }

}

?>


Je vous remercie tous d'avance de votre aide car ca fait 1semaine que je me prend a tête dessus et je ne comprends pas pourquoi rien n'est retiré du document xml.
Salut,
$doc -> save('"http://imdbapi.org/?title='.$IMDBSearch.'&type=xml&plot=simple&episode=0&limit=1&yg=0&lang=fr-FR&offset=&aka=simple&release=simple"');

$doc->load(...) Smiley cligne

EDIT: utiliser SimpleXML sera plus simple.
Modifié par jo_link_noir (06 Mar 2013 - 19:15)
merci jo_link_noir de ton attention, donc j'ai bien remplacé save par load mais rien n'y fait ca ne change rien Smiley decu

Pour ce qui est de simpleXML je ne connaissais pas du tout.En quoi est ce vraiment plus simple?
Encore merci la gestion du xml en php est toute nouvelle pour moi
Bon me voila de retour j'ai essayé ton simpleXML en suivant le lien que tu m'as donné mais je n'arrive pas à récupérer le xml venant du lien http je dois mal initialiser la variable Smiley decu

$doc = "http://imdbapi.org/?title='.$IMDBSearch.'&type=xml&plot=simple&episode=0&limit=1&yg=0&lang=fr-FR&offset=&aka=simple&release=simple"; 
$book = simplexml_load_file("'.$doc.'");


alors qu'en faisant en dur
$xml ="<item>
                                        <rating>8.7</rating>
                                        <rating_count>633559</rating_count>
                                        <year>1999</year>
                                        <genres>...</genres>
                                        <rated>R</rated>
                                        <title>The Matrix</title>
                                        <imdb_url>http://www.imdb.com/title/tt0133093/</imdb_url>
                                    </item>";
                                    $sxe = new SimpleXMLElement($xml);

ca marche.
Merci bien
Modifié par max02100 (06 Mar 2013 - 21:31)
Il y a des paramètre pour indiquer que c'est une url
$xml = new SimpleXmlElement($doc, 0, true);


DOM est plus complet mais possède certaines lourdeurs. SimpleXml est plus léger et possède une syntaxe plus simple. Quand il suffit juste de parcourir des nœuds xml, simplexml est plus pratique.


$item = $xml->item[0];
echo $item->rating.'<br />';
foreach ($item->actors[0]->children() as $actor)
  echo $actor.'<br />';
:D yeah it works!!!!! Enorme merci! par contre chose tres bizarre une seule image s'affiche via $poster (je joint un screenshot) alors que si je fais un copier coller de l'url sur les fichiers cassés et bien ca m'amene bien vers l'image qui s'affiche correctement.
Bizarre cette histoire
Je precise que je suis sur lamp au cas où ca viendrait de ca
upload/48669-Capturedu2.png
d'apres ce que j'ai trouvé c'est imdb qui refuse l'acces à ses .jpg Smiley decu la solution que j'ai croisé sur google c'est d'enregistrer en local chaque jpg avec copy mais ca ne marche pas non plus et d'ailleurs je ne pense pas que copy sache telecharger tout seul un fichier. je te passe en mp l'url de mon site si tu veux Smiley lol
max02100 a écrit :
d'apres ce que j'ai trouvé c'est imdb qui refuse l'acces à ses .jpg Smiley decu ...
Cela ne me semble pas scandaleux...
À toutes fins utiles, je recommanderai de lire les conditions d'utilisations avant de se retrouver face à de potentiels problèmes...
J'ai trouvé ce lien chez eux, si jamais cela peut aider ?
6l20 a écrit :
Cela ne me semble pas scandaleux...


Ah bon, ça les gênes tant que ça de payer la bande passante pour tous les sites qui voudraient linker leurs serveurs ? Bouh les méchants.... Smiley cligne
tres joli dessin 6l20 Smiley lol

Par contre oui je peux comprendre que IMDB ne nous offre pas sa bande passante mais bon je vais regardé du coté de l'api allociné parce que je n'arrive pas à enregistrer l'affiche en local en php Smiley decu