str_replace doet maf
BigBug - 14/09/2008 16:00
PHP expert
Hoi allemaal, mijn str_replace(); doet nogal maf. Ik heb hetvolgende
<?php
$value = '123';
$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');
$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');
$value_new = str_replace($origineel, $vervanging, $value)
<?php
$value = '123' ;
$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' ) ; $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' ) ;
$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
Martijn - 14/09/2008 17:30
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
vinTage - 14/09/2008 18:03
Nieuw lid
Ik heb dit ff verzonnen, maar er zal waarschijnlijk wel een veel simpelere oplossing zijn
<?php
$value = '123';
$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');
$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');
for($i=0; $i < strlen($value); $i++)
{
$replaceIndex = array_search(substr($value, $i, 1), $origineel);
$value = str_replace($origineel[$replaceIndex], $vervanging[$replaceIndex], $value);
}
echo $value;
<?php
$value = '123' ;
$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' ) ; $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' ) ;
for ( $i = 0 ; $i < strlen ( $value ) ; $i ++ ) {
$value = str_replace ( $origineel [ $replaceIndex ] , $vervanging [ $replaceIndex ] , $value ) ;
}
memar - 15/09/2008 04:55
Nieuw lid
vinTage zijn script werkt wel,
maar misschien kan het wel korter met substr_replace()
mvg memar
Kr4nKz1n - 15/09/2008 10:06
Onbekend
Ik snap gewoon niet waarom je dit zo doet.
$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');
$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 => .
$sBlaat = '12fr3f';
For($iBlaat = 0; $iBlaat < StrLen($sBlaat); $iBlaat++)
{
echo $aValues[$sBlaat{$iBlaat}];
}
$sBlaat = '12fr3f' ;
For ( $iBlaat = 0 ; $iBlaat < StrLen ( $sBlaat ) ; $iBlaat ++ ) {
echo $aValues [ $sBlaat { $iBlaat } ] ; }
Zo wordt hij dan volgens mij.
Gesponsorde links
Dit onderwerp is gesloten .