begin process at 2012 05 27 19:35:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > PARSER ALLOCINE

PARSER ALLOCINE


 Information sur la source

Note :
8 / 10 - par 9 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :Parser, Allocine, Videotheque, Film, divx Niveau :Débutant Date de création :21/11/2009 Date de mise à jour :22/11/2009 08:33:11 Vu / téléchargé :9 153 / 980

Auteur : cyrhades

Ecrire un message privé
Commentaire sur cette source (140)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Ma source est un parser Allocine qui nécessite jquery, le code est tres facilement adaptable a n'importe quel source de videotheque.
Ce qui vous permettra de gagner bien du temps pour l'enregistrement de vos film.
Le code n'est pas très propre, les preg_match sont un peu fais à l'arrache mais ça fonctionne correctement (apparement ^^).

Utilisation il suffit d'entrer le nom du film (ou une partie du titre) qui vous interesse dans le champs titre appuyez sur entrer sur votre clavier Patientez ;-)
Cliquez ensuite sur la pochette du film qui vous interesse.



 Conclusion

Un fichier d'aide est fourni si vous souhaitez ajouter ce parser a votre source de videotheque.

Les temps chez moi :
recuperation de la recherche moins de 1/2 seconde
recuperation des infos de la fiche de film entre 1/2 et 1 seconde
Peux mieux faire je pense mais je vous laisse libre de modifier les preg match pour améliorer ces temps ...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

22 novembre 2009 08:33:12 :
Explication pour utilisation (presser la touche entrer)

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

RÉCUPÉRER DES INFORMATIONS SUR ALLOCINE.FR par trasher
Source avec Zip TEMPLATE ENGINE SIMPLE ET PUISSANT. EXTENTION DE FONCTIONS P... par BlackWizzard
Source avec Zip PARSER FBML; COMMENT UTILISER DU CODE FBML (FACEBOOK) SANS P... par BlackWizzard
Source avec Zip Source avec une capture FILES LIBRARY 1.1 par onizuK
Source avec Zip Source avec une capture DIVXTHEQUE V2.6.5 par stephne

Commentaires et avis

Commentaire de mkfreedown le 22/11/2009 13:35:40

Ca ne fonctionne pas pour moi !!!

Commentaire de cyrhades le 22/11/2009 13:53:52

Quel est ton probleme exactement ?

Vérifie que :
tu passes bien par ton serveur http et non pas par le fichier index.html en direct (les lien sont en relatif)
passe via : http://127.0.0.1/ton_dossier
pour l'utilisation:
Tu entres un nom de film et tu presses "entrer" en étant toujours dans le champ titre du film.

Ou y a t'il une erreur d'afficher ?
Donnes des détails car ça fonctionne c'est certainement une mauvaise utilisation de ta part à mon avis.

Commentaire de mkfreedown le 22/11/2009 17:09:13

Je remplis le formulaire, je clic sur Ajouter le film, rien ne ce passe !!!
J'utilise Easy php 3.0

Commentaire de cyrhades le 22/11/2009 17:32:37

ajouter film ne sert qu'a faire un envoi du formulaire une fois remplis (c'est un submit du formulaire)
il faut que tu entre le nom du film que tu recherche et appuis sur la touche entrer pour que la recherche s'execute (aPpuis sur entrer en laissant biensur le curseur dans l'input titre du film)
Exemple
(Tapes SAW) (Tapes [ENTRER]) dans le même champ.
Ajouter Film n'est pas utiles dans la demo (j'aurais dut retirer du code)

Commentaire de Xillon le 24/11/2009 15:34:31

J'ai fait quelques modifications au code tel que l'encodage des patterns en UTF8 pour permettre de prendre les accents comme dans "durée".
J'ai aussi ajouté des informations, tel que l'origine du film, son identifiant, etc...

Et désolé, j'ai réécrit votre code pour lui permettre de fonctionner aussi en PHP4.

Merci pour votre code, si vous voulez mes modifications, ils sont à vous.

Commentaire de AeroBlue le 24/11/2009 19:26:28

Merci pour cette source!
@XILLON: Pourrais-tu nous poster ta source modifié? ou bien me l'envoyer?
Merci!

Commentaire de cyrhades le 24/11/2009 20:16:46

Salut, Xillon pas de soucis pour les modifs même si je trouve ça dommage de passer en PHP4 alors que le PHP6 est sur le point de débarquer.

Commentaire de alebec le 26/11/2009 17:09:08

Super ! exactement ce que je cherchais !
un grand Merci


> cyrhades : le php6 contiens des fonctions qui permettent de simplifier la chose ? je vois pas trop ce que ca amènerais !

Alex

Commentaire de laoo le 02/12/2009 22:28:44

Salut,

Super ton script, merci beaucoup, par contre l'affiche ne s'affiche pas dans le champs  "affiche" , celui qui est caché.

Merci si tu pouvais m'eclairer pour l'afficher ;)

Commentaire de cyrhades le 05/12/2009 10:08:49

Salut
As tu lu le p'tit fichier d'aide fourni dans la source ?
En fait l'affiche est volontairement masqué vu que le champ récupére juste l'url de cette affiche, l'interet pour moi de ce parser est de récupérer les données pour les sauvegarder en base de données il suffit donc de sauvegarder l'url de cette image pour la faire apparaitre dans ton script de videotheque par exemple.
Je donne aussi une solution pour enregistrer la pochette sur ton serveur en faisant un file(); puis en ecrivant le contenu de file dans un fichier => fopen(); fwrite(); fclose();

Commentaire de AlexB13016 le 05/12/2009 11:00:19

Sa Fonctionne Très Bien ,
Suffit de lire le fichier Aide.txt Donné avec, et tu comprend de suite comment sa marche,
un grand merci pour se code,
je vais le modifier et lui donné de la gueule a bientôt =)

Commentaire de laoo le 05/12/2009 12:46:25

