首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows/php pclose和popen问题

Windows/php pclose和popen问题
EN

Stack Overflow用户
提问于 2011-08-12 23:38:09
回答 1查看 7.8K关注 0票数 1

下面是我的代码:

代码语言:javascript
复制
<?php
    require_once 'dbconnect.php';
    function execInBackground($cmd) { 
        if (substr(php_uname(), 0, 7) == "Windows"){ 
            pclose(popen("start /B ". $cmd, "r"));  
        } 
        else { 
            exec($cmd . " > /dev/null &");   
        } 
    } 

    if(isset($_GET['date'])){
        //CHECK LOCK
        $checkLock = "Select IS_FREE_LOCK('overnight') as `lock`;";
        $result = mysql_query($checkLock) or die(mysql_error());
        while($information = mysql_fetch_array($result)){
            if($information['lock'] == 0){
                die('Overnight is already running, please try again later.');
            }
        }
        execInBackground("php overnightQueries.php {$_GET['date']}");
        //echo "<pre>".print_r($output2, true)."</pre>";
        header('Refresh: 3; url=index.php');
        die('running queries...');
    }
    else {

        die('PLEASE SET DATE');

    }
?>

我使用的是windows机器。

我收到以下警告:

警告:popen(启动/B php overnightQueries.php 2011_08_12,r):第5行的C:\inetpub\GTSA\runOvernight.php中没有错误

和:

警告: pclose()要求参数1为资源,布尔值在第5行

上的C:\inetpub\GTSA\runOvernight.php中给定

EN

回答 1

Stack Overflow用户

发布于 2011-08-12 23:48:03

代码语言:javascript
复制
$handle = popen("start /B ". $cmd, "r");  
if ($handle === FALSE) {
   die("Unable to execute $cmd");
}
pclose($handle);

如果存在问题,popen将返回false,您盲目地将其传递给pclose,因此出现第二个错误。

对于第一个错误,请检查PHP是否在您的环境路径中-您可能需要指定php.exe的绝对路径。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7042591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档