php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.07.2009, 22:48   #1 (permalink)
Neuer Benutzer
 
Registriert seit: 23.07.2009
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
joux befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Zugriff auf DOM, inkl. CSS

Hallo php-Forum, ich bin frisch angemeldet und hoffe auf Unterstützung.

Ich möchte für eine Plattform die Möglichkeit implementieren, Fotos über Twitter einzureichen. Die Software muss also in einem Stream von Twitter-Nachrichten die Links auswerten und die entsprechenden Bilder finden.

Das Problem: Es gibt eine Vielzahl verschiedener Dienste, die Bilder hosten und dann den Link darauf auf Twitter posten. Das verlinkte Bild wird selbstverständlich nicht direkt angezeigt, sondern eingebunden in eine Website, mit weiteren Thumbnails, Werbung, etc. (Beispiel Another for @shawnelledge on Twitpic )

Die Aufgabe ist also: Dem Link folgen und herausfinden, hinter welchem img-Tag das wichtigste Bild steckt. Man könnte die Struktur der Seiten manuell analysieren, das ist aber wegen der vielen verschiedenen Dienste eher auswegslos.

Mein Ansatz ist bisher: Das eigentliche Bild wird sehr wahrscheinlich die größte Grafik auf der Seite sein. Also muss ich auf der Seite (wie dem oben verlinkten Beispiel) das img-Tag finden, das am größten angezeigt wird.

Es gibt PHP-Skripte für Zugriff auf das DOM einer Seite (PHP Simple HTML DOM Parser), sowie für die CSS-Deklarationen (CSS parser - PHP Classes) Diese beiden so zu kombinieren, dass auch verschachtelte Elemente etc. zuverlässig erkannt werden, sodass für jedes img-Tag die Größe ausgelesen werden kann, wird aber kompliziert.

Nach der langen Vorred also meine Fragen:
- kennt jemand eine Bibliothek, die HTML und CSS parsen kann und dann für jedes Element Zugriff auf die Formatierungen bietet?
- Oder gibt es vielleicht noch eine bessere Strategie, um mein Ziel zu erreichen, also das Bild auf so einer Seite zu erkennen?
joux ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 23.07.2009, 23:54   #2 (permalink)
yab
Erfahrener Benutzer
 
Registriert seit: 05.04.2009
Beiträge: 291
PHP-Kenntnisse:
Anfänger
yab befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von joux Beitrag anzeigen
- kennt jemand eine Bibliothek, die HTML und CSS parsen kann und dann für jedes Element Zugriff auf die Formatierungen bietet?
- Oder gibt es vielleicht noch eine bessere Strategie, um mein Ziel zu erreichen, also das Bild auf so einer Seite zu erkennen?
Also so eine Klasse gibt es bestimmt, ich kenne nur keine (habe allerdings auch nicht danach gesucht)

Mein Vorgehen wäre, durch alle IMG-SRC zu iterrieren und jeweils einen Head-Request abzusetzen, um die physikalische Bildgröße zu ermitteln.
Vermutlich ist das bytemäßig größte Bild auch das Bild mit den größten Dimensionen (width/height).
Im Zweifel kann unter den Favoriten noch mittels Remote-getimagesize() ausgesiebt werden.

War jetzt nur so eine erste naive Idee von mir. Ein Emulator für eine Browser-Engine wäre natürlich perfekt.
yab ist offline   Mit Zitat antworten
Alt 24.07.2009, 00:10   #3 (permalink)
Erfahrener Benutzer
 
Registriert seit: 10.02.2008
Beiträge: 113
PHP-Kenntnisse:
Fortgeschritten
fritz_07 befindet sich auf einem aufstrebenden Ast
Standard

Für DOM gäbe es schon eine interne Implementierung mit XPath- und HTML-Unterstützung.
fritz_07 ist offline   Mit Zitat antworten
Alt 24.07.2009, 00:25   #4 (permalink)
yab
Erfahrener Benutzer
 
Registriert seit: 05.04.2009
Beiträge: 291
PHP-Kenntnisse:
Anfänger
yab befindet sich auf einem aufstrebenden Ast
Standard

@fritz_07 Es handelt sich um eine fremde Website mit externen CSS-Files. Das heißt, du musst in das DOM alle Resourcen erstmal einlesen - meintest du das, wenn ja, wie geht das?
yab ist offline   Mit Zitat antworten
Alt 24.07.2009, 11:49   #5 (permalink)
Neuer Benutzer
 
