srt_replace() => help !

wizardman
Invité n'ayant pas de compte PHPfrance

02 avr. 2005, 18:31

Bonjour tout le monde,
javascript peut encoder une chaîne avec unescape() en décimal je croit.

J'ai décider de coder un petit programme permettant de convertir de décimal au bon vieux français :P

Voici mon code :
<?php
$a = $_POST['mot'];
$b = array("%03","%04","%05","%07","%13","%14","%15","%16","%17","%23","%24","%25","%26","%27","%33","%34","%35","%36","%37","%43","%44","%45","%46","%47","%53","%54","%55","%56","%57","%63","%64","%65","%66","%67","%73","%74","%75","%76","%77","%83","%84","%85","%86","%87","%93","%94","%95","%96","%97","%A2","%A4","%A5","%A6","%A7","%B2","%B4","%B6","%C2","%C6","%D2","%D4","%D6","%E2","%E4","%E6","%F2","%F4","%F5","%F6");
$c = array("0","@","P","p","2","B","R","b","r","3","C","S","c","s","4","D","T","d","t","5","E","U","e","u","6","F","V","f","v","7","G","W","g","w","8","H","X","h","x","9","I","Y","i","Y","*","J","Z","j","z","+","K","k","L","l","-","M","m",".","N","n","/","O","_","o");
$new = str_replace($c, $b, $a);
echo $new;
?>
Problème, il ne décode pas bien (il renvoit toujour les décimaux sans changements).

Quelqu'un pourrait-il m'aider (j'ai galérer pour recopier tous les decimaux et leur équivalent en français :P) ?

Merci :wink:

Invité
Invité n'ayant pas de compte PHPfrance

03 avr. 2005, 14:35

Je ne pense pas que tu puisse mettre un array dans str_replace.
Essai ceci :

Code : Tout sélectionner

<?php $a = $_POST['mot']; $b = array("%03","%04","%05","%07","%13","%14","%15","%16","%17","%23","%24","%25","%26","%27","%33","%34","%35","%36","%37","%43","%44","%45","%46","%47","%53","%54","%55","%56","%57","%63","%64","%65","%66","%67","%73","%74","%75","%76","%77","%83","%84","%85","%86","%87","%93","%94","%95","%96","%97","%A2","%A4","%A5","%A6","%A7","%B2","%B4","%B6","%C2","%C6","%D2","%D4","%D6","%E2","%E4","%E6","%F2","%F4","%F5","%F6"); $c = array("0","@","P","p","2","B","R","b","r","3","C","S","c","s","4","D","T","d","t","5","E","U","e","u","6","F","V","f","v","7","G","W","g","w","8","H","X","h","x","9","I","Y","i","Y","*","J","Z","j","z","+","K","k","L","l","-","M","m",".","N","n","/","O","_","o"); $nbr = count($b) ; $d = 0 ; while ($d <= $nbr ) { $new = str_replace($c[$d], $b[d], $a); $d++; } echo "$new";
Ca devrait marche :?

Alexl!nK
Invité n'ayant pas de compte PHPfrance

03 avr. 2005, 14:36

Dans le while, le deuxième argument, j'ai oublié $ ( pas d seul ) :? .

Invité
Invité n'ayant pas de compte PHPfrance

03 avr. 2005, 18:08

Non en fait j'ai juste mis
str_replace($c, $b, $a)
au lieu de
str_replace($b, $c, $a)
Merci quand même :)

Alexl!nK
Invité n'ayant pas de compte PHPfrance

03 avr. 2005, 18:09

Ben apparemment un array marche aussi :)