Bonjour,
Comment savoir si une page ouverte par fopen existe ou non ?
Bonjour,
Comment savoir si une page ouverte par fopen existe ou non ?
En fonction du parametre associé !
plus d'infos : fopen()
exp:Envoyé par RideKick
$file = fopen("http://www.site.com/file1.php", "r");Comment savoir si le fichier (http://www.site.com/file1.php) existe ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if (fopen("http://www.site.com/file1.php", "r")){ echo "c'est cool"; } else { echo "Le fichier n'existe pas ou vous n'avez pas les droits necessaires !"; }
Lorsque le fichier n'existe pas, je reçoit un Warning,Envoyé par RideKick
est-ce qu'il n'y a pas une autre maniere pour verifier l'existance d'un fichier ?
vérifie si c'est un fichier avant de l'ouvrir dans ce cas non?
va voir ca is_file
mon pb c'est que l'URL n'est pas pour un fichier (comme http://site.fr/page.html) mais de ce type: http://www.site.fr/contenu_5.(chemin virtuel)Et http://www.site.fr/contenu_5 n'est pas un fichier mais un document qui existe.Envoyé par ozzmax
Je ne suis pas sur que ca marche mais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if (@fopen("http://www.site.com/file1.php", "r")){ echo "c'est cool"; } else { echo "Le fichier n'existe pas ou vous n'avez pas les droits necessaires !"; }
Bonjour,
Autre prossibilité: utiliser file_exists
ou encore voici une petite fonction trouvé sur php.net. Elle utilise fsockopen
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 function url_exists($url) { $a_url = parse_url($url); if (!isset($a_url['port'])) $a_url['port'] = 80; $errno = 0; $errstr = ''; $timeout = 30; if(isset($a_url['host']) && $a_url['host']!=gethostbyname($a_url['host'])){ $fid = fsockopen($a_url['host'], $a_url['port'], $errno, $errstr, $timeout); if (!$fid) return false; $page = isset($a_url['path']) ?$a_url['path']:''; $page .= isset($a_url['query'])?'?'.$a_url['query']:''; fputs($fid, 'HEAD '.$page.' HTTP/1.0'."\r\n".'Host: '.$a_url['host']."\r\n\r\n"); $head = fread($fid, 4096); $head = substr($head,0,strpos($head, 'Connection: close')); fclose($fid); if (preg_match('#^HTTP/.*\s+[200|302]+\s#i', $head)) { $pos = strpos($head, 'Content-Type'); return $pos !== false; } } else { return false; } }
J'ai eu le même problème iag1980.
La commande de ratapapa fonctionne à merveille.
Merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager