Bonjour,

J'utilise la classe "PHP Simple HTML DOM Parser" pour récupérer les informations d'un site distant (après avoir tapé un n° ISBN dans un formulaire) :
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
 
<?php
 
if(!empty($_POST) && !empty($_POST['isbn_search']))
 
{
 
$isbn_search = mysql_real_escape_string($_POST['isbn_search']);
 
require_once 'scripts/simplehtmldom_1_5/simple_html_dom.php';
 
$html = new simple_html_dom();
 
$html->load_file('http://www.site.com/livres/'.$isbn_search.'.html');
 
$titre= $html->find('h1',0)->plaintext;
 
echo'<input type="text" value="'.$titre.'"size="100"/>';
 
?>
Ce code fonctionne dès lors que la page chargée du site distant existe. Mais si la page n'existe pas (en l'occurrence si le site ne référence pas le livre recherché), j'ai les erreurs suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Warning: file_get_contents(http://www.site.com/livres/97822620.html) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\wamp\www\scripts\simplehtmldom_1_5\simple_html_dom.php on line 850
 
Fatal error: Call to a member function find() on a non-object in C:\wamp\www\scripts\simplehtmldom_1_5\simple_html_dom.php on line 879
Pour éviter ces erreurs, je souhaiterais ne pas exécuter la récupération de la page (et afficher un message "livre non référencé") si la page appelé ($html->load_file('http://www.site.com/livres/'.$isbn_search.'.html') n'existe pas. Voyez-vous comment procéder ? Merci.