Regular Expressions ( preg_match_all() )
KeF
- php
Halihallo,
ich kapier es einfach nicht.
Wie lautet denn der richtige code bei preg_match_all() das ich dass in das Array haue was zwischen <b> und </b> steht?
preg_match_all('HIER DIE DEFINITION',$users,$zeiten,PREG_PATTERN_ORDER);
Thx im vorraus!
Hi,
Wie lautet denn der richtige code bei preg_match_all() das ich dass in das Array haue was zwischen <b> und </b> steht?
was hast Du versucht, welches Ergebnis hast Du erwartet, welches Ergebnis bekamst Du statt dessen?
Cheatah
Servus,
versucht habe ich:
preg_match_all('/<b>/(.*?)/</b>/',$users,$zeiten,PREG_PATTERN_ORDER);
erwartet habe ich ein array, das alles was zwischen tags <b> und </b> steht beinhaltet
bekommen habe ich:
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '(' in /usr/export/www/vhosts/funnetwork/hosting/user/scripts/statistik/statistik.php on line 345
Hi,
versucht habe ich:
preg_match_all('/<b>/(.*?)/</b>/',$users,$zeiten,PREG_PATTERN_ORDER);
das ist schon gar nicht mal schlecht. Allerdings beginnst Du die RegExp mit einem Slash, d.h. der nächste (unmaskierte) Slash beendet sie. Richtig lautet die RegExp also wie?
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '('
Jupp, nach Beendigung der RegExp kommen Modifier wie z.B. 'i' für case-insensitive oder 'g' für global.
Cheatah
Hi,
versucht habe ich:
preg_match_all('/<b>/(.*?)/</b>/',$users,$zeiten,PREG_PATTERN_ORDER);das ist schon gar nicht mal schlecht. Allerdings beginnst Du die RegExp mit einem Slash, d.h. der nächste (unmaskierte) Slash beendet sie. Richtig lautet die RegExp also wie?
Warning: preg_match_all() [function.preg-match-all]: Unknown modifier '('
Jupp, nach Beendigung der RegExp kommen Modifier wie z.B. 'i' für case-insensitive oder 'g' für global.
Cheatah
Ich denke so :D
preg_match_all('/<b>(.*?)</b>/i',$users,$zeiten,PREG_PATTERN_ORDER);
Danke!
Jetzt habe ich noch eine Frage hierzu,
das ist mein Code:
$handle = opendir($ordner);
$cc="0";
$day="2";
while ($file = readdir ($handle))
{
if($file != "." && $file != ".." && !ereg('users_',$file))
{
$fd=fopen("logs/".$file,'r');
$users=fgets($fd,filesize($file));
preg_match_all('/<b>(.*?)</b>/i',$users,$zeiten,PREG_PATTERN_ORDER);
fclose($fd);
echo $zeiten[1][7];
}
}
Bei der Zeile "echo $zeiten[1][7];", was muss ich da bei $zeiten hinten drann schreiben da mit er mir jeeeede zeit ausgibt die er gefunden hat?
Bis jetzt ist meine Ausgabe:
21:20:17 17:32:40
Obwohl ich 4 Dateien habe mit jeweils durchschnittlich 5 Zeiten die in <b> und </b> stehen.
Thx für hilfe!
echo $begrüßung;
if($file != "." && $file != ".." && !ereg('users_',$file))
Um das Vorhandensein eines einfachen Strings in einem anderen zu prüfen nimmt man im Allgemeinen eine String-Funktion und wirft nicht dafür die RegExp-Maschinerie an.
strpos($file, 'users_') !== false
preg_match_all('/<b>(.*?)</b>/i',$users,$zeiten,PREG_PATTERN_ORDER);
echo $zeiten[1][7];
Bei der Zeile "echo $zeiten[1][7];", was muss ich da bei $zeiten hinten drann schreiben da mit er mir jeeeede zeit ausgibt die er gefunden hat?
$zeiten ist ein Array, das die Fundstellen enthält. Allerdings ist es ein verschachteltes Array.
Um sich anzuschauen was in einem Array drin ist, kann man es sich mit print_r() ausgeben lassen. Vorher ein <pre> erhöht die Übersichtlichkeit.
Laufe durch das Array oder einen geeigneten Teil davon und gib die Werte einzeln aus oder implodiere es (oder den Teil) zu einem String.
echo "$verabschiedung $name";