Я использую предварительно написанный скрипт, найденный по адресу 1st Web Magazine - Generate Thumbnail On The Fly.Предварительно написанный скрипт PHP, показывающий ошибки - не удается определить, почему существует ошибка
Я скопировал скрипт к моему серверу, но это дает мне следующую ошибку: Parse error: syntax error, unexpected '$ratio_orig' (T_VARIABLE) in /storage/emulated/legacy/www/jollyroger/jollyroger/img/gallery_temp/thumbnail.php on line 23
Я прошел через код, и я не могу определить какие-либо фактические ошибки. Кажется, все в порядке.
Может кто-нибудь взглянуть на этот код и рассказать мне, если я что-то пропускаю? Из того, что я могу собрать, кажется, что что-то в функции list()
отбрасывает переменные.
Это код на самом деле в моем файле:
<?php
// thumb width
$square = 150;
$large = 200;
$small = 100;
////////////////////////////////////////////////////////////////////////////////// square
if(isset($_GET["img"]) && ($_GET["type"] == "square" || $_GET["type"] == "")){
// thumb size
$thumb_width = $square;
$thumb_height = $square;
// align
$align = $_GET["align"];
// image source
$imgSrc = $_GET["img"];
$imgExt = substr($imgSrc,-3);
// image extension
if($imgExt == "jpg"){ $myImage = imagecreatefromjpeg($imgSrc); }
if($imgExt == "gif"){ $myImage = imagecreatefromgif($imgSrc); }
if($imgExt == "png"){ $myImage = imagecreatefrompng($imgSrc); }
// getting the image dimensions
list($width_orig, $height_orig) = getimagesize($imgSrc);
// ratio
$ratio_orig = $width_orig/$height_orig;
// landscape or portrait?
if ($thumb_width/$thumb_height > $ratio_orig) {
$new_height = $thumb_width/$ratio_orig;
$new_width = $thumb_width;
} else {
$new_width = $thumb_height*$ratio_orig;
$new_height = $thumb_height;
}
// middle
$x_mid = $new_width/2;
$y_mid = $new_height/2;
// create new image
$process = imagecreatetruecolor(round($new_width), round($new_height));
imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
$thumb = imagecreatetruecolor($thumb_width, $thumb_height);
// alignment
if($align == ""){
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumb_width/2)), ($y_mid-($thumb_height/2)), $thumb_width, $thumb_height, $thumb_width, $thumb_height);
}
if($align == "top"){
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumb_width/2)), 0, $thumb_width, $thumb_height, $thumb_width, $thumb_height);
}
if($align == "bottom"){
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumb_width/2)), ($new_height-$thumb_height), $thumb_width, $thumb_height, $thumb_width, $thumb_height);
}
if($align == "left"){
imagecopyresampled($thumb, $process, 0, 0, 0, ($y_mid-($thumb_height/2)), $thumb_width, $thumb_height, $thumb_width, $thumb_height);
}
if($align == "right"){
imagecopyresampled($thumb, $process, 0, 0, ($new_width-$thumb_width), ($y_mid-($thumb_height/2)), $thumb_width, $thumb_height, $thumb_width, $thumb_height);
}
imagedestroy($process);
imagedestroy($myImage);
if($imgExt == "jpg"){ imagejpeg($thumb, null, 100); }
if($imgExt == "gif"){ imagegif($thumb); }
if($imgExt == "png"){ imagepng($thumb, null, 9); }
}
// normal
if(isset($_GET["img"]) && ($_GET["type"] == "large" || $_GET["type"] == "small") ){
if($_GET["type"] == "large"){ $thumb_width = $large; }
if($_GET["type"] == "small"){ $thumb_width = $small; }
// image source
$imgSrc = $_GET["img"];
$imgExt = substr($imgSrc,-3);
// image extension
if($imgExt == "jpg"){ $myImage = imagecreatefromjpeg($imgSrc); }
if($imgExt == "gif"){ $myImage = imagecreatefromgif($imgSrc); }
if($imgExt == "png"){ $myImage = imagecreatefrompng($imgSrc); }
//getting the image dimensions
list($width_orig, $height_orig) = getimagesize($imgSrc);
// ratio
$ratio_orig = $width_orig/$height_orig;
$thumb_height = $thumb_width/$ratio_orig;
// new dimensions
$new_width = $thumb_width;
$new_height = $thumb_height;
// middle
$x_mid = $new_width/2;
$y_mid = $new_height/2;
// create new image
$process = imagecreatetruecolor(round($new_width), round($new_height));
imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
$thumb = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumb_width/2)), ($y_mid-($thumb_height/2)), $thumb_width, $thumb_height, $thumb_width, $thumb_height);
if($imgExt == "jpg"){ imagejpeg($thumb, null, 100); }
if($imgExt == "gif"){ imagegif($thumb); }
if($imgExt == "png"){ imagepng($thumb, null, 9); }
}
?>
Даже эта линия в моем редакторе выделяется красным цветом, который указывает на ошибку, но так как переменная запуска ошибки PHP это один не показал в все журналы. Рассматривая эту строку, я не вижу ничего плохого.
if(isset($_GET["img"]) && ($_GET["type"] == "large" || $_GET["type"] == "small") ){
Я скопировал код прямо из веб-сайта, так что я в недоумении, почему он не работает. Как я уже сказал, я просмотрел его, и все, кажется, в порядке, поэтому я полностью потеряю.
Также этот скрипт находится в том же каталоге, что и мои файлы изображений. Мой тестовый URL-адрес выглядит так: http://localhost:8080/jollyroger/jollyroger/img/gallery_temp/thumbnail.php?img=1959523_1501438810115481_7515978806557307096_n.jpg
Вы уверены, что используете один и тот же скрипт, который вы разместили здесь? Я бы почти поспорил, что вы случайно удалили точку с запятой в строке кода до, в конце 'list ($ width_orig, $ height_orig) = getimagesize ($ imgSrc); ' – ArSeN
Код, указанный здесь, скопирован из моего редактора кода. Если он отсутствует в моем коде, здесь он отсутствует. Вот почему я предоставил ссылку на оригинал. Я не вижу каких-либо различий или причин ошибки. –
Хм, действительно странно. Поскольку в вашем сообщении нет пустых строк, но в источнике, который вы связали, есть несколько в коде, я подозреваю, что вы что-то сделали с ним (по крайней мере, удалите разрывы строк). Поэтому вы можете попробовать следующее: скопировать и вставить сценарий снова со страницы, с которой вы связаны, и просто ничего не меняете. Получается ли у вас такая же ошибка? – ArSeN