0

以下は私の resize.php スクリプトです。GD ライブラリをインストールする必要がありましたが、古いサーバーで使用していたように画像を処理するのにまだ問題があります。HERE空のイメージが作成され、次のエラーが表示されるというエラー レポートで確認できます。

Warning: getimagesize(http://stackoverflow.com/questions/19817599/../wp-content/themes/Explorable/panos/Pano__0000.jpg): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/go3de/public_html/wp-content/themes/Explorable/resize.php on line 16

Warning: Division by zero in /home/go3de/public_html/wp-content/themes/Explorable/resize.php on line 19

Warning: Division by zero in /home/go3de/public_html/wp-content/themes/Explorable/resize.php on line 30

何がうまくいかないのですか?助けてください!

<?php session_start();header("Pragma: public");header("Cache-Control: max-age = 604800");
header("Expires: ".gmdate("D, d M Y H:i:s", time() + 604800)." GMT");

function thumbnail($image, $width, $height) {

    if($image[0] != "/") { // Decide where to look for the image if a full path is not given
        if(!isset($_SERVER["HTTP_REFERER"])) { // Try to find image if accessed directly from this script in a browser
            $image = $_SERVER["DOCUMENT_ROOT"].implode("/", (explode('/', $_SERVER["PHP_SELF"], -1)))."/".$image;
        } else {
            $image = implode("/", (explode('/', $_SERVER["HTTP_REFERER"], -1)))."/".$image;
        }
    } else {
        $image = $_SERVER["DOCUMENT_ROOT"].$image;
    }
    $image_properties = getimagesize($image);
    $image_width = $image_properties[0];
    $image_height = $image_properties[1];
    $image_ratio = $image_width / $image_height;
    $type = $image_properties["mime"];

    if(!$width && !$height) {
        $width = $image_width;
        $height = $image_height;
    }
    if(!$width) {
        $width = round($height * $image_ratio);
    }
    if(!$height) {
        $height = round($width / $image_ratio);
    }

    if($type == "image/jpeg") {
        header('Content-type: image/jpeg');
        $thumb = imagecreatefromjpeg($image);
    } elseif($type == "image/png") {
        header('Content-type: image/png');
        $thumb = imagecreatefrompng($image);
    } else {
        return false;
    }

    $temp_image = imagecreatetruecolor($width, $height);
    imagecopyresampled($temp_image, $thumb, 0, 0, 0, 0, $width, $height, $image_width, $image_height);
    $thumbnail = imagecreatetruecolor($width, $height);
    imagecopyresampled($thumbnail, $temp_image, 0, 0, 0, 0, $width, $height, $width, $height);

    if($type == "image/jpeg") {
        imagejpeg($thumbnail);
    } else {
        imagepng($thumbnail);
    }

    imagedestroy($temp_image);
    imagedestroy($thumbnail);

}

if(isset($_GET["h"])) { $h = $_GET["h"]; } else { $h = 0; }
if(isset($_GET["w"])) { $w = $_GET["w"]; } else { $w = 0; }

thumbnail($_GET["img"], $w, $h);

?>
4

2 に答える 2

1

理解した!<?phpエラーの原因となった最初の開始タグの前にスペースがありました! ああ!初心者でごめんなさい!

于 2013-11-07T19:39:25.400 に答える
1

リサイズしようとしている画像の大きさは?メモリ不足について不平を言っているように見えますか?

より多くのメモリを割り当ててみてください。

これをページの一番上に追加してみてください: ini_set('memory_limit', '512M'); ...そして、それが機能するかどうかを確認してください。

于 2013-11-06T22:07:56.673 に答える