Mailinglisten-Archive |
At 23:40 09.10.2000 +0200, you wrote: >wenn ich in Perl z.B. eine Link-Liste von allen Buchstaben haben möchte (um >z.B. eine Liste zu filtern) dann mache ich das so: > >print map { "<a href=\"details.pl?anf=$_\"> $_ </a> } (A..Z) ; > >Ergibt > ><a href="details.pl?anf=A">_A_</a> ><a href="details.pl?anf=B">_B_</a> ><a href="details.pl?anf=C">_C_</a> ><a href="details.pl?anf=D">_D_</a> >... > >Gibt es etwas ähnlich kurzes oder ein Äquivalent zu "map" auch unter PHP? Nein, gibt es nicht, ist aber schnell geschrieben: <?php function map($text, $array) { for($i=0,$n=count($array);$i<$n;$i++) $out .= str_replace('$_', $array[$i]); return $out; } function get_list($from,$to) { for($i=ord($from),$n=ord($to);$i<=$n;$i++) $array[] = chr($i); return $array; } // Aufruf: print map('<a href="details.pl?anf=$_"> $_ </a>', get_list('A', 'Z')); ?> Das (A..Z) könnte man zwar auch anstatt dem ('A', 'Z'), jedenfalls als ('A..Z'), allerdings ist diese Syntax in PHP nicht implementiert, und man sollte bei der bisher verwendeten beiben, damit es andere später auch leichter haben, den Code zu verstehen. Bye Dante -- <? /* PHP4 */ echo(preg_replace('_(at)_([0-9a-f]{2})._(at)_ie','chr(hexdec("\\1"))', '48G65h6cI6Cj6fK20l57M6Fn72O6Cp64Q21r')) /* PHP - The better choice */ ?>
php::bar PHP Wiki - Listenarchive