Per php eine zeile einer html seite auslesen?

PHP, Ajax, CSS, HTML, Javascript
Eben für die wirklich Harten, die alles selber machen.
Antworten
mcfly
Beiträge: 312
Registriert: Mi 18.Mai, 2005 17:54
Kontaktdaten:

Per php eine zeile einer html seite auslesen?

Beitrag von mcfly »

Hallo an alle.

Ich hätte damal eine Frage. HEHE sonst würd ich ja auch kein Thema aufmachen *g* !

Also ich möchte auf einer meiner Seite verschiedene Angebote der Firma zeigen bei der ich angestellt bin. Nun ist es so eigentlich nicht schwer allerdings ändert mein Chefe diese willkürlich (Datum und Zeitmäßig) zwischen 4 Verschiedenen Angeboten. Meiner Idee und Hoffnung war nun ob es möglich ist die angebotszeile per php auslesen zulassen und dementsprechend sofort das aktuelle angebot anzeigen zu lassen.

Also wenn zum beispiel dort eine 1 oder ein A steht das erste Angebot

wenn ne 2 oder ein B das zweite Angebot

und soweiter.

Bisher habe ich leider nur diesen Ansatz


<?php

$content = file_get_contents("inhalt_mit_links.html");

?>

Aber wie kann ich da nun die eine Zeile rausfiltern?

