Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Wie bestimmte Stellen von fremden Seiten auslesen?

Moin,

ich suche ein Skript und/oder eine Methode wie ich automatisch ganz bestimmten Text von fremden Seiten auslesen und auf meiner eigenen darstellen kann. Ich möchte keine gesamten Inhalte o.ä. kopieren... Mir geht es darum, dass ich eine Liste von Lieblings-Freeware-Tools auf meine Seite bringen will. Wünschenswert wäre jetzt nicht nur der Link zu den jeweiligen Anbietern, sondern auch ein automatischer Eintrag auf meiner PHP-Seite mit Angabe der aktuellen Version der Tools. Das würde mir (und meinen Besuchern) das regelmäßige Ansurfen der jeweiligen Seiten ersparen und man würde auf einen Blick sehen, ob sich auf den verlinkten Seiten etwas getan hat bzw. es eine neue Version der Tools gibt.

Ist so etwas möglich?

Danke,
Methoz

Hier gehts zum Orginal Eintrag "Wie bestimmte Stellen von fremden Seiten auslesen?" im Forum

Antworten

sowas ist möglich, muss aber immer auf die zielseite angepasst sein. das vorgehen ist aber immer
- seiteninhalt laden
- die gewünschten stellen raussuchen (meist mittels regulärer ausdrücke)

das schlägt aber fehl, sobald sich die zielseite in ihrem aufbau ändert, der reguläre ausdruck nicht mehr passt. und genau solche einen ausdruck zu finden ist die kunst an der geschichte.


2.

Hm... aber in meinem Fall wäre es immer dasselbe Wort, nämlich Version. Alle anderen Informationen kann und will ich ja direkt auf meine Seite schreiben, nur die aktuelle Version sollte von der Quellseite gelesen werden. Daran könnte man dann ja ggf. erkennen, ob es ein Update gab oder nicht. Wenn auf der Quellseite verfügbar, wäre natürlich das Auslesen des Datums der letzten Änderung auch nicht schlecht...

Hast du ein Beispiel, wie ich sowas realisieren könnte?


3.

nein, dafür kann es auch kein allgemeingültiges beispiel geben. das einlesen der datei stellt ja nicht das problem dar, das klappt normalerweise mit file_get_contents(), file(), usw. ganz gut, ist aber nicht der knackpunkt. deine aufgabe ist es eben einen passenden regulären ausdruck zu finden. und bei aller liebe, dafür kann man kein beispiel angeben (zumindest nicht ohne kenntnis der betreffenden seite).


4.

Den Seiteninhalt laedst du, indem du einfach die URL der gewuenschten Datei als fopen-Parameter angibst, also etwa:
Code:                   In Zwischenablage kopieren (nur IE)
1">

Den Filepointer auslesen und anhand von Merkmalen der Seite herausfinden, von wo bis wo du den Inhalt gebrauchen kannst.


5.

Hm, gut... nur leider kenne ich mich nicht wirklich gut mit php aus... Wie genau sieht das "Den Filepointer auslesen und anhand von Merkmalen der Seite herausfinden, von wo bis wo du den Inhalt gebrauchen kannst." aus? Wie ganau stelle ich das an?


6.

mindestens 3 möglichkeiten:
Code:                   In Zwischenablage kopieren (nur IE)
2">

dann steht in $content jeweils der inhalt der datei. aber alles andere (den regulären ausdruck) musst du selbst rausfinden oder zumindest den ausschnitt aus der zieldatei posten um den es geht.


7.

Hm, das nenne ich schnelle Antwort :-) Danke...

Ich will z.B. die "1.4.1" hinter "Version" von http://www.8mobile.org/moneyManager.aspx?LANG=EN auslesen... sowie die "5.56" hinter "Cole2k Media - Codec Pack V" von http://www.cole2k.net/?display=CP-A... die "2.07" hinter "What's new in version" von http://www.iaudiophile.net/wiki/index.php/X5Firmware etc.

Vielleicht frage ich schon zuviel, aber könntest du noch anhand einer dieser Seiten ein komplettes Beispiel geben? Ich denke, die anderen müssten dann ja analog anzufragen sein, richtig?


