Nachdem von mir immer mehr PHP gefordert wird, bin ich heute wieder über was gestolpert, was mich an PHP mehr als zweifeln ließ.
Ein Script, dass die Files eines Verzeichnisses ausliest und ausgibt, schaut in Perl z.B. so aus:
Code:
#!/usr/bin/perl
use strict;
print "Content-type: text/html\n\n\n";
my $dir = '../htdocs/ate/data';
opendir(DIR, $dir) || die "can't opendir $dir: $!";
my @files = grep { /\.txt/ } readdir(DIR);
closedir DIR;
foreach (@files) {
print "$_
\n";
}
In PHP hab ich das so gemacht:
Code:
<?php
$datadir = "data";
$handle = opendir($datadir);
if($handle == "") {
exit("Konte Verzeichnis $datadir nicht lesen!\n");
}
$files = array();
while (false !== ($file = readdir ($handle))) {
// if ( strlen($file) > 4 && strpos($file, ".txt", strlen($file)-4 ) ) { // Ohne RegEx
if( preg_match( "/\.txt/", $file) ) { // Mit RegEx
array_push ($files, "$datadir/$file");
}
closedir($handle);
foreach ($files as $file) {
echo "$file
\n";
}
?>
Ich mein, viel umständlicher als in PHP gehts nicht mehr. Abgesehn davon, dass nirgends dokumentiert ist, wie man einen ungültigen Handle abfragt.
Wo sind die PHP-Gurus? Geht das nicht eleganter?
Ich bin von PHP (wieder einmal) schwer enttäuscht.