Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1450 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Supprimer le dernier caractère d'une chaine

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Supprimer le dernier caractère d'une chaine

n°883880
compuman10​1
Posté le 27-10-2004 à 14:14:10  profilanswer
 

Je voudrai supprimer le dernier caractère d'une chaine mais impossible de me souvenir de la fonction :(
 
Svp !


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
mood
Publicité
Posté le 27-10-2004 à 14:14:10  profilanswer
 

n°883888
Xav_
The only one...
Posté le 27-10-2004 à 14:20:47  profilanswer
 

je connais pas de fonction toute faite, mais bon ça prend 2 lignes à faire:
- un strleng pour savoir la taille de tachaine ($nb)
- un substr pour prendre une sous-chaine de longueur "$nb-1" à partir du caractère "0"
 
Et encore qu'en une seule ligne avec un substr de longueur "strlen($ta_chaine)-1"...
 
moi c'est comme ça que je m'y prendrais :)


Message édité par Xav_ le 27-10-2004 à 14:21:07

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°883897
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 14:22:14  profilanswer
 

compuman101 a écrit :

Je voudrai supprimer le dernier caractère d'une chaine mais impossible de me souvenir de la fonction :(


 
Vu que ça doit être pour effacer un espace ou un retour chariot, utilise la fonction rtrim() prévue pour :
http://fr2.php.net/manual/fr/function.rtrim.php

n°883898
naceroth
Posté le 27-10-2004 à 14:23:24  profilanswer
 

Si tu connais le type de caractère à virer, rtrim fera l'affaire.

n°883899
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 14:23:24  profilanswer
 

Xav_ a écrit :


Et encore qu'en une seule ligne avec un substr de longueur "strlen($ta_chaine)-1"...
 
moi c'est comme ça que je m'y prendrais :)


et comme ça si la chaine est vide, ça fait un superbe plantage  :sarcastic:


Message édité par smaragdus le 27-10-2004 à 14:24:17
n°883905
compuman10​1
Posté le 27-10-2004 à 14:28:10  profilanswer
 

C'est pour supprimer un Quote à la fin d'une ligne.


Message édité par compuman101 le 27-10-2004 à 14:29:07

---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
n°883912
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 14:33:49  profilanswer
 

compuman101 a écrit :

C'est pour supprimer un Quote à la fin d'une ligne.


 
utilise donc rtrim avec l'option charlist.

n°883920
compuman10​1
Posté le 27-10-2004 à 14:43:46  profilanswer
 

Désolé je me suis planté c'est une virgule


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
n°883925
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 14:47:24  profilanswer
 

Même réponse

n°883926
compuman10​1
Posté le 27-10-2004 à 14:48:46  profilanswer
 

Oui je viens de m'en rendre compte avec la doc :)
Merci bcp


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
mood
Publicité
Posté le 27-10-2004 à 14:48:46  profilanswer
 

n°883928
Hermes le ​Messager
Breton Quiétiste
Posté le 27-10-2004 à 14:51:23  profilanswer
 

Smaragdus a écrit :

et comme ça si la chaine est vide, ça fait un superbe plantage  :sarcastic:


 
@

n°883942
compuman10​1
Posté le 27-10-2004 à 14:58:44  profilanswer
 

