neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 2011
-
24 mai 2009 à 17:24
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
27 mai 2009 à 13:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 mai 2009 à 13:17
normal que fsokopen n'ai pas d'instruction de fermeture en regard ?
thebigboss3
Messages postés14Date d'inscriptionvendredi 10 novembre 2006StatutMembreDernière intervention16 juin 2009 24 mai 2009 à 18:43
Salut Neigedhiver,
Tout d'abord merci pour tes conseils
Je corrigerai ces erreurs dès que je le pourrais
neigedhiver
Messages postés2480Date d'inscriptionjeudi 30 novembre 2006StatutMembreDernière intervention14 janvier 201119 24 mai 2009 à 17:24
Salut,
Il faut mettre une valeur par défaut au timeout, ou alors, le mettre avant le port.
En PHP, les arguments avec des valeurs par défaut doivent OBLIGATOIREMENT être en dernier dans la liste des arguments d'une fonction.
A noter que les variables $errno et $errstr sont les variables que PHP remplira avec les informations de l'erreur, si une erreur survient, et elles seront directement accessibles, puisqu'elles sont passées par référence à la fonction fsockopen()
Il n'est pas nécessaire de les définir (puisque c'est implicite en PHP) ni de leur assigner une valeur (puisque la fonction fsockopen() s'en chargera).
Tu as fait une faute de frappe dans le nom de la variable $errnum
Du coup, ta fonction peut tenir en une ligne de code :
function TestURL($url, $port 80, $timeout 20) {
return (bool) @fsokopen($url, $port, $errnum, $errstr, $timeout);
}
Finalement, cette source mériterait davantage d'être dans les snippets de Codyx plutôt qu'ici...
27 mai 2009 à 13:17
24 mai 2009 à 18:43
Tout d'abord merci pour tes conseils
Je corrigerai ces erreurs dès que je le pourrais
24 mai 2009 à 17:24
Il faut mettre une valeur par défaut au timeout, ou alors, le mettre avant le port.
En PHP, les arguments avec des valeurs par défaut doivent OBLIGATOIREMENT être en dernier dans la liste des arguments d'une fonction.
Voir à ce sujet les exemples 5 & 6 de cette page de doc :
http://fr2.php.net/manual/fr/functions.arguments.php
A noter que les variables $errno et $errstr sont les variables que PHP remplira avec les informations de l'erreur, si une erreur survient, et elles seront directement accessibles, puisqu'elles sont passées par référence à la fonction fsockopen()
Il n'est pas nécessaire de les définir (puisque c'est implicite en PHP) ni de leur assigner une valeur (puisque la fonction fsockopen() s'en chargera).
Tu as fait une faute de frappe dans le nom de la variable $errnum
Du coup, ta fonction peut tenir en une ligne de code :
function TestURL($url, $port 80, $timeout 20) {
return (bool) @fsokopen($url, $port, $errnum, $errstr, $timeout);
}
Finalement, cette source mériterait davantage d'être dans les snippets de Codyx plutôt qu'ici...