我想添加一个水印到一个目录中的所有图像动态使用php和.htaccess。下面的php代码在第6行给了我一个错误,说‘未定义的索引:i。’我所有的图像都是.gif以及.png和.jpeg。
<?php
$basedir="C:/vhosts/phpcs5/images/product_images";
$watermarkimage="PreviewWatermark.png";
$file=basename($_GET['i']);
$image = $basedir."/".$file;
$watermark = $basedir."/".$watermarkimage;
$im = imagecreatefrompng($watermark);
$ext = substr($image, -3);
if (strtolower($ext) == "gif") {
if (!$im2 = imagecreatefromgif($image)) {
echo "Error opening $image!"; exit;
}
} else if(strtolower($ext) == "jpg") {
if (!$im2 = imagecreatefromjpeg($image)) {
echo "Error opening $image!"; exit;
}
} else if(strtolower($ext) == "png") {
if (!$im2 = imagecreatefrompng($image)) {
echo "Error opening $image!"; exit;
}
} else {
die;
}
imagefilledrectangle($im2, 0 , (imagesy($im2))-(imagesy($im)) , imagesx($im2) , imagesy($im2) , imagecolorallocatealpha($im2, 0, 0, 0, 100) ); imagecopy($im2, $im, (imagesx($im2)-(imagesx($im))), (imagesy($im2))-(imagesy($im)), 0, 0, imagesx($im), imagesy($im));
$last_modified = gmdate('D, d M Y H:i:s T', filemtime ($image));
header("Last-Modified: $last_modified");
header("Content-Type: image/jpeg");
imagejpeg($im2,NULL,95);
imagedestroy($im);
imagedestroy($im2);
?>
这是我的.htaccess文件
RewriteRule ^([^thumb].*\.[jJ].*)$ phpcs5/images/product_images/w.php?i=$1 [L]
发布于 2014-01-21 14:54:20
我想问题出在你的重写规则上。您将匹配任何不是以t、h、u、m或b开头的内容。如果不能更好地了解您希望重写规则做什么,我就不能提供任何额外的帮助。
然而,我猜你想重写任何不以单词thumb开头的内容,扩展名以j开头。(例如,thumbfoo.jpg不会重写,但myimage.jpg会重写)
RewriteCond %{REQUEST_URI} !^thumb.*\.[jJ].*$
RewriteRule !(.*) /phpcs5/images/product_images/w.php?i=$1 [L]
https://stackoverflow.com/questions/21182121
复制相似问题