l'option charlist ne répond pas à ce que je souhaite en fait puisqu'elle supprime tous les caractères de la chaine alors que je souhaite supprimer uniquement le dernier :(
 
Il me semblait avoir vu une fois une fonction ou l'on pouvait mettre en parametre -X et ca enlevait les derniers X caractères


---------------
Comparez DVD Vierges, Graveurs de DVD et Boutiques en ligne
n°883947
Hermes le ​Messager
Breton Quiétiste
Posté le 27-10-2004 à 15:02:00  profilanswer
 

compuman101 a écrit :

l'option charlist ne répond pas à ce que je souhaite en fait puisqu'elle supprime tous les caractères de la chaine alors que je souhaite supprimer uniquement le dernier :(
 
Il me semblait avoir vu une fois une fonction ou l'on pouvait mettre en parametre -X et ca enlevait les derniers X caractères


 
Une solution t'a été donnée...  :o  

n°883948
KangOl
Profil : pointeur
Posté le 27-10-2004 à 15:02:00  profilanswer
 

c'est pas pour dire mais pour juste supprimer le dernier caractère d'une chaine il y a ca :

Code :
  1. substr($chaine,0,-1);


 
et meme avec une chaine vide ca passe :o (peut etre une notice)


---------------
Nos estans firs di nosse pitite patreye...
n°883949
Hermes le ​Messager
Breton Quiétiste
Posté le 27-10-2004 à 15:02:24  profilanswer
 

KangOl a écrit :

c'est pas pour dire mais pour juste supprimer le dernier caractère d'une chaine il y a ca :

Code :
  1. substr($chaine,0,-1);


 
et meme avec une chaine vide ca passe :o (peut etre une notice)


 
clair... et encore une fois : @


Message édité par Hermes le Messager le 27-10-2004 à 15:02:42
n°883958
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 15:09:23  profilanswer
 

compuman101 a écrit :


Il me semblait avoir vu une fois une fonction ou l'on pouvait mettre en parametre -X et ca enlevait les derniers X caractères


 
En Perl, il y a la fonction chop(). Trouve l'équivalent en PHP.
 
Mais sinon, tu veux faire quoi à la base ? Exploser une chaine contenant des tokens ? Dans ce cas, utilise directement explode().
 
Quant à ceux qui conseillent le "@" : vive la "programmation propre" version PHP.

n°883970
Hermes le ​Messager
Breton Quiétiste
Posté le 27-10-2004 à 15:13:35  profilanswer
 

Smaragdus a écrit :


 
Quant à ceux qui conseillent le "@" : vive la "programmation propre" version PHP.


 
Retourne jouer aux billes toi et ton <script langage="javascript'> ...
 
Le @ dans ce cas précis est pour éviter une NOTICE comme expliqué plus haut. Ce n'est pas une erreur... Et puis au pire, rien ne l'empêche de faire un if (strlen($truc) == 0)...

n°883977
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 15:19:36  profilanswer
 

Hermes le Messager a écrit :

Retourne jouer aux billes toi et ton <script langage="javascript'> ...


 
[:rofl] [:rofl] [:rofl] [:rofl]  
Le mec qui te ressort un truc d'un autre topic d'il y a 1 mois  :lol:  
Trop fort ce HLM...  :sarcastic:  
 
C'est pas d'un mec qui emploie des "@" à tout va qui a une chance de m'apprendre la programmation propre...

n°883979
kadreg
profil: Utilisateur
Posté le 27-10-2004 à 15:20:57  profilanswer
 


 
Sors de là, vil trolleur :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°883981
Profil sup​primé
Posté le 27-10-2004 à 15:22:27  answer
 

Smaragdus a écrit :


 
Quant à ceux qui conseillent le "@" : vive la "programmation propre" version PHP.

:heink:

n°883988
naceroth
Posté le 27-10-2004 à 15:26:40  profilanswer
 

Smaragdus a écrit :

En Perl, il y a la fonction chop(). Trouve l'équivalent en PHP.


 
Attention, l'équivalent n'est pas la fonction chop() de php :)

n°883993
KangOl
Profil : pointeur
Posté le 27-10-2004 à 15:35:18  profilanswer
 

apres tests, substr ne revois pas de notice a ceci

Code :
  1. substr("",0,-1);


---------------
Nos estans firs di nosse pitite patreye...
n°884004
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 15:55:07  profilanswer
 

Hermes le Messager a écrit :

Tiens, ya l'aut connard qui veut nous apprendre le PHP après avoir essayé le JS , le C++ etc...


 
:sarcastic:

n°884008
fabien
Vive la super 5 !
Posté le 27-10-2004 à 15:58:18  profilanswer
 

Hermes le Messager a écrit :

Retourne jouer aux billes toi et ton <script langage="javascript'> ...
 
Le @ dans ce cas précis est pour éviter une NOTICE comme expliqué plus haut. Ce n'est pas une erreur... Et puis au pire, rien ne l'empêche de faire un if (strlen($truc) == 0)...


ben il a raison, ca fait pas trés jolie de mettre un @, ca fait un peu bricolage :/
Comme tu le dis, vaut mieux mettre un test.


---------------
Découvre le HFRcoin ✈ - smilies
n°884009
KangOl
Profil : pointeur
Posté le 27-10-2004 à 15:58:34  profilanswer
 

bin je ne vois pas en quoi utiliser le @ c'est mal programmer [:spamafote]


---------------
Nos estans firs di nosse pitite patreye...
n°884012
fabien
Vive la super 5 !
Posté le 27-10-2004 à 16:01:39  profilanswer
 

KangOl a écrit :

bin je ne vois pas en quoi utiliser le @ c'est mal programmer [:spamafote]

ben ca cache TOUTES les erreurs, donc le jour ou t'aura une erreur importante, ben tu la verra pas.
et accesoirement, ca fait pas trés jolie de voir des @ un peu partout.
 


---------------
Découvre le HFRcoin ✈ - smilies
n°884013
naceroth
Posté le 27-10-2004 à 16:01:41  profilanswer
 

KangOl a écrit :

bin je ne vois pas en quoi utiliser le @ c'est mal programmer [:spamafote]


 
Ca dépend comment il est utilisé. Quand tu vois le nombre de script à avoir des trucs du genre

Code :
  1. @mysql_query(...);


 
Ouais, y a un problème :)

