繁体   English   中英

调整文件夹和子文件夹中的图像大小

[英]Resize images inside folder and subfolders

我有这段PHP代码可以完美地调整图像大小: smart_resize_image(path/to/image.jpg);

现在,我想在一个文件夹中的所有图像运行它说parent和所有子文件夹的child1child2等。每隔一小时。

我可以在共享主机上执行此操作吗? 是的,我可以设置cron,但不确定如何在文件夹及其子文件夹上运行它。

谢谢!

您可以使用glob函数查找文件,然后通过您的resize方法循环搜索结果。 请注意,它必须由cron完成,因为它可能会花费更多时间,而这是Web服务器脚本上下文中所允许的。

您必须构建一个递归函数。 这很简单。 只是开始阅读第一个目录,如果找到每个目录的任何目录,请对其自身进行回调以解析每个文件夹。 这不是一个非常消耗函数。

请参阅: http : //www.codingforums.com/showthread.php?t=71882

将所有与所需扩展名匹配的文件转储到数组中,然后为它们运行调整大小功能。 为了避免出现任何内存问题,您可以通过CLI调用调整大小。 只需创建一个将文件路径作为参数(而不是参数get)的文件,然后使用shell_exec()进行调用即可。 这样,它将在一个独立的过程中很好地一个接一个地运行它们,而不会影响主过程。

PHP中的多处理..

您正在寻找一种递归算法,以深入浏览文件夹:

resizing( '/folder' );

function resizing( $folder )
{
  foreach( scandir( $folder ) as $file )
  {
    $filepath = $folder . '/' . $file;
    if( preg_match( '/^\./', $file ) ) continue; // not . and ..
    if( is_dir( $filepath ) ) resizing( $filepath ); // Send it off to drill - with this function!!
    // It's time to resize
    smart_resize_image( $filepath );
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM