我使用WAMP,自从我学习PHP以来,我一直在运行我的php脚本,通过访问网页本身来查看输出。例如,要查看名为script.php的脚本的输出,请继续使用localhost / script.php。
有更好的方法吗?我的意思是,在Java中有Eclipse,您只需单击绿色按钮,它就会为您运行代码并立即看到输出。 PHP有这样的东西吗?
答案 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