Problème PHP4 str_split();

Petit nouveau ! | 7 Messages

30 juil. 2007, 17:36

Bonjour,

J'ai developpé un code en PHP5 mais lorsque je publie sur le serveur (PHP4) il m'indique que j'utilise une fonction inconnue.

J'utilise dans mon code la fonction str_split();

Code : Tout sélectionner

$user = $_GET["user"]; $theme = "themes/".$_GET["theme"]."/"; $chars = 'abcdefghijklmnopqrstuvwxyz'; $tr = array(); foreach (str_split($chars, 1) as $c) { $tr[$c] = '<img src="'.$theme. $c . '.jpg">'; } echo strtr($user, $tr);
Quelqu'un pourrait il m'aider à faire en sorte que mon code fonctionne pour PHP4 ?

Merci d'avance :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 juil. 2007, 17:45

Tu peux utiliser preg_split() à la place et probablement même explode() :) :
<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?> 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

30 juil. 2007, 17:59

Au passage, tu peux exploiter les propriétés de tes données. En l'occurence, tu veux itérer sur l'alphabet, on peut faire ça avec "for"
$tr = array(); 
for ($c = 'a'; $c <= 'z'; ++$c) 
{ 
    $tr[$c] = '<img src="'.$theme. $c . '.jpg">'; 
}
Évidemment, si tu veux autrechose qu'un simple alphabet, ça ne marche plus.

Si tu es sûr que $user ne contient que des caractères autorisés tu peux réfléchir dans l'autre sens en itérant sur chaque lettre de la chaîne de départ et effectuer les remplacements au fûr et à mesure.
$len = strlen($user);
for ($i = 0; $i < $len; ++$i)
{
    echo '<img src="', $theme, $user[$i], '.jpg"';
}

Petit nouveau ! | 7 Messages

30 juil. 2007, 20:55

Merci beaucoup pour votre aide. Ca marche de cette façon.
$user = $_GET["user"];
$theme = "themes/".$_GET["theme"]."/";

$chars = preg_split('//', $user, -1, PREG_SPLIT_NO_EMPTY); 
$count = count($chars);

for($i=0;$i<$count;$i++){
	echo '<img src="'.$theme.$chars[$i].'.jpg">';
};