PHP脚本可以从浏览器运行,但不能从Windows服务器任务调度器或CMDPS运行。

问题描述 投票:0回答:1

我有一个简单的脚本,叫做 webcam.php 获取一些网络摄像头的截图

<?php
    $d=date('YmdHis');
    $url = 'http://xxx:40801/snap.jpeg?'.$d;
    $img = 'camera_east.jpg';
    echo file_put_contents($img, file_get_contents($url));

    $url = 'http://xxx:40802/snap.jpeg?'.$d;
    $img = 'camera_west.jpg';
    echo file_put_contents($img, file_get_contents($url));

    echo $d;
?>

如果我叫 http://xxx/webcam.php 从浏览器中找到了两张图片,脚本以回声的形式返回文件的长度和时间戳。

我试着让这个脚本由windows调度器执行,但虽然它返回了 0x0 图片没有更新。

(我也试过 unlinking 的图像,还使用 curl 但没有任何变化)

然后我试着从命令行运行PHP脚本(也是PowerShell):类似这样。

C:\Program Files\PHP\v7.2\php.exe -f C:\\webcam.php

但同样,虽然看起来很有效,因为它返回了两个文件的长度和时间戳,但图片并没有更新,如果我添加上 unlink 命令,文件没有被取消。

明明文件夹有所有权限...

我在PHP方面的经验不多......:-(会有什么问题呢?

谢谢你

command-line windows-server-2012-r2 php-7.2 windows-task-scheduler
1个回答
0
投票

显然从cmdpsscheduler需要完整的路径,而从浏览器可以接受相对路径

© www.soinside.com 2019 - 2024. All rights reserved.