Moin!
ja, Luis Peter hat leider ein komplettes HTML-Dokument angegeben, wo er eigentlich nur ein Bild hätte einbinden/referenzieren sollen. Ich frage mich, warum das so häufig vorkommt - er ist nicht der einzige und auch nicht der erste, der das macht.
Weil es scheinbar geht. (Wenn auch nicht funktioniert.)
Abhilfe kann nur eine Prüfung sein, was der Server zurückliefert:
In PHP und Perl sollte etwas wie
$sys='wget -O /dev/null -d ' . escapeshellarg('http://imgur.com/2UymiGQ') .' 2>&1 | grep -i -E "content-type.*image" | wc -l';
$isPic=`$sys`;
#Nur für Perl:
sub escapeshellarg {
my $str = @_ ? shift : $_;
$str =~ s/((?:^|[^\\])(?:\\\\)*)'/$1\\'/g;
return "'$str'";
}
funktionieren.
Freilich kann man auch curl in purem PHP benutzen:
<?php
function hasHTTPImageHeader($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
## Windows-Benutzer müssen sich hier mit tempnam() um eine Datei kümmern und diese dann mit unlink() auch wieder löschen!
$fh = fopen('/dev/null', 'c');
curl_setopt($curl, CURLOPT_FILE, $fh);
$res = curl_exec($curl);
$res = curl_getinfo ($curl);
return (0 === strpos($res['content_type'], 'image/'));
}
if ( hasHTTPImageHeader('http://imgur.com/2UymiGQ') ) {
echo "Ja";
} else {
echo "Nein";
}
echo "\n";
Jörg Reinholz