Si tu passe le champs en "text" non pas en "hidden" l'url ne sera pas affichée, j'ai changé le nom et l'id du champs  en "pochette" dans le l'index.html ( dans le le javascript de l'entete aussi ) et ca fonctionne.Je vais customiser tout ca maintenant :D Merci encore en tout cas !super script

Commentaire de Auden69 le 20/12/2009 00:40:43

Si quelqu'un avait la gentillesse de m'indiquer comment rajouter/faire apparaitre l'url de la jaquette dans un des champs ce serait parait !!!
Un grand merci à toi cyrhades.

Commentaire de laoo le 20/12/2009 11:23:03

change l'id du champ en " pochette " .

Commentaire de Auden69 le 20/12/2009 13:36:10 10/10

Merci pour votre réponse.

J'ai fait la modification dans le fichier index.html mais ca n'apparait toujours pas.
J'ai oublié une modif ?


Merci

Commentaire de laoo le 20/12/2009 19:36:47

Dans le dossier "javascript" , ouvre le fichier "plugin_allocine.js" a la ligne 64 tu verras le code qui envoie les donnees sur le formulaire. Enleve le petit chapeau '^' qui se trouve sur "pochette", ca doit etre une faute de frappe. Dans l'entete du index.html remplace cette ligne:     champ['affiche'] = "affiche";   par celle la :  champ['pochette'] = "pochette";

et dans le body , le code du champs de la pochette doit etre comme ca :

<input type="text" id="pochette" name="pochette">

Voili voila

Commentaire de Auden69 le 20/12/2009 22:50:53

Merci !

Commentaire de Freebuster le 02/01/2010 14:08:18

Super source. Merci.
Mais j'ai des problème avec les accents. Par exemple dans le synopsis, la lettre à n'est pas affichée correctement. C'est sans doute un problème d'UTF8. La modification de Xillon est peut être une solution, mais il ne la pas mise...

Commentaire de lkaiman le 04/01/2010 19:54:21 8/10

Merci mille fois,

çà fait combien de temps que je me casse la tête à parser la nouvelle version
mais c'était pas pratique, alors qu'en ajax, c'est nickel

j'ai modifié ta source pour avoir en + le lien vers la fiche allociné

fichier index:
(ajouter dans script)
champ['link'] = "link";
(et dans le form)
<span id="link"></span>

fichier plugin_allocine.js
ligne 67 ajouter:
$("#"+champ["link"]).html('<a href="http://www.allocine.fr/film/fichefilm_gen_cfilm='+id_du_film+'.html" target="_blank">fiche complète</a>');


Ensuite j'ai un probléme car tous les films ne passent pas.
Par exemple le film 300, ou la guerre des boutons. La recherche fonctionne mais pas la fiche du film

:/

Commentaire de lkaiman le 04/01/2010 22:31:34

j'ai inséré un petit code pour enregistrer les résultats dans un fichier log.
résultat pour le film 300 par exemple:
Toute les infos sont bien récupérés, mais non transmises dans le fichier html

j'ai aussi re-modifier le lien vers la fiche allociné pour que ce soit plus propre. mais bon c'est comme on veut çà


Mais pourquoi les infos ne sont pas transmises pour le film 300 par exemple, je ne sais pas !!!!!!

Commentaire de bzounourz le 15/01/2010 15:26:48

Bonjour et merci.
C'est tout à fait ce que je recherchais...
Ce serait cependant parfait s'il était possible de rapatrier les bandes annonces également.
Si quelqu'un avait une piste, je suis preneur.
Ayant commencé le php il y a une semaine je suis débutant.
Merci d'avance.

Commentaire de slyckers le 17/01/2010 20:28:59

Slt moi non plus cela ne fonctionne pas...
http://www.days-media.fr/allo/

Merci par avance

Commentaire de laoo le 17/01/2010 21:09:02

C'est quoi qui ne fonctionne pas Slyckers?

Commentaire de slyckers le 17/01/2010 21:39:36

Slt LAOO,
Euh si si c'est bon maintenant, je n'avais pas modifié certaines valeurs.
Par contre sais-tu reprendre la bande annonce d'allociné ?
Car se serait vraiment un script hyper-complet surtout pour mon site ^^
et d'autres bien entendu..

Commentaire de cyrhades le 19/01/2010 20:06:23

Salut pour info j'ai une erreur dans mon script la note et calculé sur une base de 10 hors allocine renvoi une note sur 8.
En ce qui concerne la récupération de la bande annonce il faudra faire avec le même principe que l'affiche et ensuite faire aux choix l'écriture sur le serveur ou se contenter du lien...
Ce code est libre donc n'hgésitez pas à apporter vos modifications et à les partager ensuite ;-)
Je ne modifierais certainement pas ce code et j'ai dans la tete de refaire un parser allocine mais entierement en Jquery sans PHP je viendrais poster si je  crée ce code un jour.

Commentaire de bzounourz le 20/01/2010 00:26:37 10/10

Bonjour,

Étant assez novice, je ne sais pas vraiment comment m'y prendre. C'est pour cette raison que je demandais une piste. Que puis-je ajouter dans le code pour qu'il me donne l'adresse du flv?

Pour le copier par la suite sur le serveur et l'afficher, ça je saurais me débrouiller.

Un tout grand merci à toi, j'ai pu grâce à ton script, indexer près de 900 films en deux jours.

Pour la note, je ne m'en sers pas, je trouve qu'Allociné est complètement à coté de la plaque au niveau jugement.

Merci d'avance à quiconque pouvant m'aider.

Bonne soirée.


Brice.

Commentaire de lenono75 le 21/01/2010 12:31:13 1/10

Le grab des sites, c'est pas joli.
Il y a des sites qui proposent simplement la possibilité de récupérer des infos, et avec leur accord.
Le code est sympa, mais l'usage moins.

Commentaire de lkaiman le 21/01/2010 12:36:07

développe LENONO75

quels genre de sites ?

Commentaire de lenono75 le 21/01/2010 16:14:48

Il suffit de chercher un peu ;-)

http://www.google.fr/search?hl=fr&q=apis+cinema

Commentaire de bzounourz le 21/01/2010 20:48:10

Quel argumentaire Lenono! J'en suis bouche bée...
D'autant plus que je ne vois pas le mal!
Surtout à un gros site tel qu'Allociné fourmillant de publicités en tout genre!
Et ta recherche sur Google est bancale ;)

Commentaire de sebastien247 le 25/01/2010 18:21:47

Bonjour,

Ce script semble super intéressant, mais malheureusement je n'arrive pas a le faire fonctionner.
Quand je tape un titre et que je valide par "Entrée" rien ne ce passe.
J'ai changer les chemins de fichiers comme indiquer dans aide.txt, mais ca ne fonctionne toujours pas.

Voici l'adresse ou ce trouve le script :
http://gstream.webuda.com/PARSER_ALLOCINE/index.html

Merci par avance pour votre aide

Commentaire de cyrhades le 31/01/2010 20:52:39

Reponse ici : http://gstream.webuda.com/PARSER_ALLOCINE/ajax/allocine.php
ton hebergeur n'est pas en php5 peut être, ou a desactiver certaine fonction ... renseigne toi le code fourni est du PHP5

Commentaire de kevin2b le 13/02/2010 03:54:20

Bonjour,

je trouve ce script super, seulement j'aurai voulu savoir comment avoir le titre du film dans l'url quand on clique sur les pochettes.


merci d'avnce de votre reponse

Commentaire de thecharmer1 le 23/02/2010 16:10:37

Pour régler le problème de récup des infos sur certains film (300, star wars episode 4 etc...) il faut modifier la classe ParserAlloCine.class.php ligne 252. Remplacer la fonction preg_match_all par preg_match (fonction noteFilm()) et le problème est résolu.

Commentaire de thecharmer1 le 23/02/2010 16:14:56 6/10

voila un code de récupération des variables envoyé par la page index.html. Il faut juste rajouter le nom de cette page à la ligne ouvrant le formulaire (<form method="post" action="add.php">):


<?php
$link = mysql_connect("localhost", "login", "password")
    or die("Impossible de se connecter : " . mysql_error());
    echo 'Connexion réussie';
$db_selected = mysql_select_db('divx', $link);
    if (!$db_selected) {
   die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
echo $_POST['titre'];
if (isset($_POST['titre'])){

$query="INSERT INTO divx_list (date,titre,resume,realisateur,acteur,annee,duree,genre,note,recto)
VALUES ('".$_POST['date_realisation']."','".$_POST['titre']."',
'".$_POST['synopsis']."','".$_POST['realisateur']."',
'".$_POST['acteurs']."','".$_POST['date_sortie_cinema']."','".$_POST['duree']."',
'".$_POST['genre']."','".$_POST['note']."',
'".$_POST['pochette']."')";

$res=mysql_query($query);
if (!$res) {
     die('Requête invalide : ' . mysql_error());
}
}
header('Location:index.html');
?>

Commentaire de bzounourz le 13/03/2010 12:16:54

Chez moi, la parser ne récupère plus le genre du film. Que peut-on faire pour y remédier?! Merci d'avance.

Commentaire de AlexB13016 le 13/03/2010 12:39:38

Chez moi aussi, le script de récupère plu le Genre. mais j'ai pas encore chercher le pkoi du comment .

Commentaire de bzounourz le 13/03/2010 12:51:26

Ben ca doit certainement venir d'une modification mineure d'AlloCiné mais vu que j'ai pas les compétences pour aller trifouiller dans le code, j'attends qu'une âme charitable vienne nous aider... xD

Commentaire de AlexB13016 le 13/03/2010 13:01:27

Pareil, j'ai pas les compétences, mais je suis tétu je cherche quand même a comprendre se qui a dans les codes (javascript, et PHP) MDr ^^

Commentaire de bzounourz le 13/03/2010 13:03:21

Ben si par chance, tu trouves quelque chose, pense à faire remonter l'info... xD

Commentaire de AlexB13016 le 13/03/2010 13:06:10

MDr, pas de souci, c'est pas que pour moi que j'cherche, mais pour tout le monde.
J'ai changer de milliard de chose dans le script Mais rien ne c'est produit  ^^

Commentaire de bzounourz le 13/03/2010 13:22:34

Voilà, si jamais, j'ai trouvé.
Dans le fichier "ParserAlloCine.class.php" du dossier "classes".
Remplacer la ligne 25:
const PATERN_GENRE = '/Genre: (.*)<\/a><br\/>/';
par
const PATERN_GENRE = '/Genre(.*)<\/a><br\/>/';

Et tout roule :D

Commentaire de AlexB13016 le 13/03/2010 13:37:01

Exact, Sa marche ^^ .
Bien Jouer, il fallait en fait juste enlever " :"

Commentaire de bzounourz le 13/03/2010 13:51:38

Oui, un petit coup d'oeil sur le site et je me suis rendu compte qu'il y avait plus les deux points. Un gros coup de chance quoi... xD

Commentaire de AlexB13016 le 13/03/2010 13:55:18

Javais pas vu se détail, si tu me l'aurais pas dis, pour moi les 2 point, ils y était toujours sur allociné Mdr

Commentaire de AlexB13016 le 13/03/2010 14:41:10

quelqu'un saurait comment trouver la pochette en bcp plus grand ? (sans l'agrandir en css, trop de pixel)

