gudn tach Andi!
irgendwas ist hier faul. hast du mal in $line reingeschaut? steht da wirklich das drin was du glaubst, dass es drinsteht?
das script
<?php
function such_id($line, $i){
echo "\ntest $i: $line\n";
preg_match('|<ID n="(\d*)"/>|', $line, $treffer);
echo 're1: '.((count($treffer)>1)? $treffer[1]:'nix')."\n";
preg_match('|<ID n=\"([\d*])\"/>|', $line, $treffer);
echo 're2: '.((count($treffer)>1)? $treffer[1]:'nix')."\n";
}
$i=0;
such_id('foo<ID n="13"/>bar', ++$i);
such_id('foo<ID n="5"/>bar', ++$i);
such_id('foo<ID n="*"/>bar', ++$i);
?>
gibt bei mir folgendes aus:
---------------------------
test 1: foo<ID n="13"/>bar
re1: 13
re2: nix
test 2: foo<ID n="5"/>bar
re1: 5
re2: 5
test 3: foo<ID n="*"/>bar
re1: nix
re2: *
---------------------------
bei dir nicht?
der regexp /([\d*])/ matcht genau ein zeichen, welches eine ziffer oder ein stern ist; ist also aquivalent zu /([0-9*])/
prost
seth