• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bild mit den größten Abmessungen von Website auslesen | Hilfe

Code:
getimagesize(http://appundflut.de//"logo.jpg")
-> Da scheinen ja irgendwie Anführungszeichen mitreingerutscht zu sein.
Ich habe mir das Script jetzt noch nicht näher angesehen, aber ich stelle es mir generell schwierig vor, auf diese Art und Weise Bilder konsequent und 100%ig von allen Webseiten auszulesen, da einige relative und andere absolute Pfadangaben für ihre Bilder haben...

Erstelle zum Testen des Scripts einfach mal eine html-Seite mit einigen Bildern und versuche, es darauf anzuwenden, dann wirst du ja sehen, ob und wie das Script mit welcher Geschwindigkeit funktioniert! :)
 
Werbung:
Ich habe das ganze eben ebenfalls bei mir probiert. Die bereitgestellte Funktion funktioniert! Dabei habe ich einen Unterschied zwischen meinem Freehoster (den ich zum Testen verwende) und meinem eigenen feststellen können. Hast du in der php.ini allow_url_fopen = On gesetzt? Ansonsten scheint file_get_contents nicht zu funktionieren.

Die erste Funktion von Alle Bilder einer Website auselsen mit PHP | Staticfloat erzeugt folgendes Resultat:
FireShot Screen Capture #039 - '.jpg

Problem hier - wie vorhin schon von mir erwähnt - der relative Pfad. Man müsste sich an dieser Stelle noch Gedanken machen, wie man das am Besten realisiert. Irgendwie die URL davorklatschen hilft manchmal - aber nicht immer! (So wie du das mit
Code:
getimagesize("$url/$file")
versucht hast, geht das in deinem Beispielfall nicht. Der richtige Link zum Bild ist http://www.schwarzwald.com/schwarzwald.gif . Deine Verknüpfung von URL und Bildname führt zu http://www.schwarzwald.com/bilder-galerie/schwarzwald.gif)
Deshalb funktioniert die Sortierung auch nicht richtig.
 
Werbung:
Mit ein paar kleinen Änderungen konnte ich das Script so zum Laufen bringen, wie du es in diesem Fall benötigst:

FireShot Screen Capture #040 - ''.jpg

Ich möchte hier darauf hinweisen, dass das widerrechtliche Auslesen von Bildern einer fremden Seite (auch für "private" Zwecke) rechtlich sicherlich nicht gestattet ist, wenn dir nicht die betreffende Seite gehört / du keine Absprache mit dem Besitzer getroffen hast. [Nur Erfahrungen, kein rechtlicher Rat / Wissen]

PHP:
 <?php
$url = "http://www.schwarzwald.com/bilder-galerie/";

$files = show_images($url);

$maxSize = 0;
$filename = "";

var_dump($files);

foreach ($files as $file)
{
   $size = getimagesize("$url/$file");
   
   echo "<img src=\"".$url.$file."\"\>"; //Anmerkung 1
   
   if ($maxSize < $size[0]*$size[1])
   {
     $filename = $file;
     $maxSize = $size[0]*$size[1];
   }
}

echo $filename;


function show_images($url) { 
$host = $url; 
$base_url = parse_url($url); 
$base_url = $base_url['scheme'].'://'.$base_url['host'].'/'; 
if(!(@$filestring = file_get_contents($host))) { 
    echo 'ERROR: URL NOT VALID OR OFFLINE'; 
    return null; 
} 
preg_match_all('/<img[^>]+>/is',$filestring,$imgs); 
$imgs = array_unique($imgs[0]); 
 
$img = array();
foreach( $imgs as $img_tag)
{
    preg_match_all('/(src)=("[^"]*")/i',$img_tag, $img[$img_tag]);
}
 
$srcs = array();
foreach($img as $src) {
    $srcs[] = str_replace("\"", "", $src[2][0]); //Anmerkung 2
}
 
return $srcs; 
}  
?>

Anmerkung 1: Anders als in meinem vorherigen Post behauptet, scheinen die relativen Pfadangaben "../" sich auch bei der Angabe auf Links auszuwirken. Dementsprechend funktioniert eine Aneinanderreihung von schwarzwald.com/bilder-galerie/../schwarzwald.png zu dem korrekten Aufruf von schwarzwald.com/schwarzwald.png. Dies muss auf keinen Fall immer klappen!
Anmerkung 2: Die von dir bereits entdeckten Anführungszeichen sind hier entstanden. Durch ein einfaches PHP: str_replace - Manual können sie entfernt werden.

Das größte Bild (veranstaltungen.jpg) scheint gefunden! Also funktioniert dein getimagesize()! Beachte hierbei, dass bei gleichgroßen Bildern immer das erste Bild dieser Größe genommen wird.

Wie gesagt, ich denke nicht, dass dieses Script so auf alle Webseiten anwendbar sein wird. Dennoch, speziell für diese Art der Verlinkung wird es funktionieren.
Viel Spaß damit - und denk an meine einleitenden Worte!
 
Zurück
Oben