Commentaire de lkaiman le 13/03/2010 15:14:38

voila pour la grande pochette:


const PATERN_POCHETTE_FILM = '/src=\'(http:\/\/.*)\'alt/';



$chaineAff = substr($this->ficheFilmAlloCineEntier, $debutAff, $finAff-$debutAff);
// on crée l'attribut de la classe avec la fiche elle même
$this->ficheFilmAlloCineGdeAffiche = $chaineAff;




$data['pochetteGde'] =  (string) strip_tags( $this->pochetteGdeFilm() );



private function pochetteGdeFilm()
{
$retour = ''; // retour par defaut
if( preg_match(self::PATERN_POCHETTE_FILM,$this->ficheFilmAlloCineGdeAffiche,$aff) )
{
$retour = $aff[1]; // retour si le preg_match a fonctionné
}
return $retour;
}


en espérant que t'y retrouve ;)

Commentaire de bzounourz le 13/03/2010 15:14:46

Oui, depuis le départ ça... J'ai fait une petite modif.
Au lieu de copier le dossier de base, tu copie celui en "x_750_x" un truc du genre (désolé je suis plus dessus et j'ai pas le temps d'aller vérifier ça de suite). Automatiquement t'as l'affiche en plus grand :D
Si tu veux je peux te donner l'adresse du site en pv pour que t'aille jeter un coup d'oeil ^^

Commentaire de AlexB13016 le 13/03/2010 15:22:55

Oui je veux bien le lien, merci d'avance =)

Commentaire de AlexB13016 le 13/03/2010 15:29:41

merci LKAIMAN, j'vais essayer, et j'vois a preu pres se que s'est, merci.

Commentaire de AlexB13016 le 13/03/2010 17:14:20

Lkaiman,
ton code, j'lai mis dans dans le fichier ParserAlloCiner.class.php, mais sa marche pas .
sa me redonne le meme lien que laffiche qui est deja., merci meme si j'ai pas réussi ^^

par contre Bzounourz, c bien plus facile (Y) , "r_760_x" a la place de "r_75_106". Merci a toi tu ma bien aider =) .

var url_image = info_film[id_du_film]["pochette"].replace("r_75_106", "r_760_x"); // Dans plugin_allocine.js

Commentaire de lkaiman le 13/03/2010 20:56:30

sauf que moi j'obtiens la pochette petite ET grande

j'ai dériver le parser sans le coté ajax, je ne peux pas plus t'aider que çà
mon code est bon, faut le mettre au bonne endroit ;)

Commentaire de bzounourz le 14/03/2010 11:13:05

J'obtiens également les deux images avec ma méthode. Suffit de copier la ligne ^^
Content d'avoir pu t'aider même si c'était pas vraiment précis tout ce que j'ai dis ;)

Commentaire de zaknoune le 16/03/2010 20:37:19

Bonsoir tout le monde,

J'ai tester le script et je le trouve vraiment sublime. Le seul souci c'est que je n'ai aucune expériance en php et je souhaite relier le script a une base de donné mysql, et aussi de faire une page qui m'afficher les pochettes des films stock dans la base de donné Mysql

pouvez-vous m'aidé svp ?


Merci d'avance

Commentaire de lkaiman le 16/03/2010 20:59:41

le siteduzero.com est ton amis
c'est un peu de boulot ce que tu demande, même si çà peut être baclé...

Commentaire de zaknoune le 16/03/2010 22:54:38

Bonsoir,

Merci LKAIMAN pour ta réponse rapide,

Je connais le siteduzero.com mais je comprend ke dal je suis peut etre "con" :p

D'un coté si tu trouve vraiment ce que je cherche a savoir demande beaucoup de boulot, je me pose la question sur le créateur de script qui as partager sa source sur le net lui aussi il aurai du dire que c'est un travail lourd et qu'il le garde juste pour lui même.

Merci

Commentaire de lkaiman le 16/03/2010 23:32:07

la différence, c'est que c'est une classe avec un plugin ajax
donc utilisable dans n'importe quel condition
le php/mysql est un outil trés facile et personnalisable a souhait

j'ai réalisé pour ma boite un site de gestion des dvd
réservation, prêt, disponibilité
tous avec bien sur bdd et enregistrement des pochettes
j'ai facilement passé une centaine d'heure


donc merci pour l'aide mais non plus pour te mettre la cuillère dans la bouche

Commentaire de zaknoune le 16/03/2010 23:59:45

bonjour,

Merci pour ta réponse déja mais on ne va pas s'attarder sur les détails. je voulais uniquement savoir si l'on pouvait accéder à des tuto qui pourrait aider à comprendre le principe de base. puisqu'il n 'y a guère d'interaction de l'autre côté, ça ne m'interesse plus vraiment. le but premier étant de chercher l'information, ça n'a aucun sens de continuer à piocher au fond d'une tombe vide.
le site du zero n'aide pas non plus vu que les tuto sont quasi incompréhensibles pour moi.


Ps : j'ai remarqué que  les figures de style ne sont pas votre fort, j'espere que mon message passera du moins assez clairement et subtilement.

Merci

Commentaire de AlexB13016 le 20/03/2010 00:33:06 8/10

"Presser la touche entrée" cela ne marche plu chez moi, donc petite modification a ajouter au formulaire a coter de linput titre du film
<input type="button" onclick="rechercheAlloCine();" value="Chercher le Film"/>

Commentaire de AlexB13016 le 20/03/2010 00:41:48

En Passant aussi, le script récupère plu la durée du film et le genre malgré la modif d'y a quelque jours (qu'a était un succé) ..

Commentaire de laoo le 20/03/2010 00:47:37

Oui en effet, c'est un probléme de pattern. Allociné ont du changer quelque chose sur la page du film. Je vais jetter un coup d'oeil.

Commentaire de AlexB13016 le 20/03/2010 00:49:46

Justement je regarde je regarde mais c'est la meme, Genre sans les 2 points après j'vois pas quoi regarder

Commentaire de bzounourz le 20/03/2010 09:53:48

Pareil j'ai passé plus d'une heure hier a essayer de faire des modifications sans succès... :/
Dommage, parce que le code est génial... ^^

Commentaire de AlexB13016 le 20/03/2010 12:27:51

J'ai un Zizprez dans mon ordinateur, j'essaye de faire les modif's nécessaire pour le faire fonctionner, pour le moment je coince.

Commentaire de AlexB13016 le 21/03/2010 01:15:03

