后台exec()和写入磁盘

时间:2017-08-22 15:28:25

标签: php download background-process

我有这个小脚本(background.php):

<?php

    $url = urldecode($_SERVER['argv'][1]);
    $id = $_SERVER['argv'][2];
    $name = $id.'.mp4';
    $proof = $id.'.proof';

    // Download
    file_put_contents("temp/$name", fopen($url, 'r'));
    file_put_contents("temp/$proof", "");

?>

我想在后台运行它。

案例1

如果我exec('php download.php my_url id > /dev/null &');它在后台运行,但不下载任何内容。

案例2

如果我exec('php download.php my_url id >> temp/loging.log &');它会下载文件而不是后台(下载我的网页时是“加载”)。

任何人都可以帮助我吗?

备注

我在Windows上使用UniServerZ运行php

1 个答案:

答案 0 :(得分:0)

如果您在Windows上运行,则无效。

你必须做

pclose(popen('start /B cmd /C "php download.php my_url id >NUL 2>NUL"', 'r'));

我不确定/B/C代表什么。