php - 替换 $_GET 以使其从命令行工作

标签 php linux command-line get

目前我有这个小脚本可以检查域名是否免费。它在浏览器中运行,当您键入 check.php?domain=xxxx.com 并查看它是否免费时。

由于使用了 $_GET,它只能在浏览器中使用,而不能在命令行中使用。

PHP 手册说我应该使用 $argv 或 getopt() 来实现这一点。我试过了,但后来我的脚本停止工作了。

如何使以下代码在命令行中运行?

<?php
include_once('/home/xxx/API.php');  
$CClient = new XCApi();
$CClient->isAvailable();
$d = $_GET['domain'];
ob_implicit_flush(1);

for ($i = 0; $i < 60000; ++$i) {

$domainResult = $CClient->checkDomainAvailability( new XDomain( $d ) );

if ( $domainResult->getStatus() == "domain_available" ) {
    echo $i . ". Domain " . $d . " is free (checked: " . date("Y-m-d H:i:s") . ")<br />";

    $_GET['domain'] = $d;
    include_once('Register.php');
    exit;

} 
elseif ( $domainResult->getStatus() == "domain_unavailable" ) {
    echo $i . ". Domain " . $d . " is unavailable (checked: " . date("Y-m-d H:i:s") . ")<br />";
}
else {
    echo $i . ". Domain " . $d . " is unknown (checked: " . date("Y-m-d H:i:s") . ")<br />";
}
echo"<pre>";
print_r($domainResult);
echo"</pre>";
}
?>

最佳答案

改变

$d = $_GET['domain'];

到:

$d = $argv[1];

...并像这样在命令行中调用它:

php /path/to/script.php "www.domaintocheck.com"

关于php - 替换 $_GET 以使其从命令行工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10472446/

相关文章:

linux - 使用 sd_notify() 传播 systemd 重新加载

php - WooCommerce 以编程方式添加的费用不会持续存在

linux - 如何从网站中提取图像链接并使用 wget 下载它们?

php - MySQL日期/时间计算

linux - 修改 tar 存档中嵌套的文件

command-line - 使用 DOS 命令替换字符串中的一个字符

windows - 如何使用命令行 (cmd/batch) 解析 XML 文件

linux - git:gitk 有 "Sort by date"的命令行选项吗?

php - Laravel 与谷歌云数据存储

php - 服务器和 MySql 加载问题