Jtrouve pas comment le faire marcher =(

Commentaire de bzounourz le 21/03/2010 12:01:02

Zizprez? C'est quoi exactement?!

Commentaire de fergan le 29/03/2010 14:00:22

j'ai changer le patern de la durée je la recupere bien mais c'est un peu bourrin

const PATERN_DUREE = '/Dur.*([0-9]{1,2})h([0-9]{2})min/'; // Bug si ecrit Durée pk ???

Commentaire de ouussama1 le 08/04/2010 01:11:06

supeeer merci a vous !
j'ai modifier

Dans le fichier "ParserAlloCine.class.php" du dossier "classes".
Remplacer la ligne 25:
const PATERN_GENRE = '/Genre: (.*)<\/a><br\/>/';
par
const PATERN_GENRE = '/Genre(.*)<\/a><br\/>/';

recupere pas le genre ((

Commentaire de djtec21 le 01/05/2010 19:55:06

Bonjour, et comment faire pour récupérer le casting complet du film sur allociné?

Commentaire de didtho le 10/05/2010 01:47:01

Pour le genre, ça marche en mettant ceci. C'est pas très propre, mais cela a le mérite de marcher.

const PATERN_GENRE = '/Genre :(.*)<\/a><br \/>Dur/';

Commentaire de ouussama1 le 04/06/2010 17:41:48

Merci bcp  D1DTHO  pour laide  ^^

Commentaire de newbiel le 07/06/2010 09:25:23

merci a tous pour votre aide . allocine change quelquefois son code allors les nouveaux patterns sont bienvenues :D

Commentaire de laoo le 14/07/2010 16:08:29

Coucou tout le monde,

Je sais pas pour vous , mais chez moi seul le titre, le syno et l'image fonctionnent. Le reste est completement embrouillé ( acteurs a la place du realisateur etc ) allociné a du faire un grand changement.

Si un d'entre vous aurait la gentillesse de partager ses patterns avec moi, il serait le bienvenu.

Merci d'avance

Commentaire de AlexB13016 le 15/07/2010 04:01:33

Dans la soirée j'vais regarder le parsage, j'arrive a parser, mais c pas encore au niveau du script (exemple pr la recherche, jarrive pas encore, sinon jparse nimporte quel page allocine avec mes codes), jvais essayer plus tard je vous tient au news

Commentaire de cyrhades le 15/07/2010 18:29:23

Salut les gars vu le monde de personne intéressé par cette source, je penses la re-coder plus proprement et en réfléchissant à un système de mise à jours simple des patterns (via un fichier ini par exemple) je vais retravailler dessus pour optimiser le temps d'affichage et je mettrais également le code de récupération des affiches (pochette).

Commentaire de AlexB13016 le 15/07/2010 18:35:00

CYRHADE, Oui sa va intéréssé du monde sa, ton code va avoir du succée :0)

Commentaire de AlexB13016 le 15/07/2010 18:36:44

Moi ce que jarrive pas c avec les Partern , les slashes et tout -__-.

Commentaire de RBert le 15/07/2010 23:50:06 9/10

Merci et bravo pour ce code CYRHADES.
J'ai réussi à faire une joli présentation et modifié un peut le code pour avoir le nom du réalisateur, mais celui s'affiche avec la date du film devant le nom. Les acteurs au bon endroit en allant dans la classe sur la fonction "creerListingResultatRecherche()" mais le genre et la durée rien.

Commentaire de AlexB13016 le 16/07/2010 12:59:58

Voila de mon coter j'ai réussi a tout rétablir pour vous je vais vous donnez les codes a changer ci-dessous :

Changer le Patern genre :

const PATERN_GENRE = '/Genre :(.*?)<\/a>/';

Changer le Patern durée :

const PATERN_DUREE = '/Durée :(.*?)min/'; // Bug si ecrit Durée pk ??? (parceque c'est en UTF8)

pour ceux qui veulent que le date de sortie s'ecrive exemple "12 Avrile 2009" changer le Patern Année

const PATERN_ANNEE = '/ Année de production :(.*)<\/a><br\/>/';

IMPORTANT pour Réalisateur et acteur changer le Paterne Info Films

const PATERN_INFOS_FILMS = '/<span class="fs11">(.*)<br \/>(.*)<br \/>(.*)<br \/>/';


Enssuite pour que Réalisateur et Acteurs marche allé dans Classes/ParserAlloCine.class.php ligne 108 et 109 remplacer ses 2ligne par ceci

$data[$index]['realisateur'] =  (string) addslashes(strip_tags( str_replace('de ', '',$lesInfos[2]) ));
$data[$index]['acteurs'] =  (string) addslashes(strip_tags( str_replace('avec ', '',$lesInfos[3]) ));

et Voili voilou voila tout marche si c pas bon demander moi..

a Bientôt

Commentaire de AlexB13016 le 16/07/2010 13:02:24

Euh Petite Erreurs, tout se passe dans Classes/ParserAlloCine.class.php mais les lignes 108 et 109 sont Okai vous verez marcher 2ligne plus haut "// Les infos (annee, realisateur, acteurs)" :)

Commentaire de RBert le 16/07/2010 19:04:56

Merci pour tes modifs AlexB, elle fonctionne bien pour moi.

Allé on va pinaillé pour que ce soit tip top !

Par exemple sur le film 300(qui est un bon exemple je pense)
affichage de deux acteurs au lieu de trois.
affichage du premier genre au lieu de quatre.

je voudrais rajouter l'age permis, mais je me demande ou le mettre, dans les infos du film ou indépendant ?

Pour le moment j'ai créé une contante que j'ai mise dans la classe à la suite des "const"
const PATERN_AGE = '/<span class="insist">(.*?)</span>/';

Dans le "index.html"
Ajout du champ avec les autres
champ['age'] = "age";

et aussi après le span genre
<span><label>Age :</label><input type="text" value="" id="age" name="age" /></span>

me reste plus qu'a lextraire du tableau...

Commentaire de cyrhades le 16/07/2010 19:23:06

Je vais bosser ce week end sur le nouveau code, donnez moi vos idées.
Pour ma part j'ai déjà pensé a :

- Un système de mise a jours automatique des patterns, et du moteur, l'ajout de plugins (le fait de récupérer les infos sur allociné deviendra un plugin il sera donc possible de récupérer sur d'autres site en recréant un plugin).

- Récupération de l'image.

- Vos idées

Commentaire de RBert le 16/07/2010 23:52:10

Super CYRHADES

Ha oui pour les mises à jours auto car sa à l'air de pas mal bouger sur allo ciné.

Aussi pour les plug-in, par exemple pour les jeux, jaquette etc ;)

Pourquoi ne pas garder le format de la durée ?
Rajouter l'age permis, si pas d'age mettre tout public.
Pour la note autant garder celle su site interrogé.

Bon courage !

Commentaire de RBert le 16/07/2010 23:56:42

Han j'oubliai, pour les caractères avec accents.
à la place du cractère

[^"]+

Mais parfois sa marche pas, chelou.

Commentaire de AlexB13016 le 17/07/2010 00:04:16

Moi je dirais qu'il faudrait rajouter :

- Jaquettes Grande et petite dans le résultat finale(au choix)
- la bande d'annonce (sous forme de lien ou avec le lecteur video Allocine)
- Lien de l'affiche allocine dans le résultat de la recherche (au choix, on l'affiche si on le veux)

moi je vois que sa pour le moment.

Commentaire de cyrhades le 17/07/2010 09:01:37

RBert
Pourquoi le format de la durée?  c'est seulement car c'est beaucoup mieux d'enregistrer en base de données le temps en minutes(type : int (3)) qu'avec un notation du type 1h43, cependant tu as raison j'ajouterais la méthode de conversion en minutes pour l'enregistrement en bdd et ajouterais un paramètre pour le choix de l'affichage.

Pour les problème d'encodage je ferai au mieux mais c'est malheuresement pas évident certain texte sont au format UTF8 d'autre non je vais réfléchir à comment controler l'encodage. ;-)

