Affichage jusqu'à un caractère

Affichage jusqu'à un caractère - PHP - Programmation

Marsh Posté le 29-01-2004 à 17:20:09    

Bonjour, voici mon probleme:

Code :
  1. <?
  2. $string="Bonjour le Printemps. Cuicui font les oiseaux par un temps si beau";


Je voudrais afficher string (hoho;)) jusqu'au "." , mais je ne sait pas quelle fonction utiliser ?
strstr ne permettant d'afficher une chaine qu'aprés et non avant un caractére:(
 
merci d'avance:)

Reply

Marsh Posté le 29-01-2004 à 17:20:09   

Reply

Marsh Posté le 29-01-2004 à 22:39:29    

echo ereg_replace('\..*$', '.', $string);

Reply

Marsh Posté le 29-01-2004 à 22:47:20    

tu peux utiliser explode() aussi, je sais pas si c'est très propre, mais je pense que c'est plus léger que ereg_replace (a vrai dire j'en sais trop rien)

Reply

Marsh Posté le 29-01-2004 à 22:57:09    

echo substr($string, 0, strrpos($string, '.'));

Reply

Marsh Posté le 29-01-2004 à 23:08:56    

karamilo a écrit :

echo substr($string, 0, strrpos($string, '.'));

pfiou, heureusement que tu réponds, j'ai eu peur en lisant les 2 autres [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-01-2004 à 01:17:04    

the real moins moins a écrit :

pfiou, heureusement que tu réponds, j'ai eu peur en lisant les 2 autres [:mlc]


bof ... en fait c'est nulle comme solution ..... si la phrase ne contient pas de '.' ca ne fonctionne pas et si elle en contient plusieurs, strpos() va se caler sur le dernier alors c'est vraiment merdique [:mlc].....
 
un ereg() est beaucoup plus sûr  [:spamafote]
 
ou alors il faut utiliser strpos()


Message édité par simogeo le 30-01-2004 à 01:21:47

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-01-2004 à 07:17:45    

the real moins moins a écrit :

pfiou, heureusement que tu réponds, j'ai eu peur en lisant les 2 autres [:mlc]


on est tous là pour apprendre, si tu as une solution meilleure que celle donnée, il faut se signaler, ca sera bénéfique pour tout le monde. Par exemple, j'ai pensé à explode(), c'est surement pas une bonne fonction à utiliser dans ce cas là, ben on pourrait me faire la remarque au lieu de dire "wa c'est trop nul".
 
 :)  :jap:

Reply

Marsh Posté le 30-01-2004 à 09:53:29    

simogeo a écrit :


bof ... en fait c'est nulle comme solution ..... si la phrase ne contient pas de '.' ca ne fonctionne pas et si elle en contient plusieurs, strpos() va se caler sur le dernier alors c'est vraiment merdique [:mlc].....
 
un ereg() est beaucoup plus sûr  [:spamafote]
 
ou alors il faut utiliser strpos()


Merci a tous, mais
Oui cette methode ne marche pas correctement...
Donc admettons que

Code :
  1. $string="Coucou les Amis . Et les autres aussi. Cool";


comme faire pour n'afficher que coucou les amis ?
 
merci d'avance:)

Reply

Marsh Posté le 30-01-2004 à 09:56:07    

dans la fonction que t'as donnée karamilo, remplace strrpos() par strpos()... ca devrait fonctionner
 
echo substr($string, 0, strpos($string, '.'));


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-01-2004 à 09:59:34    

Merci à tous:)

Reply

Marsh Posté le 30-01-2004 à 09:59:34   

Reply

Marsh Posté le 30-01-2004 à 11:40:43    

coconutes4 a écrit :


Merci a tous, mais
Oui cette methode ne marche pas correctement...
Donc admettons que

Code :
  1. $string="Coucou les Amis . Et les autres aussi. Cool";


comme faire pour n'afficher que coucou les amis ?
 
merci d'avance:)


' marche aussi ma regex... :p

Reply

Marsh Posté le 30-01-2004 à 11:45:43    

ué mais les regex c'est lourd :/


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-01-2004 à 13:15:18    

simogeo a écrit :

ué mais les regex c'est lourd :/


Les regex, c'est bon, mangez-en!

Reply

Marsh Posté le 30-01-2004 à 13:17:57    

faut pas en abuser non plus !
surtout des ereg ...

Reply

Marsh Posté le 30-01-2004 à 13:41:53    

karamilo a écrit :

faut pas en abuser non plus !
surtout des ereg ...


Franchement, je ne crois pas qu'il y ait beaucoup de cas où cela pose un vrai problème... En tout cas, je n'en vois pas... Mais, vas-y, montre-moi que j'ai tort: je suis ouvert à toute critique constructive.

Reply

Marsh Posté le 30-01-2004 à 13:52:49    

Toucouch a écrit :


Franchement, je ne crois pas qu'il y ait beaucoup de cas où cela pose un vrai problème... En tout cas, je n'en vois pas... Mais, vas-y, montre-moi que j'ai tort: je suis ouvert à toute critique constructive.

c'est simplement une solution trop poussée pour le probleme posé, et ça rend ton code illisible.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-01-2004 à 13:54:43    

