2016-05-30 32 views
0

Ich habe einige Probleme auf meinem Server in laufenden getimagesize auf Remote-URL-Bildern.PHP getimagesize funktioniert nicht auf externen Links

Zum Beispiel, wenn ich diesen Code ausführen auf meinem lokalen Server es funktioniert gut und gibt OK:

<?php 
$file = 'http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg'; 
$pic_size = getimagesize($file); 
if (empty($pic_size)) 
{ 
    die('FALSE'); 
} 
die('OK'); 

?> 

Aber wenn ich den gleichen Code auf meinem Server laufen kann ich es nicht richtig funktioniert. Können Sie mir helfen zu bestimmen, welche Einstellungen ich aktivieren soll?

Ich denke, einige von ihnen beteiligt sein können:

  1. mod_security
  2. safe_mode
  3. allow_url_fopen

Können Sie mir helfen, die richtige Konfiguration bei der Bestimmung dieser gelöst werden?

Vielen Dank im Voraus.

+0

@RiggsFolly Sorry, was? * mein Server kann ich nicht richtig arbeiten * Der Server blockiert wahrscheinlich Zugriffe auf andere Websites. Sie sollten die Fehlerberichterstattung aktivieren, um uns eine echte Fehlermeldung anzuzeigen. –

+2

Wenn Sie eine Frage zu einem Fehler stellen, ** schreiben Sie IMMER ** das Fehlerprotokoll. Um die Fehlermeldung zu Ihrem PHP-Code zu aktivieren, hängen Sie 'error_reporting (E_ALL); ini_set ('display_errors', '1'); 'kommt am Anfang des Skripts zurück? –

+0

klingt wie das Handbuch wurde entweder nicht gelesen, nicht verstanden, oder nicht befolgt. –

Antwort

4

Ihr Problem hängt damit zusammen, dass allow_url_fopen ausgeschaltet ist. Entweder aktivieren Sie es auf Ihrem php.ini, oder verwenden Sie curl das Bild zu bekommen:

function getImg($url){ 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $data = curl_exec($curl); 
    curl_close($curl); 
    return $data; 
} 

$url = "http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg"; 
$raw = getImg($url); 
$im = imagecreatefromstring($raw); 
$width = imagesx($im); 
$height = imagesy($im); 
echo $width." x ".$height; 

SRC

+1

Vielen Dank @Pedro Lobito für Ihre Hilfe, sehr geschätzt. Wie oben erwähnt, ist allow_url_fopen aktiviert, trotzdem konnte mein Helpdesk lösen, indem safe_mode deaktiviert und auch Apache mod_security deaktiviert wurde. –

+0

Sie sind herzlich willkommen @MightyGorgon –

1

Sie müssen allow_url_fopen in Ihrer Datei php.ini einschalten, damit es auf Ressourcen zugreifen kann, die nicht lokal sind.

Dies ist im offiziellen Dokument von getimagesize in der Beschreibung der filename Parameter angegeben.

+0

allow_url_fopen ist aktiviert, jedenfalls konnte mein Helpdesk lösen, indem safe_mode deaktiviert und auch Apache mod_security deaktiviert wurde. –