AlexB13016
Pas de soucis pour les jaquettes elle sont assez simple a récupérer.

La bande annonce je me tournerais seulement vers le lien et on verra plus tard via un plugin pour l'intégration d'un lecteur mais intéressant ;-)

Concernant l'affichage d'une recherche il s'agira d'un template il suffira à l'utilisateur d'utiliser un template qui lui convient, j'en mettrais 2 ou 3 et vous laisserais (et donnerais la possibilité) de partager les vôtres.

Merci pour vos conseils j'en prend bonne note.

Commentaire de jdalton42 le 19/07/2010 12:08:52

pour ma part, avec certains films sa ne marche pas ! par exemple, 2012 de Roland Emmerich, la recherche fonctionne, mais il ne me met pas les données dans le formulaire !

Commentaire de AlexB13016 le 19/07/2010 20:00:04

Moi j'voudrais bien que le script soit tout en PHP, avec Javascript c'est pas trop sa de mon coter (même si j'ai quelque connaissance) :)

Commentaire de lkaiman le 19/07/2010 20:08:51

le temps de parser toutes ces infos est assez long si on fait tout çà en php
mais c'est faisable

c'est pour çà que le javascript existe car on peut l'utiliser en live et faire utiliser ce qu'on veut

non moi j'aimerai bien que tout soit en javascript ^^

mais j'attends avec impatience le coup du fichier ini qui se mettrait à jour, je ne vois aps trop comment mais çà serait d'enfer

good luck

Commentaire de cyrhades le 19/07/2010 20:09:43

Malheureusement le javascript sera indispensable il évite de recharger la page une fois la liste génér,é imagine le temps de rechargement de la page avec une longue liste de film deja recherché, ça consommerais du coté serveur inutilement. Mon but étant d'optimiser au maximum je suis obligé de rester avec du javascript et utiliser le jquery qui m'est devenu indispensable ;-)

Je penserais à commenter d'avantage le code JS ;-)
Je ne diffuse pour le moment aucune source mais pour info j'ai commencé à développer un système de mise à jours des patterns et du moteur.
je vais réfléchir à un système de téléchargement de plugins.

Commentaire de AlexB13016 le 19/07/2010 20:20:24

@cyrhades, Oui c'est vrais tu a raison cela Consommerais beaucoup coter serveur .. pas faux, c'est vrais que JavaScript est indispensable pour sa :).
mais par contre par la suite je voudrais bien que tu m'explique comment listé avec les foreach (j'isole les resultats et tout après j'vois pas comment faire ..), c'est possible ?

Commentaire de cyrhades le 19/07/2010 20:36:30

J'ai pas totalement compris ta question mais si tu demande l'equivalent foreach en javascript à savoir qu'il faut faire un for in Exemple :
for ( key in Tableau )
{
    alert( Tableau[key] );
}

Le tableau doit être un objet : new Array ou json.
Exemple concret :
Tableau = { "0" : "blabla", "toto" : "eheh", "titi" : "exemple" }
les alert dans le for ci dessus correspondrait à écrire :
alert (Tableau["0"]); // retourne blabla
alert(Tableau["toto"]); // retourne eheh
alert(Tableau["titi"]); // retourne exemple

Commentaire de AlexB13016 le 19/07/2010 20:40:12

non c'est pas ce que je demander, merci quand meme pr la reponse sa pourais me servire
en PHP , un liste les resultats de la recherche et on utilise les foreach non ? jarrive pas a comprendre son fonctionnement c sa en fait ..

Commentaire de AlexB13016 le 19/07/2010 20:40:56

Jparle dans le parsage ...

Commentaire de cyrhades le 19/07/2010 22:51:36

Tu ne comprends pas le fonctionnement du foreach on son utilité dans le cas du parser ?

Son fonctionnement :
Tu lui passe un tableau, tu donne un nom à la clef et sa valeur
$tab = array( "toto" => "exemple", "titi" => "idem");

si tu fais :
foreach ( $tab as $key => $valeur )
{

}
en gros $valeur est egal a $tab[$key] dans la boucle

Dans le cas du parser je m'arrange pour trouver une partie du code qui sépare les films, ce qui me permet de créer un tableau avec ce code, et je parcours chaque films sans difficulté.

Commentaire de AlexB13016 le 19/07/2010 22:55:53

Merci Beaucoup, je vais essayer sa et de faire le parsage de la recherche et mettre sa en place, je tien au courant, si cela marche je vous posterais sa, tout en PHP par contre, Avec Javascript plus tard :), mieux vaut plusieurs source que une :), j'vais plutot faire genre un ZizPrezz comme Zizou59, :)

Commentaire de jdalton42 le 19/07/2010 23:08:16

petite modif pour avoir tout les genres quand il y en a plusieurs:

remplacer la ligne 25 du fichier ParserAlloCine.class.php par:

const PATERN_GENRE = '/Genre :(.*?)<\/a><br \/>/';

pour contre, moi, avec certains films comme "30 jours de nuit" que je viens d'essayer, la recherche le trouve, mais quand je clique dessus il ne met pas les données dans le formulaire .. mais avec d'autres films sa fonctionne .. quelqu'un sait c'est dû à quoi ?

Commentaire de RBert le 22/07/2010 14:54:14

Désolé pour cette absence, changement de FAI qui devait ce faire au mois d'août, voila c'est fait !
J'en ai profité pour travailler sur la présentation du parser.

Je suis d'accord avec CYRHADES, gardons l'AJAX, par contre un loading animé serait le bien venu pendant la recherche des infos.

AlexB, http://www.php.net/download-docs.php, si ca peut d'aidé

Commentaire de cyrhades le 22/07/2010 19:56:21

Le développement de la nouvelle version prendra un certain temps, car je souhaites faire quelques chose de correct, je développe actuellement un système de compression de fichier que j'ai nommé lc_compress qui permettra de compresser n fichiers en un seul avec la structure en xml compressé elle aussi et permettra bien entendu la décompression ;-) , ce système sera implémenté dans mon système de parser car il servira pour la mise à jours et le téléchargement de plugins (le systeme de plugins fera lui aussi partie d'une des étapes) je ne manquerais pas de vous faire part de l'avancer de chaque étapes, je vous les partagerais via mon blog vous aurez le lien de chaque étape et aurez accès à la documentation également.

Je réfléchis également a un moyen d'échange pour l'interface (je pensais utilisé smarty moi qui l'utilise sur mes autres projets ce n'est pas gênant mais si vous utilisez smarty que dans le cadre de mon parser cela serais peu judicieux (je réfléchis ...) ).

Commentaire de RBert le 23/07/2010 02:53:14

hum, petit projet deviendra grand ?
on s'en va vers du mvc ?

Commentaire de Voodoo91 le 23/07/2010 14:21:12

Merci pour cette source =) elle m'est d'une grande aide dans le réalisation de mon projet de vidéothèque =)

Toutefois, en faisant les modifications des commentaires je n'arrive toujours pas à récupérer le réalisateur :/ quelqu'un d'autres à ce problème?...

Commentaire de RBert le 23/07/2010 19:21:57

Non tout va bien pour moi, voici la bonne ligne (au environ de 25) à placée dans la liste des constantes du fichier classe : ParserAlloCine.class.php

const PATERN_INFOS_FILMS = '/<span class="fs11">(.*)<br \/>(.*)<br \/>(.*)<br \/>/';

Commentaire de Voodoo91 le 23/07/2010 21:19:30

Merci beaucoup j'avais une erreur dans le patern effectivement =) ça marche nikel si quelqu'un utilise drupal je peux le renseigner pour utiliser les données recueillies dans la création d'un type de contenu ;)

Commentaire de RBert le 23/07/2010 22:07:34

Pas de quoi voodoo ;)


J'ai terminé l'ajout de l'age, permission, code parental, je sais pas trop comment le nommé en fait !


