Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

traitement d'une chaine en PHP

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
sim100
WRInaute accro
WRInaute accro

Inscrit le: 02 Fév 2003
Messages: 1112
Localisation: Thailande

URL permanente de ce messagePosté 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
 
sim100 Visiter le site web du posteur
Krysss
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 02 Fév 2007
Messages: 137
Localisation: Montpellier

URL permanente de ce messagePosté 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);
 
Krysss Visiter le site web du posteur
rog
WRInaute accro
WRInaute accro

Inscrit le: 21 Sep 2006
Messages: 1662
Localisation: sapucaia do sul (RS)

URL permanente de ce messagePosté 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
 
rog Visiter le site web du posteur
Krysss
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 02 Fév 2007
Messages: 137
Localisation: Montpellier

URL permanente de ce messagePosté le : Jeu Juin 14, 2007 16:16    Sujet du message: traitement d'une chaine en PHP

Bah mon substr ne vous plait pas ?
 
Krysss Visiter le site web du posteur
sim100
WRInaute accro
WRInaute accro

Inscrit le: 02 Fév 2003
Messages: 1112
Localisation: Thailande

URL permanente de ce messagePosté 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
 
sim100 Visiter le site web du posteur
Krysss
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 02 Fév 2007
Messages: 137
Localisation: Montpellier

URL permanente de ce messagePosté 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 Visiter le site web du posteur
Krysss
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 02 Fév 2007
Messages: 137
Localisation: Montpellier

URL permanente de ce messagePosté le : Jeu Juin 14, 2007 16:35    Sujet du message: traitement d'une chaine en PHP

A tout hazard, http://www.site.com/topic-whitburn-rogue-tradesmen-688-32, c'est ça les 57 caracteres...
 
Krysss Visiter le site web du posteur
Bh@Mp0
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 18 Jan 2005
Messages: 245

URL permanente de ce messagePosté 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 ...
 
Bh@Mp0 Visiter le site web du posteur
Krysss
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 02 Fév 2007
Messages: 137
Localisation: Montpellier

URL permanente de ce messagePosté 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
 
Krysss Visiter le site web du posteur
unpassant
WRInaute impliqué
WRInaute impliqué

Inscrit le: 15 Fév 2005
Messages: 475
Localisation: Normandie

URL permanente de ce messagePosté 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.
 
unpassant Visiter le site web du posteur
sim100
WRInaute accro
WRInaute accro

Inscrit le: 02 Fév 2003
Messages: 1112
Localisation: Thailande

URL permanente de ce messagePosté le : Jeu Juin 14, 2007 18:34    Sujet du message: ok

OK merci
Le code de Bh@Mp0 marche bien

Merci encore
 
sim100 Visiter le site web du posteur
unpassant
WRInaute impliqué
WRInaute impliqué

Inscrit le: 15 Fév 2005
Messages: 475
Localisation: Normandie

URL permanente de ce messagePosté le : Jeu Juin 14, 2007 18:51    Sujet du message: traitement d'une chaine en PHP

Ha tien je ne connaissai pas stRRpos ^^
 
unpassant Visiter le site web du posteur
rog
WRInaute accro
WRInaute accro

Inscrit le: 21 Sep 2006
Messages: 1662
Localisation: sapucaia do sul (RS)

URL permanente de ce messagePosté 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
 
rog Visiter le site web du posteur
Bh@Mp0
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 18 Jan 2005
Messages: 245

URL permanente de ce messagePosté 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 Smile)

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 Very Happy
 
Bh@Mp0 Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort