Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP und regulärer Ausdruck: Wert aus HTML Seite auslesen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
AGB
PostRank 5
PostRank 5
Beiträge: 205
Registriert: 28.11.2005, 15:23

Beitrag von AGB » 03.02.2006, 14:56

Hallo PHP-Programmierer,

ich möchte aus der Webalizer Startseite (Übersicht) die Anzahl der Besucher auslesen. Ich weiß, dass Webalizer kein zuverlässiger Besuchercounter ist, trotzdem möchte ich es erst mal so machen.

Ich weiß zwar, wie ich mit php eine Datei Zeilenweise einlese, habe aber große Probleme eine kurze Lösung für das Auffinden des Wertes zu schreiben.

Es geht um die folgende Tabelle in der Datei:

Code: Alles auswählen

<TR><TH BGCOLOR="#C0C0C0" COLSPAN=6 ALIGN=left><FONT SIZE="-1">Totals</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">17</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">12</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">55</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">10</FONT></TH>
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">11</FONT></TH></TR>
<TR><TH HEIGHT=4></TH></TR>
Bisher mache ich das so:

1. Iterieren bis ich auf die Zeile stosse, die diesen String enthält: <FONT SIZE="-1">Totals</FONT>
2. counter inkrementieren
3. counter abfragen ob == 2 sonst inkrementieren
4. wenn counter == 2 zeile ist die mit der besucheranzahl

Diese Lösung ist nicht so toll, ich weiß.

Dann habe ich noch ein zweites Problem. Die gefundene Zeile enthält ja noch HTML, was ich rausfiltern möchte.

Habe es so versucht:

$out = $line =~ /-1">(\d+)/<//F;

Das funktioniert aber nicht.
Also ich möchte hier die 12 rausfiltern:
<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">12</FONT></TH>

Danke für eure Aufmerksamkeit.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 03.02.2006, 15:16

Vielleicht hilft Dir dass weiter...

https://de.php.net/manual/de/function.ereg.php

AGB
PostRank 5
PostRank 5
Beiträge: 205
Registriert: 28.11.2005, 15:23

Beitrag von AGB » 03.02.2006, 15:20

Aber dazu fehlt mir ja das passende Suchmuster.

marle
PostRank 5
PostRank 5
Beiträge: 212
Registriert: 24.02.2005, 15:25

Beitrag von marle » 03.02.2006, 15:48

schau mal hier
https://de.php.net/manual/de/function.preg-replace.php
dort siehst du wie man html entfernt

gruss

Wirths Media
PostRank 9
PostRank 9
Beiträge: 2050
Registriert: 20.09.2004, 20:25

Beitrag von Wirths Media » 03.02.2006, 16:15

Hast garnicht mal so unrecht mit html entfernen...

Code: Alles auswählen

<?php
	$text = '<TR><TH BGCOLOR="#C0C0C0" COLSPAN=6 ALIGN=left><FONT SIZE="-1">Totals</FONT></TH> 
	<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">17</FONT></TH> 
	<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">12</FONT></TH> 
	<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">55</FONT></TH> 
	<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">10</FONT></TH> 
	<TH BGCOLOR="#C0C0C0" ALIGN=right><FONT SIZE="-1">11</FONT></TH></TR> 
	<TR><TH HEIGHT=4></TH></TR>';

	$text = trim&#40;strip_tags&#40;$text&#41;&#41;;

	$text = explode&#40;"\n", $text&#41;;

	foreach&#40;$text as $wert&#41;
	&#123;
		$ausgabe&#91;&#93; = trim&#40;$wert&#41;;
	&#125;

	foreach&#40;$ausgabe as $key=>$wert&#41;
	&#123;
		echo $key."&#58; ".$wert."<br />";
	&#125;
?>
und die Ausgabe in einem Array...

Code: Alles auswählen

0&#58; Totals
1&#58; 17
2&#58; 12
3&#58; 55
4&#58; 10
5&#58; 11
MfG
Daniel

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag