Me refuse systématiquement mon caractère fin de chaîne: $
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (!preg_match('#^[www]+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
Me refuse systématiquement mon caractère fin de chaîne: $
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (!preg_match('#^[www]+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
Comment ça "refuse" ?
Au passage [www]c'est "w ou w ou w" donc c'est w tout court
Et pour valider une url, tu as les filtres :
Code : Sélectionner tout - Visualiser dans une fenêtre à part filter_var($chaine, FILTER_VALIDATE_URL)
! Certes, cela fonctionne, mais mon contrôle se fait sur l'url sans 'http://' ==> 'www.w3schools.com', voilà pourquoi j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (filter_var(filter_var($Variable[$iLangue][19], FILTER_SANITIZE_URL), FILTER_VALIDATE_URL) === false) {
Je souhaite comprendre pourquoi mon $ n'est pas accepté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (!preg_match('#^www+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
FILTER_VALIDATE_URL fonctionne sans http ; et même, au pire, il suffit de l'ajouter en début de chaîne.
Tu n'as toujours pas expliqué ton problème avec le $
Rajoute http:// s'il est absent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (filter_var(filter_var($Variable[$iLangue][19], FILTER_SANITIZE_URL), FILTER_VALIDATE_URL) === false) {
Ce que je souhaite c'est tester 'www.w3schools.com' avec mon
Qui fonction sans le $ fin de chaîne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (!preg_match('#^www+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
? Mais pourquoi fonctionne-t-il sans ' $ ' fin de chaîne et pas avec, alors que normalement il doit être présent.
Je ne sais pas ce que tu fais mais chez moi ça fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo preg_match('#^w+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#','www.w3schools.com'); // 1
! TRouvé: Mon URL provient de l'explode d'un textarea.
Si je fais:
Mon code retour est 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo preg_match('#^w+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19]);
Si je fais:
Mon code retour est 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 echo preg_match('#^w+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',trim($Variable[$iLangue][19]));
Bien qu'il n'y ait pas d'espace après mon URL lors de la saisie, apparemment l'explode en rajoute un.
explode n'ajoute pas de données.
Tu avais sûrement plutôt un retour chariot à la fin de ta chaine.
De manière générale, découpe tes traitement quand tu debugues, ça t'aurait permis tout de suite de voir que le problème ne venait pas de la fonction mais des données.
Partager