PHP:运行PHP脚本而不进入网页?

时间:2013-11-23 04:54:16

标签: php

我使用WAMP,自从我学习PHP以来,我一直在运行我的php脚本,通过访问网页本身来查看输出。例如,要查看名为script.php的脚本的输出,请继续使用localhost / script.php。

有更好的方法吗?我的意思是,在Java中有Eclipse,您只需单击绿色按钮,它就会为您运行代码并立即看到输出。 PHP有这样的东西吗?

3 个答案:

答案 0 :(得分:2)

可以在没有Web服务器的情况下从命令行运行PHP脚本。为此,请在脚本中添加以下逻辑:

if (defined('STDIN')) {
    if (isset($argv)){
      // handle your command line arguments here with getopt
    }
}
// GET request parameter definitions //
else {
  // handle your URL parameters (via GET or POST requests) here
}

使用PHP解释器从命令行运行脚本时

php myfile.php -s --longflag <argument>

定义了STDIN,您可以在if块中使用getopt处理命令行开关,标志和参数。

当您通过Web服务器上的URL访问时,脚本会到达else块。您当前拥有的PHP代码可以放在该块中。

以下是我的一个项目的示例,演示了如何将URL参数作为短或长命令行选项来处理:

// Command line parameter definitions //
if (defined('STDIN')) {
    // check whether arguments were passed, if not there is no need to attempt to check the array
    if (isset($argv)){
        $shortopts = "c:";
        $longopts = array(
            "xrt",
            "xrp",
            "user:",
        );
        $params = getopt($shortopts, $longopts);
        if (isset($params['c'])){
            if ($params['c'] > 0 && $params['c'] <= 200)
                $count = $params['c'];  //assign to the count variable
        }
        if (isset($params['xrt'])){
            $include_retweets = false;
        }
        if (isset($params['xrp'])){
            $exclude_replies = true;
        }
        if (isset($params['user'])){
            $screen_name = $params['user'];
        }
    }
}
// Web server URL parameter definitions //
else {
    // c = tweet count ( possible range 1 - 200 tweets, else default = 25)
    if (isset($_GET["c"])){
        if ($_GET["c"] > 0 && $_GET["c"] <= 200){
            $count = $_GET["c"];
        }
    }
    // xrt = exclude retweets from the timeline ( possible values: 1=true, else false)
    if (isset($_GET["xrt"])){
        if ($_GET["xrt"] == 1){
            $include_retweets = false;
        }
    }
    // xrp = exclude replies from the timeline (possible values: 1=true, else false)
    if (isset($_GET["xrp"])){
        if ($_GET["xrp"] == 1){
            $exclude_replies = true;
        }
    }
    // user = Twitter screen name for the user timeline that the user is requesting (default = their own, possible values = any other Twitter user name)
    if (isset($_GET["user"])){
        $screen_name = $_GET["user"];
    }
} // end else block

我发现这对测试有帮助。希望它有所帮助。

答案 1 :(得分:1)

Jetbrains PHP storm是一个很好的调试工具

答案 2 :(得分:1)

如果您使用Sublime Text作为文本编辑器,则可以使用XDebug