PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

25-03-2005, 21:00
|
|
auswerten von html-datei
Hi, ich habe jetzt ca 5 Stunden gesucht, gelesen, ausprobiert etc.
ich habe auch halbwegs treffende einträge in der suche gefunden und alles von vorne bis hinten durchgelesen, aber ich bekomms nicht richtig hin.
Erstmal, was ich realisieren möchte:
auf der startseite eines chatroom-anbieters (also startseite eines jeden chats) sind die user angegeben, die in diesem chat drin sind, um das zu sehen muss man nicht angemeldet sein oder ähnliches.
ich möchte jetzt mit einem php-script auslesen, ob der string
<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR=#10A0FF>
<TR><TD><FONT SIZE=-1 COLOR=#000000><B>User online in Raum Lobby:</B></FONT>
<IMG SRC="pics/fuell.gif" ALT="" WIDTH=4 HEIGHT=4><BR>
<TABLE CELLPADDING=5 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR="#FFFFFF">
<TR><TD><FONT SIZE=-1>
vorkommt (er existiert nur, wenn überhaupt user im chat sind). wenn er vorkommt, dann soll der text, der zwischen dem eben genannten stück quellcode und
</FONT></TD></TR></TABLE></TD></TR></TABLE>
<IMG SRC="pics/fuell.gif" ALT="" WIDTH=4 HEIGHT=4><BR>
vorkommt ausgegeben werden, denn da stehen die user-namen.
mein ansatz bisher ist:
PHP-Code:
<?
$textdurchsuchen = implode('',file("index.html"));
if (preg_match ("<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR=#10A0FF>
<TR><TD><FONT SIZE=-1 COLOR=#000000><B>User online in Raum Lobby:</B></FONT>
<IMG SRC="pics/fuell.gif" ALT="" WIDTH=4 HEIGHT=4><BR>
<TABLE CELLPADDING=5 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR="#FFFFFF">
<TR><TD><FONT SIZE=-1>", "$textdurchsuchen"))
{
//hier soll er die user-namen ausgeben
}
else
{
print "Kein user online";
}
?>
aber ich komm überhaupt nicht weiter
|

25-03-2005, 21:13
|
flyx
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 72
|
|
zum einen ist es vermutlich keine .html-Datei sondern vermutlich um ne .php-Datei, sonst würde das dingens nich laufen.
hast du zugriff auf die index.php? (sprich läuft die auf deinem server? nach dem file()-Aufruf zu urteilen ja.)
Wenn ja würd ich dir raten das ding mal anzuschauen, wie die user reingeschrieben werden.
Die müssen ja irgendwoher kommen(Datenbank).
|

25-03-2005, 21:19
|
|
hi, also die datei läuft leider ned bei mir,ich hatte mit die datei nur runtergeladen um mir den quelltext in aller ruhe anzugucken.
die html is der output von ner php datei, ich kann auch die php-datei aufrufen, der output is derselbe.
|

25-03-2005, 21:22
|
flyx
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 72
|
|
was heißt "ich komm nicht weiter"
was genau ist das problem?
ausserdem kann der Code nich funktionieren, weil du die Doppelten anführungszeichen rauslassen solltest.
Geändert von flyx (25-03-2005 um 21:24 Uhr)
|

25-03-2005, 21:26
|
|
ich schaffe es nicht, dass er ab dem ersten queltextstück (falls es existiert, also user online sind) bis zum 2. zitierten quelltext die datei ausgibt (aber eben nur ddiesen teil, weil da die user drinstehen, die online sind)
|

25-03-2005, 21:32
|
flyx
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 72
|
|
Zitat:
ausserdem kann der Code nich funktionieren, weil du die Doppelten anführungszeichen rauslassen solltest.
|
lesen Bildet:
versuchs ma so
PHP-Code:
<?
$textdurchsuchen = implode('',file("index.html"));
if (preg_match ('<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR=#10A0FF>
<TR><TD><FONT SIZE=-1 COLOR=#000000><B>User online in Raum Lobby:</B></FONT>
<IMG SRC="pics/fuell.gif" ALT="" WIDTH=4 HEIGHT=4><BR>
<TABLE CELLPADDING=5 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR="#FFFFFF">
<TR><TD><FONT SIZE=-1>', $textdurchsuchen))
{
//hier soll er die user-namen ausgeben
}
else
{
print "Kein user online";
}
?>
|

25-03-2005, 21:48
|
|
oh, sorry, das mit den anführungszeichen hatte ich übersehen.
aber wie kann ich erreichen, dass eben nur dieser eine teil des textes ausgegeben wird (und zwar da: //hier soll er die user-namen ausgeben)
schonmal vielen dank, dass du dich um mein problem kümmerst, das ist echt nett von dir
Geändert von lindworm (25-03-2005 um 22:53 Uhr)
|

26-03-2005, 09:49
|
flyx
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 72
|
|
kleiner tipp. Es gibt auch noch string-funktionen.
schau dir die mal durch, ob du damit was anfangen kannst.
|

26-03-2005, 10:07
|
|
danke, ich les' mir mal die handbucheinträge dazu durch, mal sehen ob ich daraus shclau werde *g*
DANKE
|

26-03-2005, 12:23
|
Firefly
Junior Member
|
|
Registriert seit: Jan 2005
Beiträge: 121
|
|
läuft der chat auf mysql???
wen ja lies die usernamen einfach von da aus!
(es gibt auch andere möglichkeitn für einen chat aber mysql ist die beste ...)
|

26-03-2005, 16:15
|
flyx
Junior Member
|
|
Registriert seit: May 2004
Beiträge: 72
|
|
wenn ich das richtig verstanden habe, dann wird der Chat von einem Drittanbieter gehostet.
und ich glaube nicht, dass der dem Chat-user zugriff auf seine DaBa gibt. von daher ist das wohl nicht möglich.
|

26-03-2005, 17:31
|
|
ja, genau. ich habe nur zugriff auf die startseite des chats, also die html ausgabe, welche ich dann auswerten muss
|

27-03-2005, 03:17
|
|
juhuu, des klappt schonmal.
ich habs jetzt so gelöst und nicht mit preg_match:
PHP-Code:
<?
$textdurchsuchen = file_get_contents('mit.htm');
$treffer = strstr ($textdurchsuchen, '<TABLE CELLPADDING=2 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR=#10A0FF>
<TR><TD><FONT SIZE=-1 COLOR=#000000><B>User online in Raum Lobby:</B></FONT>
<IMG SRC="pics/fuell.gif" ALT="" WIDTH=4 HEIGHT=4><BR>
<TABLE CELLPADDING=5 CELLSPACING=0 BORDER=0 WIDTH="100%" BGCOLOR="#FFFFFF">
<TR><TD><FONT SIZE=-1>');
if ($treffer == true)
{
echo ("$treffer");
}
else
{
print "Kein user online";
}
?>
vielen dank für deine hilfe, sons wär ich wahrscheinlich ned drauf gekommen
edit: son mist, wenn ich das mit einer datei auf meinem pc versuche klappt alles prima, aber wehe ich versuch das mit der datei auf dem anderen server, dabei hab ich das auslesen schon so geändert, dass es eigentlich klappen müsste und es klappt auch, wenn ich die datei einfach einlesen(die externe) und dann ausgeben lasse. aber wenn ich die dann durchsuchen lasse gibt er mir nur an, dass keine user online sind, obwohl user online sind und das auch auf der startseite angezeigt wird.
hier nochmal mein quelltext in gekürzter version:
PHP-Code:
<?
$text = fopen("http://blabla.de/index.html","r");
if ($text)
{
while(!feof($text))
{
$textdurchsuchen = fgets($text);
}
fclose($text);
}
$treffer = strstr ($textdurchsuchen, '...');
$treffer = str_replace('...', '', $treffer);
$treffer = str_replace(' ....
', '', $treffer);
if ($treffer == true)
{
echo ("$treffer");
}
else
{
print "Kein user online";
}
?>
Geändert von lindworm (27-03-2005 um 04:15 Uhr)
|

27-03-2005, 19:28
|
|
weis denn keiner, wie man das lösen könnte?
ich will ja auch nur nen denkansatz, bitte
|

27-03-2005, 19:43
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
Warum nimmst du jetzt auf einmal ne Schleife?
Und warum baust du die auch noch so, dass die Variable bei jedem Durchlauf überschrieben anstatt erweitert wird?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|