n°884021
KangOl
Profil : pointeur
Posté le 27-10-2004 à 16:05:21  profilanswer
 

le '@' sert juste a ce que la fonction dont il est préfixé n'affiche pas les erreurs qui peuvent survenir lors de son exécution.
après si tu testes pas la valeur retournée c'est un autre problème...


---------------
Nos estans firs di nosse pitite patreye...
n°884030
fabien
Vive la super 5 !
Posté le 27-10-2004 à 16:08:46  profilanswer
 

KangOl a écrit :

le '@' sert juste a ce que la fonction dont il est préfixé n'affiche pas les erreurs qui peuvent survenir lors de son exécution.
après si tu testes pas la valeur retournée c'est un autre problème...


le probleme avec le @, c'est que dans des cas ca fait partir le message d'erreur mais ca corrige pas le probleme, comme parcourir des ligne d'un tableau qui n'existe pas.


---------------
Découvre le HFRcoin ✈ - smilies
n°884045
smaragdus
whores, drugs & J.S. Bach
Posté le 27-10-2004 à 16:12:54  profilanswer
 

Fabien a écrit :

le probleme avec le @, c'est que dans des cas ca fait partir le message d'erreur mais ca corrige pas le probleme, comme parcourir des ligne d'un tableau qui n'existe pas.


 
Oui d'autant plus que cette manie à mettre des '@' partout finit par cacher des effets sournois quand le script commence à être important. :jap:

n°884046
naceroth
Posté le 27-10-2004 à 16:13:07  profilanswer
 

KangOl a écrit :

le '@' sert juste a ce que la fonction dont il est préfixé n'affiche pas les erreurs qui peuvent survenir lors de son exécution.
après si tu testes pas la valeur retournée c'est un autre problème...


 
C'est prendre le problème à l'envers ça, si tu traite l'erreur, php n'affiche rien non plus, mais ton erreur est gérée.
 
Le "@" pour la plupart, c'est ce que tu dis : on affiche pas, donc pas de problèmes, y a pas d'erreurs. Perso, je vois pas l'intérêt de masquer une erreur/notice en développement, et si ça arrive en prod, c'est que le problème est ailleurs :)

n°884049
Sebastien
Posté le 27-10-2004 à 16:14:13  profilanswer
 

Donc cache le message d'erreur c'est pas un code propre tout simplement :)

n°884059
Xav_
The only one...
Posté le 27-10-2004 à 16:23:07  profilanswer
 

Smaragdus a écrit :

et comme ça si la chaine est vide, ça fait un superbe plantage  :sarcastic:


 
ben oui mais si tu lis tout mon post j'ai conseillé de faire quand meme le strlen avant, donc s'il veut du propre, il test que la longueur est >=1 avant de la tronquer, mais quand il parle de supprimer le dernier caractère d'une chaine, ça suppose qu'elle en ai un de caractère, et ça il doit surement le cheker à la validation du formulaire ou autre phase de récupération de l'info (enfin j'espère).
 
Concernant la polémique du "@":
Le @ masque et ne corrige pas, ça c'est sur, mais par exemple un fopen qui trouve pas le fichier, ben tu fous un @ pour pas qu'il t'affiche l'erreur, par contre tu gère derriere que s'il trouve rien dans le fichier (vu qu'il y a pas de fichier) ben tu affiche que le fichier n'était pas présent, et pour moi c'est propre...
Evidemment, pour avoir le dernier mot, tu va me dire qu'il y a des is_file et autre file_exist, mais moi je parle d'un fopen d'un fichier distant, et j'ai rien trouvé de mieux que masquer les erreurs du fopen et fgets, et d'afficher que le fichier était absent si le fgets retourne un chaine nulle.


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°884184
SomeBugsIn​Me
life suxx
Posté le 27-10-2004 à 17:44:24  profilanswer
 

Effectivement, il ne faut pas abuser du @ mais parfois il est utile.
Dans tous les cas il faut vérifier le retour d'une fonction qui peut planter. Y'a un tas de "boulets" qui ne vérifient pas les retours de mysql_query par exemple  :sarcastic:  
 
 
Dans le cas présent, un test avec strlen() au préalable est AMHA le plus propre. cf le post de Xav_  

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Supprimer le dernier caractère d'une chaine

 

Sujets relatifs
[a supprimer] EXCEL : formule à 5 conditionellesacces tableau multidimensionnel (voir dernier post)
Crypter code phpPHP et MySQL, Warning bizzare
Aide Base de donnée Php/TxtPHP upload_max_filesize => modifier valeur par default
[PHP]upload sur site distant[xml+PHP] parser xml avec php, petit pb: ça n'affiche que des chiffres
VBScript || Probleme de variable et chaine de caractere 
Plus de sujets relatifs à : [PHP] Supprimer le dernier caractère d'une chaine


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR