Test existance caractere dans chaine
Résolu
CyRux
Messages postés
164
Date d'inscription
Statut
Membre
Dernière intervention
-
CyRux Messages postés 164 Date d'inscription Statut Membre Dernière intervention -
CyRux Messages postés 164 Date d'inscription Statut Membre Dernière intervention -
Bonsoir a tous ^^,
Je vous expose ma question :
J'ai un site avec du php qui crée des comptes avec la commande useradd (pour que les gens puissent se créer un accès ftp sur le site)
J'ai donc un shell_exec comme ceci :
Donc en gros Sortie peut valoir "user ... alredy exists" si l'utilisateur existe deja ou un truc du genre "the home directory alredy exists" si l'utilisateur a simplement été suprimé.
Je voudrais que si l'utilisateur existe deja (ci sortie = "user ... already exists" ça affiche un message.
J'ai donc fait un :
sauf que le dernier test ne detecte jamais "directory" ...
j'ai donc fait un
Donc je voudrais savoir pourquoi faire un autres strpbrk ne marche pas ...
Si j'ai n'ai pas été assez clair ou que il manque des details n'hésitez pas a me demander ^^
Merci d'avance
--
Je vous expose ma question :
J'ai un site avec du php qui crée des comptes avec la commande useradd (pour que les gens puissent se créer un accès ftp sur le site)
J'ai donc un shell_exec comme ceci :
$sortie = shell_exec("sudo useradd -m -b /home/ftp -k /home/pi/skel $user -g ftp -p $(mkpasswd $pass) 2>&1");
Donc en gros Sortie peut valoir "user ... alredy exists" si l'utilisateur existe deja ou un truc du genre "the home directory alredy exists" si l'utilisateur a simplement été suprimé.
Je voudrais que si l'utilisateur existe deja (ci sortie = "user ... already exists" ça affiche un message.
J'ai donc fait un :
if (strpbrk($sortie, 'already exists') === FALSE) {qui si "alredy exist" va au deuxieme test qui est
if (strpbrk($sortie, 'directory') === FALSE) {et ci le dernier test est negatif affiche un message d'erreur.
sauf que le dernier test ne detecte jamais "directory" ...
j'ai donc fait un
if (strpos($sortie, 'skel') === FALSE) {et là ça marche ...
Donc je voudrais savoir pourquoi faire un autres strpbrk ne marche pas ...
Si j'ai n'ai pas été assez clair ou que il manque des details n'hésitez pas a me demander ^^
Merci d'avance
--
A voir également:
- Test existance caractere dans chaine
- Test performance pc - Guide
- Caractère ascii - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Caractère spéciaux - Guide
- Test steam deck oled - Guide
1 réponse
Salut,
strpbrk() recherche un ensemble de caractère, autrement dit il va recherche la première occurrence de n'importe quel caractère définie dans le second paramètre.
Donc strpbrk($sortie, 'already exists') va chercher la première occurrence de la lettre 'a' ou de la lettre 'l' ou de la lettre 'r', etc... dans la variable $sortie.
strpos() recherche une chaine ce qui correspond plus à ce que tu souhaites.
Donc strpos($sortie, 'already exists') va chercher la première occurrence de la chaine 'already exists'.
Bonne journée
strpbrk() recherche un ensemble de caractère, autrement dit il va recherche la première occurrence de n'importe quel caractère définie dans le second paramètre.
Donc strpbrk($sortie, 'already exists') va chercher la première occurrence de la lettre 'a' ou de la lettre 'l' ou de la lettre 'r', etc... dans la variable $sortie.
strpos() recherche une chaine ce qui correspond plus à ce que tu souhaites.
Donc strpos($sortie, 'already exists') va chercher la première occurrence de la chaine 'already exists'.
Bonne journée
CyRux
Messages postés
164
Date d'inscription
Statut
Membre
Dernière intervention
3
Merci beacoup ^^ avec strpos ça marche nikel ^^