8.

na gut, einmal als beispiel. die pattern halte ich allerdings für nicht zuverlässig. wenn sich auf den seiten die Beschriftungen der Versionen (abgesehen von der nummer) ändern, siehts schlecht aus.
Code:                   In Zwischenablage kopieren (nur IE)
3">

das erklären des codes erspare ich mir in anbetracht der uhrzeit, da steigst du mit hilde der dokumentation auf http://www.php.net schon durch.


9.

Hmmm, ich habe obigen Code nun erst einmal zum Testen eins zu eins bei mir eingebunden... auf der Seite wird dann aber

Das Tool 'tool1 ' liegt in Version Version vor.
Das Tool 'nocheintool ' liegt in Version N/A vor.
Das Tool 'xyz ' liegt in Version N/A vor.

ausgegeben... also anscheinend wird nicht das ausgelesen bzw. dargestellt, was ich gewollt habe...

Was habe ich falsch gemacht?

Das Nachvollziehen des Codes ist einigermaßen klar... obwohl ich die Darstellung mit "/Codec\s*Pack\s*V\s*(\d+(\.\d+))/ims" für mich neu ist... aber ich habe ja auch nur sehr marginale Kenntnisse von PHP.

Und wenn ich schon wieder beim Fragen bin, welche ein bis zwei Variablen müssen hinzugefügt werden, damit die echo-Zeile so aussieht: "Das Tool XX (mit Link hinterlegt) liegt in der Version xxx vor. (Toolbeschreibung: xxxxx) ", wobei die Toolbeschreibung nirgends ausgelesen werden muss, sondern auch von mir in die PHP-Datei geschreiben werden kann... denn die einzige Variable ist ja (meist) die Versionsnummer...


10.

wahrscheinlich sind bei dir magic_quotes_runtime aktiviert:
Code:                   In Zwischenablage kopieren (nur IE)
4">

was das hinzufügen des links angeht, ist das eine reine html aufgabe, die du eigentlich in der lage sein solltest zu lösen. wie würdest du denn in einem html quelltext einen link hinzufügen (sag bitte nicht mit einem wysiwyg-editor)?

was deine toolbeschreibung angeht habe ich nur bahnhof verstanden.


11.

Hmmm, irgendwie klappt das immer noch nicht... meine Preview-Funktion in der ich online meine Homepage editieren kann zeigt nach Implementierung des überarbeiteten Codes gar nicht mehr an... mit der alten echo-Zeile erwecke ich zumindest die Anzeige wieder zum Leben, die Versionsnummern werden aber trotzdem noch nicht angezeigt... Ich muss das wohl mal heute nachmittag / abend in einer separaten PHP-Datei probieren...

Das generelle Link-Hinzufgen war mir zwar nicht unbekannt, aber wohin die "\" kommen, ist mir noch nicht 100%ig klar...

Zur Toolbeschreibung... meine Wunschvorstellung dieses Klein-Projekts wäre in etwa folgende Darstellung:

Lieblingstools :
MoneyManager (mit Link hinterlegt) ... aktuelle Version: 1.4.1 ... ist ein kleines Java-Tool für´s Handy und macht dies und das.
Cole2k Media Codec Pack (mit Link hinterlegt) ... aktuelle Version: 5.56 ... ist ein Codec-Pack mit zahlreichen blah blag blah.
X5 Firmware (mit Link hinterlegt) ... aktuelle Version: 2.07 ... ist die neuste Firmware für den iAudio X5.


12.

dann musst du mein beispiel eben in deiner umgebung debuggen. hellsehen kann ich noch nicht was bei dir schiefläuft.


13.

Cool, als einzelne PHP-Datei funktioniert´s... sogar, wenn ich´s danach einbinde... und das mit der Beschreibung klappt auch... suuuuuuuuuuuuper - besten Dank noch einmal !!!!


Hier gehts zum Orginal Eintrag "Wie bestimmte Stellen von fremden Seiten auslesen?" im Forum
 
phpforum.de | Impressum | Handy Bundles