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 17/07/2011, 16h38   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 81
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 81
Points : 10
Points : 10
Par défaut Je cherche une fonction comme substr

Bonjour à tous !

J'aimerais trouver une fonction comme substr mais qui ne coupe pas les mots à partir d'un nombre de caractères, mais à partir d'un caractère précis. Je vais expliquer mieux que ça.

Prenons ce texte : 22-la-sncf-augmente-ses-tarifs

En fait j'aimerais couper ce texte comme ça : la-sncf-augmente-ses-tarifs

Là on va me dire : il suffit de faire

Code :
1
2
3
4
 
<? php 
substr($texte, 3)
?>
Maintenant si je pose le texte comme ça : 137-la-sncf-augmente-ses-tarifs

Le soucis c'est que ça donnera : -la-sncf-augmente-ses-tarifs

Donc ce que je souhaite, c'est trouver un moyen de demander à une fonction de chercher le premier caractère "-" et de dire "je veux supprimer ce tiret et tout ce qu'il y a avant".

Est-ce que vous aurez une idée de comment faire ?

Merci d'avance !
Romanodi13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 17h10   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 107
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 107
Points : 8 455
Points : 8 455
regarde du coté de sscanf
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 17h15   #3
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

On peut aussi ce servir de la fonction strstr.
Code :
substr( strstr($txt, '-') , 1)
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 17h17   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 81
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 81
Points : 10
Points : 10
Merci pour la proposition !

Mais malheureusement, je ne trouve quasiment rien sur cette fonction et du peu que j'ai réussi à voir ne m'aide pas plus que ça...

Code :
1
2
3
4
5
6
7
8
<?php
// Lecture d'un numéro de série
list($serial) = sscanf("SN/2350001", "SN/%d");
// et la date de fabrication
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Le produit $serial a été fabriqué le : $year-" . substr($month, 0, 3) . "-$day\n";
?>
OU

Code :
1
2
3
4
5
6
7
8
9
<?php
// lit les informations d'auteur, et génère une entrée DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>
Je n'arrive pas à voir un rapport avec ce que je demande... Et y a pas grand chose sur cette fonction sur le net...

EDIT : Eric2a -> Ah... Je vais essayer ça, merci ^^
Romanodi13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 17h24   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2008
Messages : 81
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 81
Points : 10
Points : 10
Oh c'est nickel Eric2a ! Je vais essayer d'analyser ta fonction pour mieux la comprendre ^^ Merci !
Romanodi13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 17h30   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 107
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 107
Points : 8 455
Points : 8 455
Citation:
Envoyé par Romanodi13 Voir le message
Je n'arrive pas à voir un rapport avec ce que je demande... Et y a pas grand chose sur cette fonction sur le net...
c'est une fonction hyper simple

Code :
1
2
3
4
5
6
7
8
$str = '22-la-sncf-augmente-ses-tarifs';
sscanf($str, '%d-%s', $id, $name);
var_dump($id, $name);
 
/*
int(22)
string(27) "la-sncf-augmente-ses-tarifs"
*/
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 06h18   #7
Membre à l'essai
 
Inscription : février 2007
Messages : 18
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 18
Points : 20
Points : 20
Il peut parfois être utile d'exploiter le paramètre limit de la fonction explode...

Code :
list($id, $nom) = explode('-', '22-la-sncf-augmente-ses-tarifs',2);
louperivois est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h01.


 
 
 
 
Partenaires

Hébergement Web