str_replace med dobbel array
HejsaJeg har denne her stump kode:
$chartable = 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", "{", "|", "}", "~", "æ", "Æ", "ø", "Ø", "å", "Å");
$hextable = array("", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "2A", "2B", "2C", "2D", "2E", "2F", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "3A", "3B", "3C", "3D", "3E", "3F", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "4A", "4B", "4C", "4D", "4E", "4F", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", "5A", "5B", "5C", "5D", "5E", "5F", "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", "6A", "6B", "6C", "6D", "6E", "6F", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "7A", "7B", "7C", "7D", "7E", "E6", "C6", "F8", "D8", "E5", "C5");
for($i = 0; $i < ceil(strlen($new2)); $i++)
{
$hex2 = str_replace($hextable, $chartable, $new2);
}
Hvis jeg så smider denne HEX tekst igennem:
48 76 6F 72 64 61 6E 20 6B 61 6E 20 64 65 74 20 76 E6 72 65 20 61 74 20 64 75 20 69 6B 6B 65 20 68 61 72 20 66 75 6E 64 65 74 20 75 64 20 61 66 20 64 65 74 20 6E 6F 67 65 74 20 66 F8 72 3F 21
får jeg dette:
H v o r d a n k a n d e t v æ r e a t d u i k k e h a r f u n d e t u d a f d e t n o g e t f ø r ?
Og det er også næsten rigtigt, for den laver ikke de mellemrum der skulle være i stedet for 20 og laver ikke ! i stedet for 21
Men hvis jeg smider den samme tekst igennem dog uden mellemrummene får jeg dette:
H7fF7%F1nkanoWGng%V17FGV9kk6V8a7%gVEoWGVF1foWFEog6WFo87"F
Egenlig ville jeg jo godt have at den fjernede mellemrummene mellem bogstaverne med mindre der var 20 (Chr SPACE)
Hvordan kan det være??
Er der noget jeg har overset??