Dans le fichier class : ParserAlloCine.class.php


Ajoutez la constante avec les autres

Après : const PATERN_SYNOPSIS = "/Synopsis : <\/span>(.*)<\/p><\/div><\/div><ul id/";

Ajoutez : const PATERN_AGE = '/<span class="insist">(.*?)<\/span>/';


Dans la fonction : private function creerListingResultatRecherche()

Après : $data[$index]['titre_original'] =  (string) utf8_encode(html_entity_decode( $this->titreOriginalFilm() ));

Ajoutez : $data[$index]['age'] = (string) utf8_encode(html_entity_decode( $this->age() ));


Dans la fonction : private function resultatFicheFilm()

Après : $data['synopsis'] = (string) utf8_encode(html_entity_decode( strip_tags($this->synopsis())) );

Ajoutez : $data['age'] = (string) utf8_encode(html_entity_decode( strip_tags($this->age())) );


Tout en bas du fichier avant le dernier : }

Ajouter la fonction suivante

    /**
     * Retourne le code parental du film
     */
    private function age() {
        $retour = "Tout publique.";
        if(preg_match(self::PATERN_AGE,$this->ficheFilmAlloCine,$age)) {
            $retour = utf8_decode($age[1]);
}
        return $retour;
    }


Dans le fichier index.html

Après : champ['note'] = "note";

Ajoutez : champ['age'] = "age";


Après : <span><label>Genre :</label><input type="text" value="" id="genre" name="genre" /></span>

Ajoutez : <span><label>Age :</label><input type="text" value="" id="age" name="age" /></span>


Dans le fichier plugin_allocine.js du dossier javascript

Après : $("#"+champ["synopsis"]).append(data['synopsis']);

Ajoutez : $("#"+champ["age"]).val(data['age']);



Si l'age n'est pas défini dans allociné le texte "Tout publique." s'affichera, on peut mettre vide si on veut, voir la fonction age.


Voilou, pour moi sa fonctionne bien, si il vous intéresse testez le !

Commentaire de igrek le 24/07/2010 00:32:42 10/10

Super ton outil !!!

J'ai juste un soucis de mon coté avec la note et la durée... ça s'affiche, mais les donnés ne sont pas bonne :s

Encore bravo ;)

Commentaire de didtho le 28/07/2010 00:59:19

Aller voir ici et je pense que cela devrait bien vous aider pour ne pas faire du parsage sauvage. Mais tout simplement en utilisant ce qu'il faut.

Commentaire de didtho le 28/07/2010 01:00:04

Avec le lien c'est beaucoup mieux :
http://wiki.gromez.fr/dev/api/allocine

Commentaire de didtho le 28/07/2010 03:14:21

Voilà juste un bout de code exemple avec cURL pour retrouver des films.
Il suffit ensuite d'adapter sur un formulaire pour la recherche.
Là on cherche des films avec le mot gendarme.
On renvoit les 50 premiers résultats.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<h1>Les films trouvés</h1>
<ul>
<?php
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,"http://api.allocine.fr/xml/search?q=gendarme&partner=1&json=0&profile=large&count=50");

curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$contenu = curl_exec($curl);

$xml = new SimpleXMLElement($contenu);

foreach($xml->movie as $v) {
if ($v->title) {
echo "<li>".$v->title."</li>";
}
else {
echo "<li>".$v->originalTitle."</li>";
}

}
?>
</ul>
</body>
</html>

Commentaire de rifly02 le 28/07/2010 03:44:52 10/10

Bonjour,
je vient de télécharger le code de cyrhades,mais je n'arrive pas à récupérer la durée, l'adresse de l'image et la traduction?

Quelqu'un sait comment on fait?
Merci pour votre aide.

Commentaire de RBert le 28/07/2010 16:57:35

DIDTHO, vraiment très intéressant ce que tu proposes, le lien marche mais pas la boucle, merci à toi pour ces excellentes infos. Sa pourrait nous aidé.

RIFLY, regarde dans les commentaires, tu vas trouvé ton bonheur

Commentaire de didtho le 28/07/2010 17:01:18

RBERT, il faut activer l'extension PHP curl pour que cela marche.
Car Normalement un simple copier coller de ce que j'ai mis plus haut marche. Je viens de reessayer et cela marche avec un simple copier coller.

Commentaire de rifly02 le 28/07/2010 17:21:50

Ouai mais j'ai lu tout les commentaires mais je n'ai vraiment pas réussit à récupérer ce que je voulais...
Vous avez pas une petite idée

Commentaire de rick hunteur le 28/07/2010 17:28:05

Merci pour le source

Par contre, dans le synopsis, les caractères accentués ne passent pas
Une solution ?

Commentaire de rifly02 le 28/07/2010 17:35:47

