|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
sim100 WRInaute accro

Inscrit le: 02 Fév 2003 Messages: 1112 Localisation: Thailande
|
Posté le : Jeu Juin 14, 2007 15:26 Sujet du message: traitement d'une chaine en PHP |
|
|
Bonjour
Je voudrais sur par exemple cette chaine de caractère:
-http://www.site.com/topic-whitburn-rogue-tradesmen-688-32-3
enlever la fin à partir du tiret, soit dans ce cas la enlever le -3 pour qu'il reste
-http://www.site.com/topic-whitburn-rogue-tradesmen-688-32
Autre exemple, si j'ai
-http://www.site.com/topic-whitburn-rogue-tradesmen-688-32-12
il faut enlever le -12 pour qu'il reste
-http://www.site.com/topic-whitburn-rogue-tradesmen-688-32
Voila, y a t'il une petite fonction toute simple?
Merci pour l'aide |
|
| |
|
 |
Krysss WRInaute occasionnel

Inscrit le: 02 Fév 2007 Messages: 137 Localisation: Montpellier
|
Posté le : Jeu Juin 14, 2007 15:59 Sujet du message: traitement d'une chaine en PHP |
|
|
| $sRestant = substr("http://www.site.com/topic-whitburn-rogue-tradesmen-688-32-3", 1, 57); |
|
| |
|
 |
rog WRInaute accro

Inscrit le: 21 Sep 2006 Messages: 1662 Localisation: sapucaia do sul (RS)
|
Posté le : Jeu Juin 14, 2007 16:14 Sujet du message: traitement d'une chaine en PHP |
|
|
c'est exactement le genre de fonction qui manque en php (du moins 4XX)
en plus celle qui te donne la position de la dernière occurence est buggée
un explode('-'
et un implode('-' sur count -1 devrait etre fiable
rog |
|
| |
|
 |
Krysss WRInaute occasionnel

Inscrit le: 02 Fév 2007 Messages: 137 Localisation: Montpellier
|
Posté le : Jeu Juin 14, 2007 16:16 Sujet du message: traitement d'une chaine en PHP |
|
|
| Bah mon substr ne vous plait pas ? |
|
| |
|
 |
sim100 WRInaute accro

Inscrit le: 02 Fév 2003 Messages: 1112 Localisation: Thailande
|
Posté le : Jeu Juin 14, 2007 16:17 Sujet du message: ouai |
|
|
Krysss l'URL n'est jamais la même, elle peut être plus longue
donc le 57 est faussé!
Pour rog, tu as un exemple d'utilisation de ta fonction?
Merci |
|
| |
|
 |
Krysss WRInaute occasionnel

Inscrit le: 02 Fév 2007 Messages: 137 Localisation: Montpellier
|
Posté le : Jeu Juin 14, 2007 16:33 Sujet du message: traitement d'une chaine en PHP |
|
|
| ben c'etait pas précisé dans les specs... |
|
| |
|
 |
Krysss WRInaute occasionnel

Inscrit le: 02 Fév 2007 Messages: 137 Localisation: Montpellier
|
|
| |
|
 |
Bh@Mp0 WRInaute occasionnel

Inscrit le: 18 Jan 2005 Messages: 245
|
Posté le : Jeu Juin 14, 2007 16:42 Sujet du message: traitement d'une chaine en PHP |
|
|
| Code: |
| substr($string, 0, strrpos($string, "-")); |
Je vois pas en quoi strrpos() serait pas fiable ... |
|
| |
|
 |
Krysss WRInaute occasionnel

Inscrit le: 02 Fév 2007 Messages: 137 Localisation: Montpellier
|
Posté le : Jeu Juin 14, 2007 16:45 Sujet du message: traitement d'une chaine en PHP |
|
|
| Non elle est pas buggée, elle marche très bien que ça soit avec PHP 4 ou 5 |
|
| |
|
 |
unpassant WRInaute impliqué

Inscrit le: 15 Fév 2005 Messages: 475 Localisation: Normandie
|
Posté le : Jeu Juin 14, 2007 18:14 Sujet du message: traitement d'une chaine en PHP |
|
|
A tester :
| Code: |
$fin_url = end(explode("-", $url));
$url = substr($url, 0, strlen($url) - strlen ($fin_url) - 1); |
Edit: Je vais quand meme expliquer le code, première ligne je recupe le chiffre à enlever, puis la seconde je coupe la chaine en faisant la longueur de l'url moin la longueur du chiffre moin 1 pour le tiret. C'est pompeu mais ca devrai marcher, je n'ai pas tester. |
|
| |
|
 |
sim100 WRInaute accro

Inscrit le: 02 Fév 2003 Messages: 1112 Localisation: Thailande
|
Posté le : Jeu Juin 14, 2007 18:34 Sujet du message: ok |
|
|
OK merci
Le code de Bh@Mp0 marche bien
Merci encore |
|
| |
|
 |
unpassant WRInaute impliqué

Inscrit le: 15 Fév 2005 Messages: 475 Localisation: Normandie
|
Posté le : Jeu Juin 14, 2007 18:51 Sujet du message: traitement d'une chaine en PHP |
|
|
| Ha tien je ne connaissai pas stRRpos ^^ |
|
| |
|
 |
rog WRInaute accro

Inscrit le: 21 Sep 2006 Messages: 1662 Localisation: sapucaia do sul (RS)
|
Posté le : Ven Juin 15, 2007 12:18 Sujet du message: traitement d'une chaine en PHP |
|
|
la fonction me retournait la position de la premiere occurence
apres une recherche sur le net, j'ai remarqué que je n'étais pas le seul à rencontrer ce probleme
et si c'etait fiable j'aurait pas été obligé de pondre celle ci pour virus tester
| Code: |
#########################################################################################################################
# the function will retrive the position byte to end the clone gen
function _strrpos($haystack,$needle){
#
if(empty($haystack) || empty($needle))
{
$return = FALSE;
}
else
{
$explode = explode($needle,$haystack);
$size = strlen(end($explode));
$return = strlen($haystack) - ($size);
}
unset($haystack, $needle, $explode, $size);
#
return $return ;
}
#########################################################################################################################
|
rog |
|
| |
|
 |
Bh@Mp0 WRInaute occasionnel

Inscrit le: 18 Jan 2005 Messages: 245
|
Posté le : Ven Juin 15, 2007 12:39 Sujet du message: traitement d'une chaine en PHP |
|
|
Ah bah ça doit être lié à la version de PHP alors, car j'ai jamais eu de problèmes (mais je veux bien te croire )
Sinon, y'a une autre solution en utilisant preg_match() :
| Code: |
| preg_match("|(.*)-([^-]*)|", $string, $match); |
Mais bon, on arrive dans des choses qui servent à rien, même si ça fait plaisir  |
|
| |
|
 |
| |
|
|