Toucouch a écrit :


Franchement, je ne crois pas qu'il y ait beaucoup de cas où cela pose un vrai problème... En tout cas, je n'en vois pas... Mais, vas-y, montre-moi que j'ai tort: je suis ouvert à toute critique constructive.

c'est simplement une solution trop poussée pour le probleme posé, et ça rend ton code illisible.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-01-2004 à 14:04:17    

Toucouch a écrit :


Franchement, je ne crois pas qu'il y ait beaucoup de cas où cela pose un vrai problème... En tout cas, je n'en vois pas... Mais, vas-y, montre-moi que j'ai tort: je suis ouvert à toute critique constructive.


En perfos, les regexp sont à la ramasse. Y a eu un petit test de fait y a quelque temps : http://forum.hardware.fr/forum2.ph [...] 999&cat=10


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 30-01-2004 à 14:08:58    

the real moins moins a écrit :

c'est simplement une solution trop poussée pour le probleme posé, et ça rend ton code illisible.


c'est pas faux


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-01-2004 à 14:09:07    

the real moins moins a écrit :

c'est simplement une solution trop poussée pour le probleme posé, et ça rend ton code illisible.


c'est pas faux


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-01-2004 à 14:12:54    

the real moins moins a écrit :

c'est simplement une solution trop poussée pour le probleme posé, et ça rend ton code illisible.


Ben, c'est illisible si il n'y a pas de commentaires et que le lecteur ne connait pas les regex...

Reply

Marsh Posté le 30-01-2004 à 14:14:32    

Toucouch a écrit :


et que le lecteur ne connait pas les regex...


Ca arrive très souvent et de toute façon, à moins d'être un pro, faut quand même passer du temps à interpréter la regexp pour savoir ce que l'auteur a vraiment voulu faire :/


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 30-01-2004 à 14:26:44    

Taiche a écrit :


Ca arrive très souvent et de toute façon, à moins d'être un pro, faut quand même passer du temps à interpréter la regexp pour savoir ce que l'auteur a vraiment voulu faire :/


carrément, et pour les pondre aussi quand tu n'en fais pas une habitude   ;)


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 30-01-2004 à 14:39:08    

Taiche a écrit :


En perfos, les regexp sont à la ramasse. Y a eu un petit test de fait y a quelque temps : http://forum.hardware.fr/forum2.ph [...] 999&cat=10


Effectivement, pour un grand nombre de substitutions dans un grand texte, on peut peut-être sentir le "poids" des regex.
 
Ceci dit, tout dépend de l'usage qu'on veut en faire. A la limite, si l'on doit faire un grand nombre de substitutions chaque fois qu'une page est appelée, il faut peut-être envisager de stocker le document sous sa forme "transformée" (compromis capacité de stockage/capacité de calcul)...
 
coconutes dit qu'il veut transformer UNE chaîne de caractères en une autre plus courte. Il n'a pas dit qu'il voulait traiter 1Mo de texte...
 
Et puis ma regex n'est pas très complexe dans la mesure où elle recherche la première occurrence d'un caractère précis et qu'elle remplace ce caractère ainsi que tous ceux qui le suivent par un autre caractère. Pas violent pour le moteur...

Reply

Marsh Posté le 30-01-2004 à 14:41:55    

Taiche a écrit :


Ca arrive très souvent et de toute façon, à moins d'être un pro, faut quand même passer du temps à interpréter la regexp pour savoir ce que l'auteur a vraiment voulu faire :/


C'est valable pour tous les codes: il faut plus de temps pour comprendre une regex/du C/du Perl/du PHP/etc. que sa langue maternelle... D'où l'intérêt des commentaires pour dire ce que l'on veut faire...
 
Et puis une regex de 5 caractères...

Reply

Marsh Posté le 30-01-2004 à 15:00:51    

Toucouch a écrit :


C'est valable pour tous les codes: il faut plus de temps pour comprendre une regex/du C/du Perl/du PHP/etc. que sa langue maternelle... D'où l'intérêt des commentaires pour dire ce que l'on veut faire...
 
Et puis une regex de 5 caractères...


Ouais bin désolé mais perso j'la comprends pas, tout simplement passke les regex, si j'ai pas mon manuel à côté, bin j'y panne rien [:spamafote]
C'est au contraire très différent des langages de prog. Dans un langage de prog, les mots-clés, les noms de fonction ou les variables ont la plupart du temps des noms compréhensibles, alors qu'une regex, une fois la parenthèse ouverte, t'as plus qu'une suite de caractères et si tu sais pas lequel correspond à quoi, bin t'es largué direct. Même avec un commentaire, le jour où ça bugge, le type qui reprend le code sans rien y connaître sera à la rue.
 
Sinon oui, ta regex est simple mais faut voir aussi l'intitulé du problème : prendre tout le début d'une chaîne de caractère en s'arrêtant au premier point. Pour moi, les regex c'est super utile pour des patterns complexes (la gestion des codes ou des smileys sur ce forum, par exemple) ; pour les cas simples, ça fait bazooka pour tuer un moustique, je trouve :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed