Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/09/2011, 18h03   #1
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
Par défaut Utilisation de la fonction sscanf()

Bonjour,

dans le but de découper une chaine de caractère, et récupérer par exemple le mot avant le 3eme tiret, on m'a parlé de la fonction sscanf mais j'ai un peu de mal a m'en servir

Code :
$n = sscanf("24 Lewis Carroll Magic png", "%d %s %s %s %s", $num, $first, $last, $other, $ext);
m'affiche bien separement $num, $first, $last, ...

mais par contre
Code :
$n = sscanf("24-Lewis-Carroll-Magic.png", "%d-%s-%s-%s.%s", $num, $first, $last, $other, $ext);
(avec des tirets) ne marche pas, auriez vous SVP une idée de comment s'en servir avec des tirets??

Merci
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 18h17   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
c'est normale le - n'est pas compris dans %s
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 18h56   #3
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
Bonjour stealth35, et merci pour la réponse

y a t-il un moyen de contourner le problème??
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 19h10   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 808
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 808
Points : 1 523
Points : 1 523
Tu peux le faire en passant deux fois par la fonction explode().

Code php :
1
2
3
$str = 'un-test-de-fichier.jpg';
list($nom_fichier,$ext) = explode('.',$str);
list($un,$deux,$trois,$quatre) = explode('-',$nom_fichier);
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 19h26   #5
Membre du Club
 
Inscription : novembre 2007
Messages : 757
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 757
Points : 44
Points : 44
Citation:
Tu peux le faire en passant deux fois par la fonction explode()
le problème c'est que le nombre de tirets qu'il peut y avoir avant le point est variable... mais tu me donnes une idée géniale
Code :
1
2
3
4
5
6
$str = 'un-test-de-fichier-num-je-ne-sais-combien.jpg';
list($nom_fichier,$ext) = explode('.',$str);
$mots = explode('-', $nom_fichier);
$num = count($mots) - 3; // si je veux recuperer le mot avant 3eme dernier tiret
 
echo $mots[$num];
qu'en pensez vous?
redah75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h44.


 
 
 
 
Partenaires

Hébergement Web