Wäre schön wenn ihr mir helfen könntet
[center]PCForum24
Pagerank | Freeware[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nun ja, Du must bedenken, daß file_get_contents(); die Seite in einen String ausliest. Der kann dann schon mal "explodieren".

Nimm besser stattdessen file();, dann wird jede Zeile in ein Array gelesen, welches man dann bequem auseinander nehmen kann (also $variable[0] wäre die erste, $variable[1] die zweite Zeile, etc...).
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
mcfly
Beiträge: 312
Registriert: Mi 18.Mai, 2005 17:54
Kontaktdaten:

Beitrag von mcfly »

Also würde das im enteffekt so aussehen?

<?php

$content = file("inhalt_mit_links.html");

if($variable[0]==Update 1 möglich)

else

?>


oder mach ich da nun was falsch?


Sorry meine php-kenntnisse sind noch nichtmal ausreichend bin aber am lernen.
[center]PCForum24
Pagerank | Freeware[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn, dann musst Du schon wissen, in welche Zeile was steht.
Lass Dir doch einfach den Inhalt von $content erst einmal anzeigen:

Code: Alles auswählen

echo print_r ($content);
Dann kannst Du sehen, in welcher $content[...] die gewünschten Inhalte stehen.
Und wenn eh immer in der selben Zeile die Daten enthalten sind, kann man das dann auch fest verdrahten und letzlich nur gleich mit

Code: Alles auswählen

echo $content[x];
das gewünschte anzeigen lassen...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
mcfly
Beiträge: 312
Registriert: Mi 18.Mai, 2005 17:54
Kontaktdaten:

Beitrag von mcfly »

ja also die zeile weiß ich ja aber ich möchte diese nicht angzeigt bekommen ich wollte, da es vier verschiedene Zeilenmöglichkeiten sind diese nun per if else abfrage dann weiterverwenden. Ist der Teil dann richtig?


Edit:

Also ich habe nun zwei verschiedene Arten versucht mit if else und mit switch aber irgendwas fehlt mir nunn das ich nicht weiterkomme. Es bleibt eine weiße seite

Code: Alles auswählen

<?php

$content = file("die zu ursprungsseite seite");

    if ("Level ist 1" == $content[29]) {
        echo "Die Daten wurden gelöscht";
    }
    if ("Level ist 2" == $content[29]) {
        echo "Die Daten wurden gespeichert";
    }
    if ("Level ist 3" == $content[29]) {
        echo "Die Daten wurden hinzugefügt";
    }

?>

bleibt jedes mal eine weiße seite ohne fehler

Code: Alles auswählen

<?php

$content = file("die zu ursprungsseite seite");

 switch ($content[29]) { 
 case 'Level ist 1':
		echo print_r ($content);
 case 'Level ist 2': 
		echo $content[29];	
 } 

?>
ebenfalls fehlerlose weiße seite
Zuletzt geändert von mcfly am Sa 25.Aug, 2007 19:04, insgesamt 2-mal geändert.
[center]PCForum24
Pagerank | Freeware[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Moment, langsam.

In den "bekannten" Zeilen stehen Werte, die Du auslesen und weiterverwenden willst, also gleich in einem Script ohne weitere Anzeigen?

Ist dann der Text immer gleich?
Dann könnte man ihn einfach abschneiden, also

Code: Alles auswählen

$wert = substr($content[29], $pos, $len);
wobei $pos die Position der Zahl im Text ist (-1) und $len die Länge des Wertes.
Man kann auch hier großzügiger mit der Länge sein, denn mit

Code: Alles auswählen

$wert = intval($wert);
wird der Text dahinter eh abgeschnitten.

Hilft das oder bin ich nun komplett auf der falschen Spur?
Bislang kamen da zu wenige Infos, um gezielter helfen zu können (ich kenne z. B. die Seite überhaupt nicht)...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
mcfly
Beiträge: 312
Registriert: Mi 18.Mai, 2005 17:54
Kontaktdaten:

Beitrag von mcfly »

Also die Zeile 29 beim auslesen gibt es in vier verschiedenen Varianten nach welcher ich nun meine eigene Seite kreieren möchte. Angezeigt soll die Zeile nicht werden.

Ich kriege es ja hin das die Zeile angezeigt wird nur weiß ich nun nicht wie ich sie zwar lesen kann von der anderen Seite aber anstelle die nun anzeigen zu lassen soll entweder per if oder switch entsprechend sich nun meine Seite aufbauen.

Online sind beide Seiten noch nicht offiziell da dieser Abschnitt einer der wichtigsten ist um die Seiten fertig zu stellen.
[center]PCForum24
Pagerank | Freeware[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du sprichtst weiterhin in Rätzeln.
Ist denn in der besagten Zeile der gewünschte Inhalt nun immer nach einem bestimmten Text, immer an einer bestimmten Stelle oder wie soll man den nun finden?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
mcfly
Beiträge: 312
Registriert: Mi 18.Mai, 2005 17:54
Kontaktdaten:

Beitrag von mcfly »

Also gut ich hoffe nun ist wird es verständlicher.

Ich habe nun webseite 1

auf dieser Seite ist die Zeile 29 die sich verändert zwischen vier verschiedenen Texten

Level ist 1
Level ist 2
Level ist 3
Level ist 4

diese Zeile würde ich gerne einlesen

nun soll dann bei

"Level ist 1" eine andere seite generiert werden als bei "Level ist 2"

das einlesen der ganzen Seite ist ja nun schon vorhanden

und den unterschied zwischen den einzelnen aussehen und funktionen wollte ich nun entweder durch eine if else schleife machen oder mit switch aber bei beidem scheint trotzdem was zu fehlen da ich mit dem eingelesenen text nicht weiterarbeiten kann. Anzeigen geht auch die einzelne zeile um die es geht aber wie mache ich das nun per php das der text nicht angezeigt wird sondern das ich diese zeile als ursprung für die if else oder switch befehle nehme. Da fehlt irgendwas da so wie oben beschrieben ich nun leere seiten kriege.


Hoffe das war nun etwas besser erklärt was ich für ein Problem habe
[center]PCForum24
Pagerank | Freeware[/center]
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Code: Alles auswählen

if (strpos($content[29], 'Level ist 1') != FALSE)
{
	...
}
else if (strpos($content[29], 'Level ist 2') != FALSE)
{
	...
}
else if (strpos($content[29], 'Level ist 3') != FALSE)
{
	...
}
else if (strpos($content[29], 'Level ist 4') != FALSE)
{
	...
}
else
{
	echo 'Das Level konnte nicht Ermittelt werden.';
}
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

AmigaLink, dein Code ist so nicht ganz richtig ;)

Die Funktion strpos gibt die Position des Strings wieder der gefunden wurde. Steht dieser an erster Stelle, so wird 0 zurückgegeben - was bei deinem Code mit false gewertet wird. Der richtige Code lautet so:

Code: Alles auswählen

if (strpos($content[29], 'Level ist 1') !== false)
{
	...
}
Hiermit wird bei der Rückgabe auf gleiche Inhalte und gleiche Variablen-Typen geachtet!
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
mcfly
Beiträge: 312
Registriert: Mi 18.Mai, 2005 17:54
Kontaktdaten:

Beitrag von mcfly »

Danke schön funktioniert wunderbar und alles so wie ichs mir auch vorgstellt hatte. Nochmals vielen Dank an euch hier
[center]PCForum24
Pagerank | Freeware[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Theoretisch würde das so auch klappen:

Code: Alles auswählen

if (strpos($content[29], 'Level ist 1'))
aber der false-Vergleich ist sichererer.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

@ Giga
Ich habe das zweite = nur Vergessen. :!: Geplant war es. Wenn ich es nicht geplant hätte, dann hätte ich den Code so angegeben wie es oxpus nun getan hat. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
Giga4000
Beiträge: 181
Registriert: Sa 26.Nov, 2005 09:19
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Giga4000 »

Hehe, dann ist ja gut :D

... hatte mit der Funktion nämlich auch schon meine Probleme, weil ich es so wie bei Oxpus angegeben geschrieben hatte.
Wiegesagt: der false-Vergleich ist auf jeden Fall sichererer!
Site: www.mx-forums.de - New!
phpBB MODs: Click Here
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Wiegesagt: der false-Vergleich ist auf jeden Fall sichererer!
Richtig. :)
Obwohl ein einfacher Vergleich ausreicht wenn man davon ausgehen kann, das der zu suchende Wert garantiert nicht an erster Stelle steht. ;)
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Antworten