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

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

tildeluxe

Mitglied
Hallo liebes Forum!

Ich versuche folgendes Script zu erstellen: Ein Bild, das von den Abmessungen am größten ist (Höhe&Breite), soll von einer fremden Website ausgelesen werden und angezeigt werden.
Leider habe ich bisher nicht wirklich erfolg gehabt, im Internet ist auch nichts richtiges zu finden...

Ich hoffe, dass Ihr mir weiterhelfen könnt.

Hier ein paar Schnipsel:
Bild auslesen - Alle Bilder einer Website auselsen mit PHP | Staticfloat
Bildgröße - Bildgroesse Imagesize | PHP Tutorials / Codeschnipsel
 
Werbung:
Naja eigentlich überall - Ich möchte eben auch ein Script, das smart sein soll, dewegen ist zb. der erste link mit dem tutorial nicht gut geeignet.

Die Ermittlung der Bildgröße bzw. Abmessungen, der Vergleich mit den Anderen und die Ausgabe, das sind die Hauptprobleme.
 
Werbung:
Du weißt, dass das Auslesen von Bildern fremder Webseiten u.U. rechtlich sehr bedenklich sein kann?
 
Dient ausschließlich für private Zwecke.
Würde ich jetzt auch sagen. :D

Ermittele erst mal alle Bilder und speichere die Namen in einem Array. Dann gehst du das Array durch und ermittelst die Größe. In dieser Schleife kannst du dann prüfen, ob das Bild bisher größer als die vorher überprüften Bilder ist und merkst dir in dem Falle den Namen.
 
Werbung:
Würde ich jetzt auch sagen. :D

Ermittele erst mal alle Bilder und speichere die Namen in einem Array. Dann gehst du das Array durch und ermittelst die Größe. In dieser Schleife kannst du dann prüfen, ob das Bild bisher größer als die vorher überprüften Bilder ist und merkst dir in dem Falle den Namen.

Danke dir! Hört sich aber leider kompliziert an :-o Hst du villeicht ein Beispiel?
 
Ich habe leider wenig Ahnung von PHP, doch meinst du es so?
PHP:
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[] = $src[2][0];
}
 
return $srcs;

$arr = $srcs;
foreach ($arr as &$value) {
    $value = getimagesize($value);
}
}
 
Werbung:
Nee, nee, nee, warum auch mal die Grundlagen lernen, könnte ja weiterhelfen :(
PHP:
$url = "http://www.irgendwo.de";

$files = show_images($url);

$maxSize = 0;
$filename = "";

foreach ($files as $file)
{
   $size = getimagesize("$url/$file");
   
   if ($maxSize < $size[0]*$size[1])
   {
     $filename = $file;
     $maxSize = $size[0]*$size[1];
   }
}

echo $filename;
 
Werbung:
Vielen Dank. Ich habe jetzt die Funktion in den Code included, aber ich bekomme folgenden Fehler:
Fatal error: Maximum execution time of 30 seconds exceeded in D:\wamp\www\..\index.php on line 13

Meine Datei:
PHP:
<?php
include("function.php");

$url = "http://www.schwarzwald.com/bilder-galerie/";

$files = show_images($url);

$maxSize = 0;
$filename = "";

foreach ($files as $file)
{
   $size = getimagesize("$url/$file");
   
   if ($maxSize < $size[0]*$size[1])
   {
     $filename = $file;
     $maxSize = $size[0]*$size[1];
   }
}

echo $filename;
?>
 
Werbung:
Da du dich momentan ja scheinbar auf deinem eigenen Rechner befindest, setze doch (zumindest testweise) mal die max execution time in der php.ini etwas höher und schau, wie lange das Script brauchen würde, um zu terminieren. (Dürfte ja auch von der Anzahl Bilder auf einer Seite abhängen!)
Wenn du das Skript online ausführen möchtest, müsstest du dir natürlich einen Hoster suchen, der eine hohe Ausführungszeit hat, oder einen eigenen Server benutzen.
 
Zuletzt bearbeitet:
Da lässt sich nicht viel dran machen. Wenn die Seite, die du scannst, viele Bilder hat und der Server vielleicht auch noch langsam ist, dann dauert das halt seine Zeit.
 
Werbung:
Was ich mir noch vorstellen könnte, wäre, dass du parallel zur Ausführung den Link bearbeitest und über eine Schnittstelle die Ergebnisse deiner Seite "im Nachhinein" zur Verfügung stellst...
Mich erinnert das ganze an Facebook und die Bildvorschau beim Teilen eines Links. <-- Dort geht das relativ schnell!
Vielleicht lässt dich das Script noch optimieren? - Könnte mir spontan vorstellen, dass das getimagesize() relativ lange dauert.

Hast du schonmal andere Webseiten probiert? (Welche mit wenigen Bildern?)
 
Ja, bei anderen Webseiten bekomme ich noch andere Fehler. Das Script scheint nichts zu taugen:
Warning: getimagesize(http://appundflut.de//"logo.jpg") [function.getimagesize]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in D:\wamp\www\..\index.php on line 13
 
Zurück
Oben