Registriert seit: 23.07.2009
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
joux befindet sich auf einem aufstrebenden Ast
Standard

@yab:
Die Idee mit der Bilddateigröße ist eine gute Alternative, danke. Da es sich fast immer um Fotos handeln dürfte, wird es wohl auch kaum passieren, dass da irgendwo mal ein Bild dabei ist, das plötzlich super komprimiert werden kann und damit die Regel sprengt...
getimagesize() hatte ich auch noch gar nicht im Auge, schätze mal, dass das auch die rechen- und bandbreitenintensivste Variante ist.

@fritz_07:
Ja, die ganzen SimpleXML-Funktionen helfen beim HTML parsen. Aber siehst du eine Möglichkeit, darüber auch auf die Attribute aus dem CSS-Stylesheet zuzugreifen?

Geändert von joux (24.07.2009 um 12:07 Uhr). Grund: Bildgröße meint Bilddateigröße...
joux ist offline   Mit Zitat antworten
Alt 24.07.2009, 12:05   #6 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.192
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Über CSS kannst DU das imho vergessen. Ein Bild in Vollgrösse muss nicht zwingend CSS Angaben gesetzt haben, oder?
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline   Mit Zitat antworten
Alt 24.07.2009, 12:14   #7 (permalink)
Supermoderator
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 6.051
PHP-Kenntnisse:
Fortgeschritten
Manko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer AnblickManko10 ist ein wunderbarer Anblick
Standard

Themenmoderation:
[→] Verschoben von Off-Topic Diskussionen
__________________
Programm Bürgerschutz:
Geistiges Eigentum: alles ist käuflich! ― Kinderschutz: haltet die Eltern fern! ― Einbruchsprävention: sperrt den Weihnachtsmann weg!
Manko10 ist offline   Mit Zitat antworten
Alt 24.07.2009, 18:42   #8 (permalink)
Neuer Benutzer
 
Registriert seit: 23.07.2009
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
joux befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Über CSS kannst DU das imho vergessen. Ein Bild in Vollgrösse muss nicht zwingend CSS Angaben gesetzt haben, oder?
Da hast du recht, ich habe auch schon Dienste gesehen, die es komplett ohne Größenangabe einbinden. Der Vorschlag von yab, einfach nach Dateigröße zu gehen, ist wohl demnach tatsächlich der beste. Und wahrscheinlich auch recht sparsam, ein paar Header abzurufen ist ja kein Akt.

Also, danke für die Aufmerksamkeit.
joux ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zugriff auf mysql von aussen. nieselfriem Datenbanken 7 25.12.2008 22:00
Zugriff mit session auf Ordner begrenzen Diego1978 PHP Tipps 2008 1 08.07.2008 06:38
Zugriff beschränken paper PHP Tipps 2008 9 04.05.2008 12:13
Direkten Zugriff auf Datenbank verhindern heyho PHP Tipps 2008 7 07.02.2008 11:41
Zugriff auf eine ORACLE DB die Daten in eine MYSQL schreiben Cheesy PHP Tipps 2007 5 12.06.2007 15:36
Zugriff auf Objekte anderer Klassen nieselfriem PHP Tipps 2007 7 14.05.2007 12:48
Zugriff verweigert...? amenhotheb PHP Tipps 2006 4 11.07.2006 16:23
Zugriff auf postgresql-db mit php PHP Tipps 2006 6 25.01.2006 09:29
gleichzeitiger Zugriff auf 2 Datenbanken dh1sbg PHP-Fortgeschrittene 3 27.12.2005 12:41
Objektorientierter Zugriff auf Multidimensionale Arrays PHP-Fortgeschrittene 31 26.11.2005 21:46
Verzeichnis (Dateien) schützen aber per PHP zugriff zulassen Server, Hosting und Workstations 2 16.10.2005 10:13
Wie Ordner und Inhalt vor unberechtigten Zugriff schützen Riot PHP Tipps 2005-2 30 06.10.2005 21:18
Zugriff auf phpmyadmin PHP Tipps 2005 1 28.02.2005 18:41
[Erledigt] Letzter zugriff von Datei anzeigen PHP Tipps 2005 13 17.01.2005 18:20
.htaccess verweigert meinen zugriff HTML, Usability und Barrierefreiheit 4 22.09.2004 17:28


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum