PHP str_replace probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mathijs Henquet

Mathijs Henquet

24/06/2008 18:14:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$test
= 'hallo';
$alfa = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
$numr = array('00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35');
echo str_replace($alfa, $numr, $test);
?>


Dit is mijn code en zoals je ziet is het gemaakt om alle karakters in een zin te vervangen door een cijfer code a word 01. Maar op een of andere manier werkt dit niet. Ik snap niet wat de fout is.

Kan iemand mij helpen?

ps. Als ik dit uitvoer echoed hij dit: 'x43w83w83w83w83w86'
Gewijzigd op 01/01/1970 01:00:00 door Mathijs Henquet
 
PHP hulp

PHP hulp

06/11/2024 00:40:14
 
Timen kut

Timen kut

24/06/2008 18:52:00
Quote Anchor link
Ik denk dat ie $test ziet als 1 woord, en niet als losse letters. Dus die zul je eerst moeten ontleden.
 
Mathijs Henquet

Mathijs Henquet

24/06/2008 18:55:00
Quote Anchor link
Hm ik denk niet dat dat het probleem is aangezien er geen spaces in mijn zoek array staan.
 
Aron K

Aron K

24/06/2008 18:55:00
Quote Anchor link
Als je bijvoorbeeld een 'a' converteert komt er '01' uit, die '0' en die '1' worden vervolgens ook weer geconverteerd en dat gaat zo even verder. Daardoor krijg je een foute uitkomst, hoe dit op te lossen is weer ik helaas niet.
 
Douwe

Douwe

24/06/2008 18:56:00
Quote Anchor link
@Timen;
str_replace() vervangt alle items uit array $search door het item met dezelfde key uit array $replace. Het is een beetje moeilijk uit te leggen, maar dit zegt de manual:
Replace all occurrences of the search string with the replacement string

Je hoeft dus niet $test te strippen per letter.
 
Onbekend Onbekend

Onbekend Onbekend

24/06/2008 18:56:00
Quote Anchor link
gewoon foreach gebruiken voor die array's en dan die str_replacen?
 
Timen kut

Timen kut

24/06/2008 18:59:00
Quote Anchor link
@Douwe_M

Hmm okay my bad:P

Ik heb ooit 's een soort gelijk iets gemaakt als soort sleutel opdracht. mischien dat je hier wat mee kunt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$getal = strlen($_POST['woord']);
$woord = $_POST['woord'];
$loop=0;
$array = array(22 => "a",
         74 => "b",
         82 => "c",
         12 => "d",
         64 => "e",
         88 => "f",
         26 => "g",
         98 => "h",
         16 => "i",
         66 => "j",
         32 => "k",
         44 => "l",
         18 => "m",
         58 => "n",
         60 => "o",
         92 => "p",
         62 => "q",
         86 => "r",
         36 => "s",
         24 => "t",
         46 => "u",
         30 => "v",
         52 => "w",
         48 => "x",
         46 => "y",
         68 => "z");
$tel = 0;
    while($loop <= $getal){
        foreach($array as $key => $value){
                if($woord{$loop} == $value){
                    $code = $key;    
                        echo $code;
                }    
        }
    $tel++;
    $loop++;
    }
 
Mathijs Henquet

Mathijs Henquet

24/06/2008 19:01:00
Quote Anchor link
@aron

Ja klopt je hebt helemaal gelijk. Stom dat ik dat zelf niet zag. Bedankt voor de hulp.

@tommy

hum... Ik ben nogal noob hiermee. Ik weet niet echt hoe ik 2 arrays tegelijk moet foreachen. Zou je dat even kunnen uitleggen misschien?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.