2

我要问的是如何在 PHP 服务器上设置复制操作,以每隔 x 分钟从远程服务器复制图像文件。

基本上我想做:

$copy = copy('http://domain.com/image.jpg', '.images/destimg.jpg');

此外,它每 5 分钟完成一次!可以在不使用太多内存的情况下完成吗?cron工作怎么样?你有什么建议?

我实现的最简单的解决方案是这样的:

  1. 使用以下代码创建一个 php 文件

    <?php
    /*
     * Copy images from remote server 
     */
    
    $file = 'http://www.example.com/images/image.jpg';
    $file1 = 'http://www.example.com/images/image1.jpg';
    $file2 = 'http://www.example.com/images/image2.jpg';
    
    $newfile = '/ABSOLUTE/PATH/WHERE/TO/PUT/FILE/images/image.jpg';
    $newfile1 = '/ABSOLUTE/PATH/WHERE/TO/PUT/FILE/images/image1.jpg';
    $newfile2 = '/ABSOLUTE/PATH/WHERE/TO/PUT/FILE/images/image2.jpg';
    
    if ( copy($file, $newfile) && copy($file1, $newfile1) && copy($file2, $newfile2)) {
        echo "Copy success!";
        //return;
    } else {
        echo "Copy failed.";
    }
    ?>
    
  2. 测试您是否收到复制成功消息。

  3. 注释掉或删除 echo 和取消注释返回,删除 else 部分代码。
  4. 使用命令创建 cron 作业:

    php /ABSOLUTE/PATH/TO/YOUR/PHP/FILE/your-file.php

这就对了 :-)

4

1 回答 1

2

如果您有 ssh 访问权限并且可以设置cron工作,那么这相当简单。您只需设置一个使用curlwget下载图像并将其保存在适当文件夹中的 cron 作业。PHP 没有进入它。

使用 curl,您的 crontab 将类似于:

*/5 * * * * curl http://domain.com/image.jpg > /......./images/destimg.jpg

这设置为每 5 分钟运行一次。只需确保为图像目标设置绝对路径即可。

有关 cron 作业的更多信息:https ://en.wikipedia.org/wiki/Cron

于 2013-01-23T11:07:46.633 回答