login  Naam:   Wachtwoord: 
Registreer je!
 Forum

str_replace doet maf

Offline BigBug - 14/09/2008 16:00
Avatar van BigBugPHP expert Hoi allemaal, mijn str_replace(); doet nogal maf. Ik heb hetvolgende

  1. <?php
  2. $value = '123';
  3.  
  4. $origineel = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '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', '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');
  5. $vervanging = array('O', 'Y', 'J', 'o', 'z', 'V', 'b', 'N', 'H', 'S', 'R', 'i', 'n', 'y', 'F', 'Q', 'Z', '6', 'T', 'd', 'B', 'P', 'l', 'C', '4', 'c', 'f', 'a', '0', '5', 'E', '9', 'W', 'I', 'u', 'x', 'w', '8', 'g', 'r', 'p', 'M', 't', '3', 'K', 'k', 'A', 'U', 'D', 'e', 'v', 'm', 'G', '1', 'X', 'q', 'h', 'j', 'L', '7', 's', '2');
  6.  
  7. $value_new = str_replace($origineel, $vervanging, $value)


Ik heb even voor de duidelijkheid $value erin gezet, dit is normaal input van een textveld.

Als $value de waarde '123' heeft returnt php 'sk4', terwijl er bij de zoek en replace array op dezelfde waarde staat:
1-Y
2-J
3-o

Heeft iemand enig idee hoe dit kan?

Bedankt

6 antwoorden

Gesponsorde links
Offline Martijn - 14/09/2008 17:30
Avatar van Martijn Crew PHP zoiets had ik ook een tijd terug, toen wou ik het alfabet omzetten in iets anders, toen had ik precies het probleem wat jij nu hebt, Ik heb het niet kunnen oplossen
Offline vinTage - 14/09/2008 18:03
Avatar van vinTage Nieuw lid Ik heb dit ff verzonnen, maar er zal waarschijnlijk wel een veel simpelere oplossing zijn 

  1. <?php
  2. $value = '123';
  3.  
  4. $origineel = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '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', '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');
  5. $vervanging = array('O', 'Y', 'J', 'o', 'z', 'V', 'b', 'N', 'H', 'S', 'R', 'i', 'n', 'y', 'F', 'Q', 'Z', '6', 'T', 'd', 'B', 'P', 'l', 'C', '4', 'c', 'f', 'a', '0', '5', 'E', '9', 'W', 'I', 'u', 'x', 'w', '8', 'g', 'r', 'p', 'M', 't', '3', 'K', 'k', 'A', 'U', 'D', 'e', 'v', 'm', 'G', '1', 'X', 'q', 'h', 'j', 'L', '7', 's', '2');
  6.  
  7. for($i=0; $i < strlen($value); $i++)
  8. {
  9. $replaceIndex = array_search(substr($value, $i, 1), $origineel);
  10. $value = str_replace($origineel[$replaceIndex], $vervanging[$replaceIndex], $value);
  11.  
  12. }
  13. echo $value;
Offline BigBug - 14/09/2008 18:26
Avatar van BigBug PHP expert @vinTage, door jou methode wordt alleen de eerste char omgezet...

Maar degene die die omzet werkt iniedergeval  
Offline vinTage - 14/09/2008 18:39
Avatar van vinTage Nieuw lid huhm, echt niet, hier zet hij alles om wat er instaat 
Offline memar - 15/09/2008 04:55
Avatar van memar Nieuw lid vinTage zijn script werkt wel,
maar misschien kan het wel korter met substr_replace()
mvg memar
Offline Kr4nKz1n - 15/09/2008 10:06
Avatar van Kr4nKz1n Onbekend Ik snap gewoon niet waarom je dit zo doet.

  1. $aValues = Array(0 => 'a', 1 => 'J', 2, 3, 4, 5, 6, 7, 8, 9, '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', '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');


En dan doorgaan met die => .

  1. $sBlaat = '12fr3f';
  2.  
  3. For($iBlaat = 0; $iBlaat < StrLen($sBlaat); $iBlaat++)
  4. {
  5. echo $aValues[$sBlaat{$iBlaat}];
  6. }


Zo wordt hij dan volgens mij.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.222s