Bonjour à tous,

désolé pour le titre peu explicite, mais je ne savais pas trop quoi mettre.

Je souhaite récupérer le nombre de vues d'une vidéo sur dailymotion, et aucun outils (après pas mal de recherche) ne semble pouvoir donner cette info.

J'ai donc décidé de lire le code source de la page ou se trouve la vidéo pour pouvoir récupérer ce nombre.

Voila à quoi ressemble le code source :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 <div class="dmco_box left_title">
                        <h2 class="dmco_title"><a href="/fr/channel/sport">Accéder à la page Sports et Extrême »</a></h2>
                      </div>
                      <div class="dmco_box right_title">
                        <h2 class="dmco_title"><div class="dmco_html dmpi_video_stats video_stats" id="top_video_stats"><span class="optional_stat"><span class="dmco_simplelink popup_ie_width width_600 linkable ajax_link  action:popup" hf="2f706167656974656d2f766964656f2f6368617274733f726571756573743d253246766964656f25324678626764703326616a61785f726e643d34633033366464633736663439" title="8 743 vues"><b class="video_views_value">8 743</b> vues. </span><span class="sep"> | </span></span><span class="optional_stat"><b class="video_comments_value">1</b> com.<span class="sep"> | </span></span><span class="optional_stat"><b class="video_bookmarks_value">6</b> fav.</span></div></h2>
 
                      </div>
                    </div>
Avec du code avant et après bien sur.

Voila mon code pour récupérer ce nombre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
		$url="http://www.dailymotion.com/video/xbgdp3_world-heli-challenge_sport#from=embed?start=0";
 
		$nom_fichier="pageVideo" ;
 
		$code_html=file_get_contents($url);
 
		file_put_contents($nom_fichier,$code_html); 
 
		if (!$fp = fopen("pageVideo","r")) 
		{
			echo "Echec de l'ouverture du fichier";
		}
		else 
		{
			$trouve = false;
 
			$nb = 0;
			while(!feof($fp)) 
			{
				// On récupère une ligne
				$ligne = fgets($fp, 255);
 
 
				if(preg_match("#vues#", $ligne))
				{		
					echo '<p>'. $ligne .'</p>';
 
					$ligneS = str_replace(' ', '', $ligne);
 
					preg_match('#([0-9]+vues)#', $ligneS, $nb);
 
 
					$nb = str_replace('vues', '', $nb[1]);
				}
			}
			fclose($fp); // On ferme le fichier
 
			echo 'le nombre est : '. $nb;
		}
 
	?>
Jusqu'ici tout va bien, le code fonctionne.

Ce que je voudrai maintenant c'est savoir comment être sur qu'a la lecture du code source, la ligne contenant l'info "title="8 743 vues" ne soit pas coupée, ce qui empêcherai le code de fonctionner?

Si je met aucune valeur dans la fonction fgets, suis-je sur que la ligne sera lue comme moi je vois le code source ou peut-elle être coupée?


Merci.


Cordialement.