Bonjour,

J'aimerai parser les pages html du site de la fédération française de handball afin d'afficher dans un site perso le classement des équipes.
Pour faire cela j'utilise "simple_html_dom.php" qui est un outil très intéressant.

Voici le code que j'ai dans la page index.php :
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
44
45
46
47
48
49
50
51
52
53
54
 
<DOCTYPE html>
<html lang="fr">
	<head> 
		<meta charset="utf-8">
		<title id="title"> Test HTML Parse </title>
	</head>
	<body>
		<?php
			include('simple_html_dom.php');
 
			$html = file_get_html("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");
			/*$html = new simple_html_dom();
			$html->load_file("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");*/
			$toDisplay = "";
			echo "<h1>Classement de LNH</h1>";
 
			//Récupération des informations du classement
			foreach($html->find('div[class=lgClassmt]') as $e){
				//Le tableau
				$teamRanking = $e->children(1);
				$temp = "";
				$i = 0;
 
				foreach($teamRanking->find('td') as $ee){
					$temp .= $ee->plaintext . "$$$$";
					$i++;
					if($i == 10){
						$data = explode("$$$$", $temp);
						$toDisplay .= "<li>";
						$toDisplay .= $data[0] . " -- " . $data[1] . " -- " . $data[2] . " -- " . $data[3] . " -- " . $data[4] . " -- " . $data[5] . " -- " . $data[6] . " -- " . $data[7] . " -- " . $data[8] . " -- " . $data[9];
						$toDisplay .= "</li>";
						$temp = "";
						$i = 0;
					}
				}
			}   
 
			//Affichage du classement
			if(empty($toDisplay)){
				echo $html->plaintext;
			}
			else {
				echo "<ul>";
				echo $toDisplay;
				echo "</ul>";
			}
 
			// clean up memory
			$html->clear();
			unset($html);
		?>
	</body>
</html>
Le résultat est bizarre, je vous en affiche seulement une partie :
��}[s�ؾ�s�jm���>�$�I�=�l�cc;qv�r I�@�$�d�:h��3�|�y���y���-ݐ@HK\�|NR� ������������}�Ό���C�to+�f�I$S��j*U��17������j�.+S~�J�; �Qb�볷������c�HQ�����7�+Kz�>&uW�#Q'�ޓ��o��T;���-�Jf�y�혟�5�8�H/��z�~"�<֢ϒҟs��q��Lui�'o�Ϥ#�ߎ��MO�N�1ˆW5I?
Ce qui est encore plus étonnant c'est que si je veux afficher le classement lfh au lieu de lnh, je remplace l'url de l'exemple par cette url 'http://www.ff-handball.org/competitions/championnats-nationaux-mf/lfh/resultats.html' et le résultat fonctionne.

Comme vous pouvez le voir j'ai essayé de deux manière différentes :
1 -
$html = file_get_html("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");

2 -
$html = new simple_html_dom();
$html->load_file("http://www.ff-handball.org/competitions/championnats-nationaux-mf/lnh/resultats.html");

Avez vous des idées sur le fait que pour l'url de la lnh ça me renvoie une liste de caractères spéciaux ?

Je vous remercie par avance.

PS : j'ai aussi essayé avec curl, j'ai le même problème ...