J'ai uitlisé: utf8_decode
exemple: utf8_decode(stripslashes($titre)
ça semble marcher

Commentaire de rick hunteur le 28/07/2010 17:50:18

Ben bizarre

Moi aussi utf8-decode
private function synopsis()
{$retour = '';
if(preg_match(self::PATERN_SYNOPSIS,$this->ficheFilmAlloCine,$description))
{$retour =  utf8_decode($description[1]);
}
return $retour;

et après
$data['synopsis'] = (string) utf8_encode(html_entity_decode( strip_tags($this->synopsis())) )

Mais l'affiche du "à" dans la partie synopsis ne marche pas

Commentaire de RBert le 28/07/2010 18:35:10

DIDTHO, oui le curl est activé dans php, l'erreur vient de moi, milles excusent.

Commentaire de RBert le 28/07/2010 18:45:07

RIFLY,
pour la durée, dans le fichier "ParserAlloCine.class.php" du dossier classes

changer la ligne : const PATERN_DUREE =
par : const PATERN_DUREE = '/Dur[^"]+e :(.*?)min/';

mais la durée est converti en minutes par la suite.



Pour l'affiche, pochette : Commentaire de cyrhades le 05/12/2009 10:08:49, tu vois que c'est là.

Commentaire de lkaiman le 28/07/2010 19:12:39

Merci DIDTHO pour nous faire découvrir l'api de allociné
cette nouvelle date d'il y a peu, du 13 juillet pour être exact, donc fini le parsage barbare

et bien que j'ai adopter cette source, je dois dire que c'est surement la fin de de celle-ci

Bien entendu l'api allociné n'est pas encore officielle, mais ils en parlaient depuis longtemps et cet api est utilisé pour une application iphone ou android donc je pense qu'on peut faire confiance et utiliser cet api

un gros ouf car tous les 2 mois le parsage changeait grrr

et un gros merci à gromez (http://wiki.gromez.fr/dev/api/allocine)

Commentaire de RBert le 28/07/2010 20:17:53


je pense pas que la source soit morte, c'est une excellente base.

Ajusté la classe et les constantes avec les bonne infos de DIDTHO.

Enfin juste une idée, voir si CYRHADES est d'accord.

Commentaire de rifly02 le 28/07/2010 20:45:48

salut RBert,
J'ai essayé de changer la ligne : const PATERN_DUREE =
par : const PATERN_DUREE = '/Dur[^"]+e :(.*?)min/';
Mais malheureusement  je vois que la durée est toujours de 60 minutes.

étrange..

Commentaire de rifly02 le 28/07/2010 22:32:23

Pour l'url de l'image j'ai remplacé:
dans le ficier js:

$("#"+champ["^pochette"]).val(info_film[id_du_film]["pochette"]);
Par:
$("#"+champ["pochette"]).val(info_film[id_du_film]["pochette"]);

dans index.html:

champ = new Array();
champ['titre_film'] = "titre_film";
champ['pochette'] = "pochette";
champ['realisateur'] = "realisateur";
champ['acteurs'] = "acteurs";
champ['date_realisation'] = "date_realisation";
champ['date_sortie_cine'] = "date_sortie_cine";
champ['genre'] = "genre";
champ['synopsis'] = "synopsis"; // textarea
champ['duree'] = "duree";
champ['note'] = "note";
champ['affiche'] = "affiche";

url_ajax_allocine = "ajax/allocine.php";

Puis en fin dans le body j'ai remplacé:

<input type="text" id="pochette" name="pochette" />

Voila, pourtant l'url de l'image ne s'affiche pas.

Ai-je oublié une modif ?

Commentaire de RBert le 29/07/2010 15:02:26

Oui, dans le fichier index.html, remplacé la ligne

champ['affiche'] = "affiche";

par :

champ['pochette'] = "pochette";

Commentaire de rifly02 le 01/08/2010 15:58:45

d'accord merci, j'ai réussi à récupérer l'adresse de l'affiche et comment vous faites pour récperer la traduction?
Merci pour votre aide

Commentaire de RBert le 01/08/2010 16:10:43

quelle traduction ? tout ce fait sur allocine.fr

Commentaire de rifly02 le 01/08/2010 16:18:03

Je veux dire le titre original ?

Commentaire de RBert le 01/08/2010 16:31:54

sa sa dépend d'allociné, si le film n'a pas de titre fr c'est son titre original qui est renvoyé.

Commentaire de rifly02 le 01/08/2010 16:43:37

oui mais c'est le titre original que je souhaite récupérer, quelqu'un aurait une idée ?

Commentaire de lkaiman le 01/08/2010 17:15:06

voila je viens de passer une petite heure sur l'api d'allociné, et c'est vraiment super rapide:

voila page de recherche: "liste.php"
################################################
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<p>
<form action="" method="post">
<?php
$search = !empty($_POST['search']) ? $_POST['search'] : '';
?>
rechercher = <input type="text" name="search" value="<?php echo $search; ?>" /><input type="submit" value="ok" />
</form>
</p>

<h1>Les films:</h1>
<?php

function xml_attribute($object, $attribute)
{
    if(isset($object[$attribute]))
        return (string) $object[$attribute];
}


$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://api.allocine.fr/xml/search?q=".$search."&partner=1&json=0&profile=medium&count=50&page=1");

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$contenu = curl_exec($curl);

$xml = new SimpleXMLElement($contenu);

echo '<ul>'."\n";
foreach($xml->movie as $v)
{
$code = xml_attribute($v, 'code');

if ($v->title)
echo '<li><a href="fiche.php?film='.$code.'" target="_blank">'.$v->title.' - '.$code.'</a></li>';
else
echo '<li><a href="fiche.php?film='.$code.'" target="_blank">'.$v->originalTitle.' - '.$code.'</a></li>';

}
echo '</ul>'."\n";

// echo '<hr />'."\n";

// echo "<pre>";
// print_r($xml);
// echo "</pre>";

?>
</body>
</html>
################################################

et la fiche d'un film:
################################################
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>
<body>
<p>
<form action="" method="get">
<?php
$film = !empty($_GET['film']) ? $_GET['film'] : '';
?>
rechercher = <input type="text" name="film" value="<?php echo $film; ?>" /><input type="submit" value="ok" />
</form>
</p>
<h1>Fiche du film:</h1>
<?php

function xml_attribute($object, $attribute)
{
if(isset($object[$attribute]))
return (string) $object[$attribute];
}

function transforme($time)
{
$heure = floor($time/3600);
$reste = $time%3600;
$minute = floor($reste/60);
return $heure.'h '.$minute.'min';
}



$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://api.allocine.fr/xml/movie?code=".$film."&partner=3&json=0&profile=medium");

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$contenu = curl_exec($curl);

$xml = new SimpleXMLElement($contenu);

echo '<ul>'."\n";

echo '<li>movieType = '.$xml->movieType.'</li>';

echo '<li>originalTitle = '.$xml->originalTitle.'</li>';

echo '<li>title = '.$xml->title.'</li>';

echo '<li>productionYear = '.$xml->productionYear.'</li>';

echo '<li>nationality = ';
for($i=0 ; $i<count($xml->nationality) ; $i++)
echo $xml->nationality[$i].', ';
echo '</li>';

echo '<li>genre = ';
for($i=0 ; $i<count($xml->genre) ; $i++)
echo $xml->genre[$i].', ';
echo '</li>';

echo '<li>runtime = '.transforme($xml->runtime).'</li>';

echo '<li>synopsis = '.$xml->synopsis.'</li>';

echo '<li>synopsisShort = '.$xml->synopsisShort.'</li>';

echo '<li>castingShort - directors = ';
for($i=0 ; $i<count($xml->castingShort->directors) ; $i++)
echo $xml->castingShort->directors[$i].', ';
echo '</li>';

echo '<li>castingShort - actors = ';
for($i=0 ; $i<count($xml->castingShort->actors) ; $i++)
echo $xml->castingShort->actors[$i].', ';
echo '</li>';

$poster = xml_attribute($xml->poster, 'href');
echo '<li>poster = <img src="'.$poster.'" /></li>';

echo '</ul>'."\n";

echo '<hr />';

// echo "<pre>";
// print_r($xml);
// echo "</pre>";

?>
</body>
</html>
################################################

tous les paramétres pour la fiche sont récupérés.
On peut encore travailler la recherche de film.

Mais pour ceux que çà amuse, voila un bon départ

have fun

Commentaire de BlacksAngell le 09/09/2010 08:25:28

Merci pour le script

Je veux savoir comment faire pour récupérer la bande annonce

exemple sur ce site : http://www.days-media.fr/allo/

Commentaire de kamo197 le 06/10/2010 21:51:28

bonjour
comment afficher le paye
dans le sript de cyrhades
merci à toi cyrhades

Commentaire de naruto95150 le 01/11/2010 18:07:45

salut l'aimerait vraiment utiliser se scripte mais malheureusement je ne code pas en JavaScript je demande de l'aide pour me coder un petit truck vite fait qui permet d'arriver sur une page html et d'afficher les info du film écrit dans en text est pas dans un input et sans avoir le menu de recherche sur le cotée voila thx

Commentaire de lkaiman le 02/11/2010 12:33:09

voir ce code: http://www.phpcs.com/code.aspx?ID=52259

Commentaire de mazekni le 18/03/2011 08:10:36

le parser ne fonctionne plus depuis hier !!! quelqu'un aurait-il une idée pour résoudre ce problème ? apparemment allociné a procéder à une mise à jour de ses regex ou un trucs du genre, mais comme je ne m'y connais pas trop en expressions régulières j'aimerais bien qu'un expert s'y penche et nous sauve. Merci d'avance à cette personne

Commentaire de 7AMMOUDA le 03/05/2011 16:59:45

salut Mazekni ,
avez vous trouvez une solution pour votre parser !! jebloque et je pense voir API-ALLOCINE ;)

Commentaire de ns2a le 16/05/2011 17:46:06

Quelques corrections pour que ça fonctionne de nouveau.

Voici les masques:

const PATERN_ID_FILM = '/fichefilm_gen_cfilm=([0-9]*)\.html/';
const PATERN_POCHETTE_FILM = '/src=\'(http:\/\/.*)\'alt/';
const PATERN_TITRE_ORIGINAL_FILM = '/alt=\'(.*)\' \/><\/a>/';
const PATERN_TITRE_FILM = '/fichefilm_gen_cfilm=[0-9]*\.html\'>.*fichefilm_gen_cfilm=[0-9]*\.html\'>(.*)<\/a>/';
const PATERN_INFOS_FILMS = '/<span class="fs11">(.*)<br \/>(.*)<br \/>(.*)<br \/>/';
const PATERN_GENRE = '/Genre :(.*)Dur/';
const PATERN_ANNEE = '/ Année de production :(.*)<\/a><br\/>/';
const PATERN_DUREE = '/Dur.*([0-9]{1,2})h([0-9]{2})min/'; // Bug si ecrit Durée pk ???
const PATERN_NOTE = '/<span class="moreinfo">\(([0-9]{1},[0-9]{1})\)<\/span>/';
const PATERN_DATE_SORTIE_CINE = '/\?week=([0-9]{4}-[0-9]{2}-[0-9]{2})/';
const PATERN_SYNOPSIS = "/Synopsis : <\/span>(.*)<\/p><\/div><\/div><ul id/"; // Bug si chaine de fin plus courte Pk???

Il faut également modifier:

private function minimiserReponse()
{
// on retire tout les espaces et saut de lignes (sauf les espaces unique)
$this->reponseAlloCine = preg_replace('/[\s]{2,}/','',$this->reponseAlloCine);

// on recupere la zone de resultat de la recherche
$debutr = strpos($this->reponseAlloCine, self::DEBUT_RECHERCHE)+strlen(self::DEBUT_RECHERCHE);
$finr = strpos($this->reponseAlloCine, self::FIN_RECHERCHE, $debutr);
$chaine = substr($this->reponseAlloCine, $debutr, $finr-$debutr);
$chaine = preg_replace('/[\f\n\r\t\v]/','',$chaine);

// on se sert des commentaire pour faire un saut de ligne entre chaque film
$separateurFilm = '/\<\!-- \/IsItemWithPoster \? --\>\<\!-- \/ResType --\>\<\!-- \/IsInit\? --\>/';
$chaine = preg_replace($separateurFilm,"\n",$chaine);
// la reponse d'allocine est devenu notre chaine
$this->reponseAlloCine = $chaine;
$this->creerListingResultatRecherche();
}


et

private function minimiserFicheFilm()
{
// on retire tout les espaces et saut de lignes (sauf les espaces unique)
$this->ficheFilmAlloCine = preg_replace('/[\s]{2,}/','',$this->ficheFilmAlloCine);

// on recupere la zone d'affichage
$debutf = strpos($this->ficheFilmAlloCine, self::DEBUT_FICHE)+strlen(self::DEBUT_FICHE);
$finf = strpos($this->ficheFilmAlloCine, self::FIN_FICHE, $debutf);
$chaine = substr($this->ficheFilmAlloCine, $debutf, $finf-$debutf);
// on crée l'attribut de la classe avec la fiche elle même
$chaine = preg_replace('/[\f\n\r\t\v]/','',$chaine);
$this->ficheFilmAlloCine = $chaine;

// c'est ici que sera créé le resultat
self::resultatFicheFilm();
}


Commentaire de ns2a le 16/05/2011 17:51:38

Il y avait également un problème dans le codage décodage du Synopsis (résumé).
Pour régler le problème:

dans private function resultatFicheFilm()

remplacer
$data['synopsis'] = (string) utf8_encode(html_entity_decode( strip_tags($this->synopsis())) );
par
$data['synopsis'] = (string) html_entity_decode( strip_tags($this->synopsis()));

dans private function synopsis()
remplacer
$retour =  utf8_decode($description[1]);
par
$retour =  $description[1];

Commentaire de streamgo le 10/08/2011 21:00:44

merci

Commentaire de DaysMedia le 10/11/2011 20:00:23

Bonsoir, le synopsis et le genre ne fonctionne plus. Allociné s'est refait une santé et là le script est à l'ouest complet... Quelqu'un a trouvé ?
Merci

Commentaire de DaysMedia le 10/11/2011 20:09:21

Toujours personne, allociné a changer une bonne partie du script :(

Commentaire de ns2a le 30/11/2011 13:19:28

Ci-joint les nouveaux masques.

const PAGE_RECHERCHE = 'http://www.allocine.fr/recherche/1/?q=';
const DEBUT_RECHERCHE = '<table class="totalwidth noborder purehtml">';
const FIN_RECHERCHE = '</table>';

const PAGE_FICHE = 'http://www.allocine.fr/film/fichefilm_gen_cfilm=';
const DEBUT_FICHE = '<div class="breadcrumbs">';
const FIN_FICHE = 'Critiques Presse</span>';
const PAGE_ACTEURS = 'http://www.allocine.fr/film/casting_gen_cfilm=';
const DEBUT_ACTEURS = 'itemprop="actors"';
const FIN_ACTEURS = '<h2 class="tt_r22">Production</h2>';

// N'hÚsitez pas a ameliorer les patterns ils sont vraiment mal ÚtudiÚ (enfin pas ÚtudiÚ du tout ^^)
const PATERN_ID_FILM = '/fichefilm_gen_cfilm=([0-9]*)\.html/';
const PATERN_POCHETTE_FILM = '/src=\'(http:\/\/.*)\'alt/';
const PATERN_TITRE_ORIGINAL_FILM = '/alt=\'(.*)\' \/><\/a>/';
const PATERN_TITRE_FILM = '/fichefilm_gen_cfilm=[0-9]*\.html\'>.*fichefilm_gen_cfilm=[0-9]*\.html\'>(.*)<\/a>/';
const PATERN_INFOS_FILMS = '/<span class="fs11">(.*)<br \/>(.*)<br \/>(.*)<br \/>/';
const PATERN_GENRE = '/<span itemprop="genre">(.*)<\/span><\/span>/U';
const PATERN_INTERDIT = '/span class="insist"><span class="insist">(.*)<\/span>/U';
const PATERN_ANNEE = '/ AnnÚe de production :(.*)<\/a><br\/>/';
const PATERN_DUREE = '/<span itemprop="duration" content="PT([0-9]{1,2})H([0-9]{2})M/';
const PATERN_NOTE = '/<span class="note">([0-9]{1},[0-9]{1})<\/span>/';
const PATERN_DATE_SORTIE_CINE = '/<span itemprop="datePublished" content="([0-9]{4}-[0-9]{2}-[0-9]{2})"/';
const PATERN_SYNOPSIS = '/<p itemprop="description">(.*)<\/p><\/div>/U';
const PATERN_ACTORS = '/<span itemprop="name">(.*)<\/span><\/a>/U';

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

aide pour creation de gestion de divx [ par karen ] bonjour a tous j'essai de cree en vain un script me permettant de gere mes divxen fait je veut faire ceciune partie administration avec pass (ca j'ai comment recuperer le code source du parser allocine pour mettre sur mon site [ par supra80 ] supra80 bonjour je viens de telecharger le parser allocine mais je ces pas comment il marche,je voudrais recuperer le code source pour le mettre sur m recuperation des données dans un tableau [ par ubela ] Bonjour à tous, J'ai un pb de récupération de données. Bien évidemment, je débute Dans le POO. J'ai récupéré un bout de code qui fctionne bien. Il par You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near [ par trasher ] Bonjour, J'ai ajouté un champ à ma requête SQL, si je le supprime, je n'ai pas l'erreur et si je le rajoute, j'ai l'erreur, je comprends pas. Le cha parser un .txt [ par nbpro ] salut, je voudrai savoir comment lire un .txt en php je veut ciblé la 2 ligne troisième mots séparé par un espace parser un txt en xml [ par bachnab ] bonsoir, bon je vais être précis et claire mon problème est le suivant : j'ai des documents txt dont la format est unique : champ1, champ2, champ3. parser un fichier doc en php [ par kayoo ] je n' arrive pas à parser un fichier de type word en php, le but est de réaliser un moteur de recherche sur le fichier .merci HLP javascript et PHP [ par alphacrash ] &lt;script&gt;function image() { i = document.divx.liste.selectedIndex; if (i == 0) return; url = document.divx.liste.options[i].value; document.jaque probleme de mise en forme d'une base sql [ par stick059 ] voila, j'ai un pb avec sql :J'ai une base de donnée de film.Dans cette base, il y a plusieurs champ acteurs, exemple :si un film comporte 3 acteurs, j histoire d'appostrophes [ par angelique ] Bonjour,Soit une table films avec comme champs film_id et film_titre.Lorsque j'interroge ma base de donnée comme suit :select film_id from films where


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,122 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales