- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试修复/调试一个站点,该站点中的所有图像都是由脚本生成的。另一个开发人员创建了这个。现在由于某种原因所有图像都不起作用。
我正在尝试调试代码并尝试在它应该工作的地方破坏它,这样我就可以看到什么被破坏并建立一个基线。但是我找不到正确调试它的方法。
谁能给我指出正确的方向,告诉我如何调试以下脚本或可能破坏的内容?我所做的一切似乎都不起作用。
更新:感谢 Pekka 웃 评论我现在可以看到错误,它说 Warning: imagejpeg(): Filename cannot be empty in/var/www/vhosts/mysticindia.co。 uk/httpdocs/inc/class.images.php 第 496 行
该行是该行之后的imagejpg()
if ($imageModify == "grey") {
imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE);
}
代码
<?php
class images {
var $imageID;
var $imageData;
var $image;
var $width;
var $height;
var $imageResized;
function __construct($imageID = null) {
if ($imageID !== null) {
$this->imageID = $imageID;
$this->imageData = $this->getImageInfo();
}
}
function removeImage() {
if ($this->imageID) {
$query = "DELETE FROM Images ";
$query .= "WHERE ImageID = '%s' ";
$result = RunQuery($query,__LINE__);
$query = sprintf($query, mysql_real_escape_string($this->imageID));
$result = RunQuery($query,__LINE__);
tableEmpty("Images");
}
}
private function buildImageQuery($options=array()) {
global $maxItems;
$maxItems = ((isset($options["maxItems"])) && (!empty($options["maxItems"]))) ? $options["maxItems"] : $maxItems;
$pageID = isset($options["pageID"]) ? $options["pageID"] : "";
$orderBy = ((isset($options["orderBy"])) && (!empty($options["orderBy"]))) ? $options["orderBy"] : "ImageIndex";
$sortBy = ((isset($options["sortBy"])) && (!empty($options["sortBy"]))) ? $options["sortBy"] : "ASC";
$groupBy = (isset($options["groupBy"])) ? $options["groupBy"] : "";
$groupBy = (isset($options["groupBy"])) ? $options["groupBy"] : "";
$limit = isset($options["limit"]) ? $options["limit"] : "";
$searchArray = isset($options["searchArray"]) ? $options["searchArray"] : "";
$recordOffset = ($pageID - 1) * $maxItems;
$query = "SELECT SQL_CALC_FOUND_ROWS i.ImageID, ImageName, ImageIndex FROM Images i ";
$query .= "WHERE i.ImageID != '0' ";
if ((isset($searchArray["catalogue"])) && (!empty($searchArray["catalogue"]))) {
$query .= "AND Catalogue = '" . $searchArray["catalogue"] . "' ";
}
if ((isset($searchArray["catalogueID"])) && (!empty($searchArray["catalogueID"]))) {
if (is_array($searchArray["catalogueID"])) {
$count = 0;
$query .= "AND (";
foreach ($searchArray["catalogueID"] as $catalogueID) {
$count++;
$query .= "CatalogueID= '" . $catalogueID . "' ";
if ($count < count($searchArray["catalogueID"])) {
$query .= "OR ";
}
}
$query .= ") ";
} else {
$query .= "AND CatalogueID= '" . $searchArray["catalogueID"] . "' ";
}
}
if ((isset($searchArray["imageName"])) && (!empty($searchArray["imageName"]))) {
$query .= "AND ImageName = '" . $searchArray["imageName"] . "' ";
}
if ((isset($groupBy)) && (!empty($groupBy))) {
$query .= "GROUP BY " . $groupBy . " ";
}
if ((isset($groupBy)) && (!empty($groupBy))) {
$query .= "GROUP BY " . $groupBy . " ";
}
if ($orderBy) {
$query .= "ORDER BY $orderBy $sortBy ";
}
if (($pageID) && (empty($limit))) {
$query .= "LIMIT $recordOffset, $maxItems ";
} else if (!empty($limit)) {
$query .= "LIMIT $limit ";
}
return $query;
}
function getImages($options=array()) {
global $maxItems;
$maxItems = ((isset($options["maxItems"])) && (!empty($options["maxItems"]))) ? $options["maxItems"] : $maxItems;
$pageID = isset($options["pageID"]) ? $options["pageID"] : "";
$recordOffset = ($pageID - 1) * $maxItems;
$dataArray = array();
$listArray = array();
$maxPages = 0;
$query = $this->buildImageQuery($options);
$result = RunQuery($query,__LINE__);
if (($pageID) && (empty($limit))) {
$query2 = "SELECT FOUND_ROWS() AS NoItems ";
$result2 = RunQuery($query2);
$row2 = mysql_fetch_assoc($result2);
$maxPages = ceil($row2["NoItems"] / $maxItems);
}
if (mysql_num_rows($result) != 0) {
while ($row = mysql_fetch_assoc($result)) {
$listArray[] = $row["ImageID"];
}
$dataArray["maxPages"] = $maxPages;
$dataArray["results"] = $listArray;
return $dataArray;
}
}
function listImages($options=array()) {
$query = $this->buildImageQuery($options);
$result = RunQuery($query,__LINE__);
if (mysql_num_rows($result)) {
$dataArray = array();
while ($row = mysql_fetch_assoc($result)) {
$key = $row["ImageID"];
$value = $row["ImageName"];
$dataArray[$key] = $value;
}
return $dataArray;
} else {
return false;
}
}
function manageImage($options=array()) {
global $sesAdminID;
$imageInfo = isset($options["imageInfo"]) ? $options["imageInfo"] : "";
$catalogue = isset($options["catalogue"]) ? $options["catalogue"] : "";
$catalogueID = isset($options["catalogueID"]) ? $options["catalogueID"] : "";
$imageCaption = isset($options["imageCaption"]) ? $options["imageCaption"] : "";
$imageName = isset($imageInfo["imageName"]) ? $imageInfo["imageName"] : "";
$imageWidth = isset($imageInfo["imageWidth"]) ? $imageInfo["imageWidth"] : "";
$imageHeight = isset($imageInfo["imageHeight"]) ? $imageInfo["imageHeight"] : "";
$imageType = isset($imageInfo["imageType"]) ? $imageInfo["imageType"] : "image/jpeg";
$imageIndex = isset($imageInfo["imageIndex"]) ? $imageInfo["imageIndex"] : "";
if ($this->imageID) {
$query = "UPDATE Images SET ";
$query .= "ImageName = '%s', ";
$query .= "ImageWidth = '%s', ";
$query .= "ImageHeight = '%s', ";
$query .= "ImageType = '%s', ";
$query .= "Catalogue = '%s', ";
$query .= "CatalogueID = '%s', ";
$query .= "ImageCaption = '%s', ";
$query .= "ImageIndex = '%s' ";
$query .= "WHERE ImageID = '" . $this->imageID . "' ";
} else {
$query = "INSERT INTO Images SET ";
$query .= "ImageName = '%s', ";
$query .= "ImageWidth = '%s', ";
$query .= "ImageHeight = '%s', ";
$query .= "ImageType = '%s', ";
$query .= "Catalogue = '%s', ";
$query .= "CatalogueID = '%s', ";
$query .= "ImageCaption = '%s', ";
$query .= "ImageIndex = '%s' ";
}
$query = sprintf($query, mysql_real_escape_string($imageName),
mysql_real_escape_string($imageWidth),
mysql_real_escape_string($imageHeight),
mysql_real_escape_string($imageType),
mysql_real_escape_string($catalogue),
mysql_real_escape_string($catalogueID),
mysql_real_escape_string($imageCaption),
mysql_real_escape_string($imageIndex));
$result = RunQuery($query,__LINE__);
$this->imageID = (!empty($this->imageID)) ? $this->imageID : mysql_insert_id();
return $this->imageID;
}
function updateCaption($imageCaption) {
$query = "UPDATE Images SET ";
$query .= "ImageCaption = '%s' ";
$query .= "WHERE ImageID = '%s' ";
$query = sprintf($query, mysql_real_escape_string($imageCaption),
mysql_real_escape_string($this->imageID));
$result = RunQuery($query,__LINE__);
}
function reOrderImages($options=array()) {
$catalogue = isset($options["catalogue"]) ? $options["catalogue"] : "";
$catalogueID = isset($options["catalogueID"]) ? $options["catalogueID"] : "";
$sortOrder = isset($options["sortOrder"]) ? str_replace("Image_", "", $options["sortOrder"]) : "";
if (!empty($sortOrder)) {
$sortArray = explode(",", $sortOrder);
foreach ($sortArray as $order => $imageID) {
$query = "UPDATE Images SET ";
$query .= "ImageIndex = '%s' ";
$query .= "WHERE ImageID = '%s' ";
$query .= "AND Catalogue = '%s' ";
$query .= "AND CatalogueID = '%s' ";
$query = sprintf($query, mysql_real_escape_string($order),
mysql_real_escape_string($imageID),
mysql_real_escape_string($catalogue),
mysql_real_escape_string($catalogueID));
$result = RunQuery($query,__LINE__);
}
}
}
function returnImageType($options=array()) {
$imageName = ((isset($options["imageName"])) && (!empty($options["imageName"]))) ? $options["imageName"] : "";
$imageType = ((isset($options["imageType"])) && (!empty($options["imageType"]))) ? $options["imageType"] : "";
// Image Extensions
$imgExt["pjpeg"] = "jpg";
$imgExt["jpeg"] = "jpg";
$imgExt["gif"] = "gif";
$imgExt["png"] = "png";
$imgExt["jpg"] = "jpg";
// Image Types
$imgType["pjpeg"] = "jpeg";
$imgType["jpeg"] = "jpeg";
$imgType["jpg"] = "jpeg";
$imgType["gif"] = "gif";
$imgType["png"] = "png";
if ($imageType) {
$tempImageType = explode("/", strtolower($imageType));
$tempImageType = str_replace(" ", "", $tempImageType[count($tempImageType)-1]);
} else if ($imageName) {
$tempImageType = explode("/", strtolower($imageName));
$tempImageType = explode(".", $tempImageType[count($tempImageType)-1]);
$tempImageType = $tempImageType[count($tempImageType)-1];
} else {
return "";
}
$resizeInfo = array();
$resizeInfo["imageType"] = isset($imgType[$tempImageType]) ? $imgType[$tempImageType] : "jpeg";
$resizeInfo["imageExt"] = isset($imgExt[$tempImageType]) ? $imgExt[$tempImageType] : "jpg";
return $resizeInfo;
}
function createImageName($imageFolder,$imageName) {
global $documentRoot;
if (file_exists($documentRoot . $imageFolder . $imageName)) {
$imageName = strtotime("now") . "_" . $imageName;
}
return $imageName;
}
function uploadImage($options=array()) {
global $documentRoot, $imageFolder, $maxImageW;
$imageInfo = array();
$imageLocal = ((isset($options["tmp_name"])) && (!empty($options["tmp_name"]))) ? $options["tmp_name"] : "";
$imageType = ((isset($options["type"])) && (!empty($options["type"]))) ? $options["type"] : "";
$imageName = ((isset($options["name"])) && (!empty($options["name"]))) ? $options["name"] : "";
$imageSize = ((isset($options["size"])) && (!empty($options["size"]))) ? $options["size"] : "";
$functionArray = array("imageName"=>$imageName,"imageType"=>$imageType);
$imageTypeInfo = $this->returnImageType($functionArray);
$tempImageType = $imageTypeInfo["imageType"];
$tempImageExt = $imageTypeInfo["imageExt"];
$row = getimagesize($imageLocal);
$width = $row[0];
$height = $row[1];
$imageName = $this->createImageName($imageFolder,fileNameFix($imageName) . "." . $tempImageExt);
if ($width <= $maxImageW) {
copy($imageLocal, $documentRoot . $imageFolder . $imageName);
$imageInfo["imageWidth"] = $width;
$imageInfo["imageHeight"] = $height;
} else {
$functiontoRun = "imagecreatefrom" . $tempImageType;
$this->image = $functiontoRun($imageLocal);
$functionArray = array("origWidth"=>$width,"origHeight"=>$height,"imageWidth"=>$maxImageW);
$resizeImage = $this->resizeImage($functionArray);
$newImageWidth = $resizeImage["CanvasWidth"];
$newImageHeight = $resizeImage["CanvasHeight"];
$image = imagecreatetruecolor($newImageWidth, $newImageHeight);
imagecopyresampled($image, $this->image, 0, 0, 0, 0, $newImageWidth, $newImageHeight, $width, $height);
$functiontoRun = "image" . $tempImageType;
@$functiontoRun($image, $documentRoot . $imageFolder . $imageName) or die("can not create image");
$imageInfo["imageWidth"] = $newImageWidth;
$imageInfo["imageHeight"] = $newImageHeight;
}
$imageInfo["imageType"] = $imageType;
$imageInfo["imageName"] = $imageName;
return $imageInfo;
}
function uploadImages($options=array()) {
$catalogue = isset($options["catalogue"]) ? $options["catalogue"] : "";
$catalogueID = isset($options["catalogueID"]) ? $options["catalogueID"] : "";
$newImages = isset($options["newImages"]) ? $options["newImages"] : "";
$functionArray = array("searchArray"=>$options);
$imageIndex = $this->returnImageIndex($functionArray);
foreach ($newImages as $newImage) {
$imageIndex++;
$imageCaption = $newImage["caption"];
$imageInfo = $this->uploadImage($newImage);
$functionArray = array("imageCaption"=>$imageCaption,"imageInfo"=>$imageInfo,"catalogue"=>$catalogue,"catalogueID"=>$catalogueID,"imageIndex"=>$imageIndex);
$this->imageID = 0;
$this->manageImage($functionArray);
}
}
private function getDimensions($newWidth, $newHeight, $option) {
switch ($option) {
case 'exact':
$optimalWidth = $newWidth;
$optimalHeight= $newHeight;
break;
case 'portrait':
$optimalWidth = $this->getSizeByFixedHeight($newHeight);
$optimalHeight= $newHeight;
break;
case 'landscape':
$optimalWidth = $newWidth;
$optimalHeight= $this->getSizeByFixedWidth($newWidth);
break;
case 'auto':
$optionArray = $this->getSizeByAuto($newWidth, $newHeight);
$optimalWidth = $optionArray['optimalWidth'];
$optimalHeight = $optionArray['optimalHeight'];
break;
case 'square':
$optionArray = $this->getOptimalCrop($newWidth, $newHeight);
$optimalWidth = $optionArray['optimalWidth'];
$optimalHeight = $optionArray['optimalHeight'];
break;
}
return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight);
}
private function getSizeByFixedHeight($newHeight) {
$ratio = $this->width / $this->height;
$newWidth = $newHeight * $ratio;
return $newWidth;
}
private function getSizeByFixedWidth($newWidth) {
$ratio = $this->height / $this->width;
$newHeight = $newWidth * $ratio;
return $newHeight;
}
private function getSizeByAuto($newWidth, $newHeight) {
if ($this->height < $this->width) {
$optimalWidth = $newWidth;
$optimalHeight= $this->getSizeByFixedWidth($newWidth);
} elseif ($this->height > $this->width) {
$optimalWidth = $this->getSizeByFixedHeight($newHeight);
$optimalHeight= $newHeight;
} else {
if ($newHeight < $newWidth) {
$optimalWidth = $newWidth;
$optimalHeight= $this->getSizeByFixedWidth($newWidth);
} else if ($newHeight > $newWidth) {
$optimalWidth = $this->getSizeByFixedHeight($newHeight);
$optimalHeight= $newHeight;
} else {
// *** Sqaure being resized to a square
$optimalWidth = $newWidth;
$optimalHeight= $newHeight;
}
}
return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight);
}
private function getOptimalCrop($newWidth, $newHeight) {
$heightRatio = $this->height / $newHeight;
$widthRatio = $this->width / $newWidth;
if ($heightRatio < $widthRatio) {
$optimalRatio = $heightRatio;
} else {
$optimalRatio = $widthRatio;
}
$optimalHeight = $this->height / $optimalRatio;
$optimalWidth = $this->width / $optimalRatio;
return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight);
}
private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight) {
// *** Find center - this will be used for the crop
$optionArray["cropStartX"] = ( $optimalWidth / 2) - ( $newWidth /2 );
$optionArray["cropStartY"] = ( $optimalHeight/ 2) - ( $newHeight/2 );
return $optionArray;
}
public function resizeImage($options=array()) {
$imageCrop = ((isset($options["imageCrop"])) && (!empty($options["imageCrop"]))) ? $options["imageCrop"] : "landscape";
$this->width = ((isset($options["origWidth"])) && (!empty($options["origWidth"]))) ? $options["origWidth"] : 0;
$this->height = ((isset($options["origHeight"])) && (!empty($options["origHeight"]))) ? $options["origHeight"] : 0;
$newWidth = ((isset($options["imageWidth"])) && (!empty($options["imageWidth"]))) ? $options["imageWidth"] : 0;
$newHeight = ((isset($options["imageHeight"])) && (!empty($options["imageHeight"]))) ? $options["imageHeight"] : 0;
if ((empty($newHeight)) && ($imageCrop == "square")) {
$newHeight = $newWidth;
}
// *** Get optimal width and height - based on $option
$optionArray = $this->getDimensions($newWidth, $newHeight, $imageCrop);
if ($imageCrop == 'square') {
$tempOptions = $this->crop($optionArray["optimalWidth"], $optionArray["optimalHeight"], $newWidth, $newHeight);
$optionArray["cropStartX"] = $tempOptions["cropStartX"];
$optionArray["cropStartY"] = $tempOptions["cropStartY"];
}
$optionArray["CanvasWidth"] = $newWidth;
$optionArray["CanvasHeight"] = (!empty($newHeight)) ? $newHeight : $optionArray["optimalHeight"];
return $optionArray;
}
function showImage($options=array()) {
global $documentRoot, $imageFolder;
$imageSize = ((isset($options["imageSize"])) && (!empty($options["imageSize"]))) ? $options["imageSize"] : "";
$imageCrop = ((isset($options["imageCrop"])) && (!empty($options["imageCrop"]))) ? $options["imageCrop"] : "";
$imageType = ((isset($options["imageType"])) && (!empty($options["imageType"]))) ? $options["imageType"] : "";
$imageName = ((isset($options["imageName"])) && (!empty($options["imageName"]))) ? $options["imageName"] : "";
$imageModify = ((isset($options["imageModify"])) && (!empty($options["imageModify"]))) ? $options["imageModify"] : "";
$imageQuality = ((isset($options["imageQuality"])) && (!empty($options["imageQuality"]))) ? $options["imageQuality"] : 100;
$imageFolder = ((isset($options["imageFolder"])) && (!empty($options["imageFolder"]))) ? $options["imageFolder"] : $imageFolder;
if (($imageType) || ($imageSize) || ($imageCrop)) {
if ((!empty($imageSize)) && (!empty($imageType))) {
$imageSize .= ucfirst($imageType);
} else if ((empty($imageSize)) && (!empty($imageType))) {
$imageSize .= strtolower($imageType);
}
$imageSize .= (!empty($imageCrop)) ? ucfirst($imageCrop) : "";
$tempWidth = lcfirst($imageSize . "W");
$tempHeight = lcfirst($imageSize . "H");
global $$tempWidth, $$tempHeight;
$maxWidth = isset($$tempWidth) ? $$tempWidth : 0;
$maxHeight = isset($$tempHeight) ? $$tempHeight : 0;
}
if (empty($maxWidth)) {
$tempWidth = "maxImageW";
$tempHeight = "maxImageH";
global $$tempWidth, $$tempHeight;
$maxWidth = isset($$tempWidth) ? $$tempWidth : 0;
$maxHeight = isset($$tempHeight) ? $$tempHeight : 0;
}
if (empty($this->imageID)) {
$searchArray = array("imageName"=>$imageName);
$functionArray = array("searchArray"=>$searchArray);
$this->imageID = $this->returnImageID($functionArray);
}
$imageData = $this->getImageInfo();
if (is_array($imageData)) {
$imageName = $imageData["ImageName"];
$width = $imageData["ImageWidth"];
$height = $imageData["ImageHeight"];
$imageType = $imageData["ImageType"];
} else {
$imageType = "";
}
$functionArray = array("imageName"=>$imageName,"imageType"=>$imageType);
$imageTypeInfo = $this->returnImageType($functionArray);
$tempImageType = $imageTypeInfo["imageType"];
$tempImageExt = $imageTypeInfo["imageExt"];
$thisImage = $documentRoot . $imageFolder . $imageName;
if (file_exists($thisImage)) {
if ((empty($width)) || (empty($height))) {
$row = getimagesize($thisImage);
$width = $row[0];
$height = $row[1];
}
if ((isset($maxWidth)) && (($width > $maxWidth) || ($height > $maxHeight))) {
$functiontoRun = "imagecreatefrom" . $tempImageType;
$this->image = $functiontoRun($thisImage);
if (!$this->image) {
$this->image = imagecreatefromjpeg($thisImage);
}
$functionArray = array("imageCrop"=>$imageCrop,"origWidth"=>$width,"origHeight"=>$height,"imageWidth"=>$maxWidth,"imageHeight"=>$maxHeight);
$resizeImage = $this->resizeImage($functionArray);
$optimalWidth = $resizeImage['optimalWidth'];
$optimalHeight = $resizeImage['optimalHeight'];
$canvasWidth = $resizeImage["CanvasWidth"];
$canvasHeight = $resizeImage["CanvasHeight"];
$cropStartX = isset($resizeImage["cropStartX"]) ? $resizeImage["cropStartX"] : 0;
$cropStartY = isset($resizeImage["cropStartY"]) ? $resizeImage["cropStartY"] : 0;
// *** Resample - create image canvas of x, y size
$this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight);
$background = imagecolorallocate($this->imageResized, 255, 255, 255);
imagefill ($this->imageResized, 0, 0, $background);
imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height);
// *** if option is 'crop', then crop too
if ($imageCrop == 'square') {
$crop = $this->imageResized;
//imagedestroy($this->imageResized);
// *** Now crop from center to exact requested size
$this->imageResized = imagecreatetruecolor($canvasWidth , $canvasHeight);
imagecopyresampled($this->imageResized, $crop , 0, 0, $cropStartX, $cropStartY, $canvasWidth, $canvasHeight , $canvasWidth, $canvasHeight);
}
if ($imageModify == "grey") {
imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE);
}
header("Content-type: image/$tempImageType");
imagejpeg($this->imageResized, "", $imageQuality);
exit();
} else {
header("Content-type: image/$tempImageType");
$image = imagecreatefromjpeg($thisImage);
imagejpeg($image);
exit();
}
}
else {
header("HTTP/1.0 404 Not Found");
exit();
}
}
private function grayscale($r, $g, $b) {
return (($r*0.299)+($g*0.587)+($b*0.114));
}
function returnImageID($options=array()) {
$imageID = 0;
$query = $this->buildImageQuery($options);
$result = RunQuery($query,__LINE__);
if (mysql_num_rows($result) != 0) {
$row = mysql_fetch_assoc($result);
$imageID = $row["ImageID"];
}
return $imageID;
}
function returnImageIndex($options=array()) {
$imageIndex = 0;
$query = $this->buildImageQuery($options);
$result = RunQuery($query,__LINE__);
if (mysql_num_rows($result) != 0) {
$row = mysql_fetch_assoc($result);
$imageIndex = $row["ImageIndex"];
}
return $imageIndex;
}
private function getImageInfo() {
$query = "SELECT ImageID, ImageName, ImageWidth, ImageHeight, ImageType, Catalogue, CatalogueID, ImageCaption, ImageIndex FROM Images i ";
$query .= "WHERE ImageID= '%s' ";
$query = sprintf($query, mysql_real_escape_string($this->imageID));
$result = RunQuery($query,__LINE__);
if (mysql_num_rows($result) != 0) {
return mysql_fetch_assoc($result);
}
}
}
?>
最佳答案
当你说:
I am trying to fix/debug a site where all images in the site are being generated by an script.
查看这段代码意味着该站点的图像实际上通过 file_exists()
检查以某种方式存储在文件系统中:
$thisImage = $documentRoot . $imageFolder . $imageName;
if (file_exists($thisImage)) {
if ((empty($width)) || (empty($height))) {
$row = getimagesize($thisImage);
$width = $row[0];
$height = $row[1];
}
if ((isset($maxWidth)) && (($width > $maxWidth) || ($height > $maxHeight))) {
$functiontoRun = "imagecreatefrom" . $tempImageType;
$this->image = $functiontoRun($thisImage);
if (!$this->image) {
$this->image = imagecreatefromjpeg($thisImage);
}
此外,查看大量重复代码以及这组奇怪的 if (
检查,我会专注于 function showImage($options=array()) {
.
现在回复您的评论,告诉我们网站是什么以及图片未加载的事实。
加载这样的 URL:
http://www.mysticindia.co.uk/images/galleries/small/square/JCxTPFAsMGBgCmA.jpg
显示一个错误——我假设它来自你的调试——像这样:
_image.phpA: Resource id #11 Warning: imagejpeg(JC0jQFgsMGBgCmA.jpg): failed to open stream: Permission denied in /var/www/vhosts/mysticindia.co.uk/httpdocs/inc/class.images.php on line 496
failed to open stream
告诉我,当您说图像是由脚本生成时,文件系统交互显然在某个时刻发生。
然后是这个错误:
Permission denied in /var/www/vhosts/mysticindia.co.uk/httpdocs/inc/class.images.php on line 496
似乎告诉我错误不在您的代码中,而是在文件系统权限中。似乎脚本确实在生成衍生缩略图和父图像的其他版本。但在某些时候,脚本会以某种方式将它们缓存到文件系统中。不清楚源图像的来源——数据库中的 BLOB——但我现在最好的建议是查看网站的文件系统权限,看看是否有任何变化。
我的意思是你——或其他人——没有搞砸这个脚本,但它停止工作了,对吧?我敢打赌这个脚本用来缓存衍生品的目录不再存在或拥有不正确的所有权或权限。类似的东西会扼杀这个过程。
关于php - 如何调试图像创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20427330/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!