recherche d'une fonction
Bonjour, je recherche une fonction.
En fait en PHP 5 la fonction que je cherche existe, c'est str_split, mais je ne dispose aps de cette fct en php4... Si on pouvait avoir le code de cette fonction, ce serait encore le mieux.
Cette fonction me permetrait de separer une chaine qui fait en moyenne une douzaine de caracteres tous les 2 caracteres et les stocker dans un tableau. Comme je ne dispose pas de PHP5 chez mon hebergeur:
J'ai pensé a un wordwrap suivi d'un preg_split mais j'aime aps trop cette solution trop lente, sinon ya bien substr, mais c'est une fonction lente aussi je crois.
Bref, je ne sais que choisir. Merci de pouvoir m'aider
Pour ceux qui ne connaissent pas cette fontion, regarder la sur le
manuel.
Sinon, pour faire ce truc sous PHP 4, il n'y a pas vraiment de grosses difficultées.
En effet, en php, une chaine de caracteres est deja considerée comme un tableau.
Par exemple, si $chaine ="toto";
Et bien, un echo $chaine{0} affichera le premier "t" de toto.
echo $chaine{1} affichera le "o".
Et ainsi de suite.
A partir de là, ca ne doit pas etre bien dur de creer cette fonction en php (utilisation de la remarque precedente, un petit str_len et un petit for devrait suffir. Pas besoin de regex pour ca).
J'ai fait ca:
$temp = $user["status"];
$user["status"] = Array();
$strlen = (strlen($temp)-1);
for ($i = 0; $i <= $strlen; $i++)
{
if ($i%2==0)
{
$user["status"][$i/2] = $temp{$i}.$temp{$i+1};
}
}
Y a t'il des ameliorations a faire? (la chaine a traiter est dans $user["status"] et la chaine traitée est au meme endroit :p )
Merci
Tu l'as testé ?
Si oui, comment elle se comporte ?
(ton code est peut etre bon. Mais je ne pourrais pas t'en dire plus vu que je ne me suis pas penche sur le probleme. Mais si tu veux, je le ferais et je la mettrais dans les astuces).
Heu, oauis je veux bien que tu regarde, sinon ma fonction fait exactement ce que je veux.
Ex si ma chaine est "f1f2n1n2c1c2", ca me retourne
Array ( [0] => f1 [1] => f2 [2] => n1 [3] => n2 [4] => c1 [5] => c2 )
Donc tout va bien ^^ Tu peut la mettre en astuce effectivement ca pourait aider d'autre personneq ui veulent remlacer le str_split et qui n'ont pas php5. merci
<?php
function str_split2 ($chaine, $nb=1) {
$longueur = strlen($chaine);
$k=0;
$i = 0;
$tableau = array();
while ($i < $longueur) {
for ($j=0; $j < $nb; $j++) {
$tableau[$k] .= $chaine{$i+$j};
}
$i = $i + $nb;
$k++;
}
return $tableau;
}
$str = "Salut Dave";
$arr1 = str_split2($str);
$arr2 = str_split2($str, 3);
print_r($arr1);
print_r($arr2);
?>
Cette fonction a le meme comportement que celle du manuel (j'ai utilisé les memes exmples, et j'ai le meme résultat).
Ouah!! Merci, bien joué La globule!!
L'astuce de la double boucle, j'y avait pas pensé!
Dis dnc, il peut meme nous reprogrammer PHP la globule! Trop Fort ^^!
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: