lire un mot lettre par lettre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : lire un mot lettre par lettre

par datesta » 27 févr. 2005, 19:45

merci a vous tous pour votre aide ;)
je prefere la fonction de Xenon_54, car elle est plus facilement modifiable pour moi :lol:

je commence tout juste les expression reguliere en cours, c'est un peu trop dur pour ma ptite tete :?

par Xenon_54 » 27 févr. 2005, 05:23

Intéressant, j'avais pensé utiliser les regexp mais n'avait aucune idée de la manière de faire.

Bravo!

par Hubert Roksor » 27 févr. 2005, 05:16

En fait on pourrait même le faire en une ligne avec une expression régulière ;)
preg_replace('/(.)(.?)/', '<b>$1</b>$2', $mot);

par ouckileou » 27 févr. 2005, 02:31

ok ok... ;)

c'est surtout l'utilisation du modulo que je trouve mieux, je n'y avait pas pensé :)

par Xenon_54 » 27 févr. 2005, 02:03

Je crois que la seconde variable est inutile. (à mon humble avis)
<?php
function gras12($string) {

	$return = '';

	for ($i=0; $i<strlen($string); $i++) {

		if ($i%2) {
			$return .= '<b>'.$string{$i}.'</b>';
		} else {
			$return .= $string{$i};
		}
	}

	return $return;
}
?>
;)

par ouckileou » 27 févr. 2005, 01:41

tu peux aussi utiliser une seconde variable :
$mot = "hello";
$gras = false;
$motBis = "";

for ($i=0;$i<strlen($mot);$i++) {
	if ($gras == true) {
		$motBis .= "<b>".$mot{$i}."</b>";
		$gras = false;
	} else {
		$motBis .= $mot{$i};
		$gras = true;
	}
}

par datesta » 27 févr. 2005, 01:23

oui, en effet
ça permet de remplacer seulement un caractere!
je lirai la doc sur les strings demain :)

par crab » 27 févr. 2005, 00:38

Hello,

Pour l'accès aux caractère d'une chaine de caractère, en PHP tu peux utiliser les accolades ({}) ==> voir doc : http://ch2.php.net/types.string

Exemple
<?php
$chaine = "Hello";
$premier_car = $chaine{0};
?>
Mais d'après la doc cette notation est obsolète.

Ceci dit, je ne suis pas sur que ton code va jouer car tu remplaces un caractère par une chaîne de caractère ($mot[$i]="<b>".$mot[$i]."</b>").

Enfin test, tu verras bien...

A+

par datesta » 27 févr. 2005, 00:30

en effet j'avais pas pensé à cette solution!
merci

mais maintenant c'est le $mot[$i] qui est pas bon !
ça ne permet pas de remplacer caractere par caractere :cry:

par Invité » 27 févr. 2005, 00:18

en c tu as le fonction strlen, je crois qu'elle est presente en php aussi

donc while($i < strlen($hello) )

lire un mot lettre par lettre

par datesta » 27 févr. 2005, 00:03

salut tout le monde ;)

je voudrais lire un mot et pis mettre un caractere sur deux du mot en gras!

avant :
$mot = "helllo"

apres :
$mot ="<b>h</b>e<b>l</b>l<b>l</b>o"

en c++ je sais qu'on peut lire une chaine lettre par lettre avec un while mais est-ce que c'est valable en php ??

pouvez vous m'aidez pour ce while ? :

$gras=1;
$i=0;
while(end of $mot) // Comment faire ???
{
if(gras==1)
{
$mot[$i]="<b>".$mot[$i]."</b>" // en c++ c'est comme ça qu'on fait mais en php ??
$gras=0;
}else{
$mot[$i]="<i>".$mot[$i]."</i>"
$gras=1;
}
$i++;
}
merci d'avance à celui qui pourra m'aider :)