Avatar billede acid-head Nybegynder
26. maj 2002 - 16:51 Der er 14 kommentarer og
2 løsninger

Meget indviklet kode?! ;)

Hej eksperter... =)

- For længe siden fik jeg stukket et stykke kode i "hånden" og jeg har tit brugt tid på at undre mig over det, og rode med det, men det bliver ved med at virke indviklet! Meget indviklet... =)

- Nu vil jeg gerne have en rigtig godt forklaring på koden... =)

<?
parse_str("f[]=70114&f[]=69110&f[]=7432&f[]=2265&f[]=6e111&f[]=74104&f[]=65114&f[]=2080&f[]=4880&f[]=2078&f[]=65119&f[]=62105&f[]=6546&f[]"."=2259");
while(list($foo,$bar)=each($f)){
$z=substr($bar,0,2);$x=substr($bar,2,strlen($bar));
$m.=pack("H".strlen($z),$z).chr($x);}eval($m);
?>

Hvis du virkelig kan gøre rede for koden, får du de 100 point... =)

//AciD~HeaD
Avatar billede tipsen Nybegynder
26. maj 2002 - 17:05 #1
hehe - meget cute - men det er vel ikke så svært at gennemskue... - for en sikkerheds skyld echo'ede jeg lige $m inden den blev udført - den kunne lige så godt indeholde kode til at slette c-drevet...
Avatar billede acid-head Nybegynder
26. maj 2002 - 17:09 #2
Hehe... Ja, meget cute, men jeg synes nu det er forholdsvis svært at gennemskue... =)
Avatar billede tipsen Nybegynder
26. maj 2002 - 17:10 #3
Det må være til at lave en funktion som går den anden vej...
Avatar billede tipsen Nybegynder
26. maj 2002 - 17:11 #4
samme resultat, men lidt forsimplet:

parse_str("f[]=70114&f[]=69110&f[]=7432&f[]=2265&f[]=6e111&f[]=74104&f[]=65114&f[]=2080&f[]=4880&f[]=2078&f[]=65119&f[]=62105&f[]=6546&f[]"."=2259");
while(list($foo,$bar) = each($f)){
    $z=substr($bar,0,2);
    $x=substr($bar,2);
    $m.=pack("H2",$z).chr($x);
}
eval($m);
Avatar billede gagle Nybegynder
26. maj 2002 - 17:13 #5
$m=Another PHP Newbie
Avatar billede tipsen Nybegynder
26. maj 2002 - 17:15 #6
parse_str - laver indholdet om til variable - dvs. du får et array med de anvendte hex-koder

så looper du over hex-værdierne og for hver enkelt:
  gemmer de første 2 tegn i $z
  gemmer resten af tegnene i $x
  pakker indholdet af $z i forhold til H2 og giver bogstavet der matcher ascii koden i $x
  det lægges i $m som til sidst evalueres...

må lige prøve at lave den omvendte funktion...
Avatar billede acid-head Nybegynder
26. maj 2002 - 17:16 #7
Ja, det er meget fint, men hvorfor kommer $m til at indeholde "Another PHP Newbie" ??? ;)
Avatar billede acid-head Nybegynder
26. maj 2002 - 17:17 #8
Okay tipsen -> vi nærmer os... =)
Avatar billede gagle Nybegynder
26. maj 2002 - 17:19 #9
acid-head> fordi det er skrevet i hex
Avatar billede acid-head Nybegynder
26. maj 2002 - 17:28 #10
Jamen, det jeg søgte var egentlig en rigtig god gennemgang af koden... =)

- Tipsen er ved at lave en sådan gennemgang, men jeg vil også gerne have forklaret hvad de forskellige functioner gør, f.eks. parse_str, chr og pack... =)
Avatar billede tipsen Nybegynder
26. maj 2002 - 17:39 #11
gaggle: mere korrekt $m indeholder:

print "Another PHP Newbie.";

acid-head: Er det vitterlig fordi du ikke ikke forstår koden eller bare for at se om andre gør?
Avatar billede tipsen Nybegynder
26. maj 2002 - 18:08 #12
acid-head - du kan jo bare slå funktionerne op på http://dk.php.net/manual/en/funcref.php
Avatar billede acid-head Nybegynder
26. maj 2002 - 18:22 #13
Tipsen -> Jeg vil gerne have forklaret koden, fordi jeg ikke selv forstår den... =) Jeg synes det er en fed lille stump kode... Jeg har tit rodet med den, og slået de forskellige functioner op i PHP-manualen, men det har aldrig resulteret i at jeg har forstået kodestumpen ordentlig... =)
Avatar billede acid-head Nybegynder
06. juni 2002 - 17:49 #14
Jeg vil gerne snart have lukket spørgsmålet, så hvis du vil have nogle point tipsen, så må du lige smide et svar ... ellers tager jeg dem sQ selv! *Ss*
Avatar billede tipsen Nybegynder
06. juni 2002 - 18:17 #15
Du kan jo give mig 10 point for indsatsen - så er det fint ;-)
Avatar billede acid-head Nybegynder
06. juni 2002 - 18:56 #16
Okay, det ordner vi lige... =)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester