bilder prüfen ...

cb_master

Mitglied
so und wieder ich :D nun dachte ich an folgende spielerei:

ich prüfe mein gästebuch auf bilder ... wenn die auf eine vorhandene datei zugreifen dann ok - sind die bilder tot filter ich dent ag raus. nun hab ich aber keine ahnung ob das überhaupt zu prüfen geht und welche risiken oder probleme damit verbunden sein könnten.

aber wie das so ist im gb - einmal bild eingestellt - später bild weg aber eintrag noch da - und schon sieht das doof aus --- und dann könnte man so ...

ihr wisst schon - ideen ? ich prüfe die anzeige im gb so zur zeit:

PHP:
$comment = preg_replace("/\[img\](.*?)\[\/img\]/si", "<IMG SRC=\"\\1\" BORDER=\"0\">", $comment);

wobei beim erstellen der beiträge das [ img ] bildurl [ /img ] gesetzt wird - daher so :)
 
Hmmm sind die bilder lokal auf deinem Webserver oder sind das Links?

Naja eigentlich egal.

Versuche es doch mit der Funktion file_exists()
Diese gibt dir True oder False zurück.

Hier mal ein kleines Beispiel:

PHP:
$bild = "http://www.domain.de/bild.jpg";

if (file_exists($bild))
{
  echo $bild;
}

Damit prüfst du ob das Bild physicalisch vorhanden ist oder nicht.
Ich hoffe dich richtig verstanden zu haben.

Grüße
Fatility
 
PHP:
<?

function imgcheck($url) {
	$fp = @fopen ($url, "r");
	if (!$fp) {
		return $url;
	}
	return "<img src='$url' alt=''>";
}

$content = "asdfadsf asdfdsf adfsdfsadfs [img]http://www.heise.de/icons/ho/heise.gif[/img*] adsfkladsf jadösflkjadfsölkadfjsö asdf";

   $searcharray = array("/(\\[)(img)(])([^\\"]*)(\\[\\/img\\])/esiU");

   $replacearray = array("imgcheck('\\\\4')");

   $content = preg_replace($searcharray, $replacearray, $content);

echo $content;

?>

bitteschön :)

bei dem [/img*] musst du den stern rausmachen ;)
wenn das Bild tot ist, wird nur die URL ausgegeben.
 
mmm - naja noch nicht ganz - die funktion - hau ich in die datei:


PHP:
function imgcheck($imgurl) {
    $fp = @fopen ($imgurl, "r");
    if (!$fp) {
    return $imgurl;
    } else {
    return "<img src='$url'>";
    }
    fclose($fp);
}

wie ich $imgurl nenne ist ja eigentlich egal - oder greif ich hier auf eine var zurück die geprüft wird ? ...
und dann hau ich noch das fclose rein damit das auch passt ;) und so erst einmal schön und verständlich. nun teil 2:


PHP:
$searcharray  = array("/(\[)(img)(])([^\"]*)(\[\/img\])/esiU");
$replacearray = array("imgcheck('\\4')");
$content      = preg_replace($searcharray, $replacearray, $content);

so: hier versteh ich das wir aus dem img tag [img*]bla[/img*] ein array erstellen und dann im schritt 2 über die funktion prüfen. nur wofür steht in zeile1 /esiU ???

preg_replace ist wieder klar ...
 
Zurück