Me refuse systématiquement mon caractère fin de chaîne: $Code:
1
2 if (!preg_match('#^[www]+\.[a-zA-Z0-9\-]+\.([a-zA-Z]{2,4})$#',$Variable[$iLangue][19])) {
Version imprimable
Me refuse systématiquement mon caractère fin de chaîne: $Code:
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: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'utiliseCode:
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:
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: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: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:
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 0Code:
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 1Code:
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.