我正在尝试遍历一个充满图像的文件夹,并在另一个文件夹中调整它们的副本的大小。当我尝试使用其中一个时,它工作正常,但是当我循环它时,它不起作用。不知道我做错了什么。我没有收到任何错误。
<?php
include_once 'dbconfig.php';
?>
<?php
// exec('/usr/bin/convert /home/forbes11/public_html/gallery/uploads/10114-20170610_211655_182.jpg -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/10114-20170610_211655_182.jpg');
$sql = "SELECT * FROM tbl_uploads";
$result_set = mysql_query($sql);
while ($row = mysql_fetch_array($result_set))
{
$pic = $row['file'];
// echo $pic;
exec('/usr/bin/convert /home/forbes11/public_html/gallery/uploads/$pic -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/$pic');
}
?>
在exec()
调用中,您应该使用字符串串联或双引号来让解释器识别您的$pic
变量。
exec('/usr/bin/convert /home/forbes11/public_html/gallery/uploads/' . $pic . ' -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/' . $pic);
或
exec("/usr/bin/convert /home/forbes11/public_html/gallery/uploads/$pic -resize 340x340 /home/forbes11/public_html/gallery/uploads/thumbnails/$pic");
不确定PHP和数据库访问在做什么,但是如果你有一个充满JPEG图像的目录,你想要调整大小并将缩略图保存在一个新目录中,你可以使用ImageMagick的mogrify
命令从命令行非常轻松地做到这一点:
mogrify -path /output/directory -resize 340x340 *.jpg
如果文件名来自MySQL,则可以将它们传递到mogrify
stdin
:
mysql_query_listing_filenames | mogrify -path /output/directory -resize 340x340 *.jpg @-