Page 1 sur 1

Problème PHP4 str_split();

Posté : 30 juil. 2007, 17:36
par mook
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 :)

Posté : 30 juil. 2007, 17:45
par Ryle
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);
?> 

Posté : 30 juil. 2007, 17:59
par Hubert Roksor
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"';
}

Posté : 30 juil. 2007, 20:55
par mook
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">';
};