- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试写一个脚本来获取一些在线数据;脚本应由 cron 作业或 php cli 以及标准 GET HTTP 请求 调用。正如 PHP 网站上所述 $_SERVER['argv']
应该符合我的需要:
Array of arguments passed to the script. When the script is run on the command line, this gives C-style access to the command line parameters. When called via the GET method, this will contain the query string.
但是我无法让它与标准的 HTTP GET 请求一起工作。 $_SERVER['argv']
未设置。我缺少什么?
<?php
// jobs/fetch.php
var_dump($_SERVER['argv']);
?>
CLI 输出 php jobs/fetch.php -a -bhello
:
array(3) {
[0]=>
string(14) "jobs/fetch.php"
[1]=>
string(2) "-a"
[2]=>
string(7) "-bhello"
}
获取输出 jobs/fetch.php?a=&b=hello
:
Notice: Undefined index: argv in jobs/fetch.php.
最佳答案
手册没有很好地说明这一点,但是,如果你想要 $_SERVER['argc']
,$_SERVER['argv']
,$argc
, $argv
不在CLI
模式下运行时注册,则php.ini
值为register_argc_argv需要在 php.ini 中启用(默认关闭 [出于性能原因])。
您可以执行以下操作来获取 argv
,或根据脚本的运行方式查询字符串 args:
if (php_sapi_name() == 'cli') {
$args = $_SERVER['argv'];
} else {
parse_str($_SERVER['QUERY_STRING'], $args);
}
以下是 php.ini
的一些细节:
; This directive determines whether PHP registers $argv & $argc each time it
; runs. $argv contains an array of all the arguments passed to PHP when a script
; is invoked. $argc contains an integer representing the number of arguments
; that were passed when the script was invoked. These arrays are extremely
; useful when running scripts from the command line. When this directive is
; enabled, registering these variables consumes CPU cycles and memory each time
; a script is executed. For performance reasons, this feature should be disabled
; on production servers.
; Note: This directive is hardcoded to On for the CLI SAPI
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/register-argc-argv
另见 http://www.php.net/manual/en/reserved.variables.argv.php 和 parse_str()。
关于php - $_SERVER ['argv' ] HTTP GET 和 CLI 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270030/
这个问题在这里已经有了答案: 关闭 9 年前。 Possible Duplicate: HTTP_HOST vs. SERVER_NAME $_SERVER['HTTP_HOST'] 和 $_SERV
我有一个反馈表,它将包含几个用户输入的字段以及一些由 PHP 函数生成的字段,例如“user-agent”和“referer”。 我的问题是这些字符串在输入之前是否应该进行清理?我知道可以很容易地更改
我打印了 $_SERVER,发现 $_SERVER['REDIRECT_URL'] 与 $_SERVER['REQUEST_URI'] 的值相同。两者有什么区别? 最佳答案 REQUEST_URI 是
有什么区别: $_SERVER['SCRIPT_NAME'] 和 $_SERVER['PHP_SELF'] 谢谢。 最佳答案 它们应该包含相同的信息。但是,从历史和技术上来说,两者是有区别的。 SCR
我带着一个简单的问题(或相关问题)回来了。 问题很简单,但我还没有收到答案。我问过很多有不同 PHP 经验的人。但我得到的回应是:“我不知道。我从来没有想过这个。”使用谷歌我找不到任何关于此的文章。希
$_SERVER['PATH_INFO'] 和 $_SERVER['ORIG_PATH_INFO'] 有什么区别?我该如何使用它们? 当我运行 print_r($_SERVER) 时,PATH_INF
我有一个 php 框架,我使用 $_SERVER['SCRIPT_NAME'] 来优化可移植性。这样我就不需要再手动配置路径了。 $this->base_url = str_replace('inde
我做了很多搜索,还阅读了 PHP $_SERVER docs .我是否有权在我的 PHP 脚本中使用哪个用于在整个网站中使用的简单链接定义? $_SERVER['SERVER_NAME'] 基于您的
使用 $_SERVER['REQUEST_URI'] 或 $_SERVER['PHP_SELF'] 作为表单中的操作或作为 href链接? 如果是这样,可以采取哪些措施来降低风险? 最佳答案 您在 w
我必须从 server script 获取远程 url 主机名,以下哪个更可靠: gethostbyaddr($_SERVER['REMOTE_ADDR']) 或 $_SERVER['REMOTE_H
在开始之前,我想指出我浏览了 Stack Overflow 并发现了其他类似的问题 - PHP_AUTH_USER not set?和 HTTP Auth via PHP - PHP_AUTH_USE
我在 php 脚本中使用 $_SERVER['HTTP_HOST'] 和 $_SERVER['REQUEST_URI'] 来获取页面的 url,但 envato 主题检查插件显示警告。 警告:在文件
我位于透明代理后面,该代理始终添加 HTTP_X_FORWARDED_FOR header 。 当我使用 PHP 转储 header 时, header 丢失了。但Python可以工作..哈哈 Pyt
这是对 this question 的扩展我们了解到可以使用 SetEnv 设置 $_SERVER 变量。 下一个问题是:有没有一种方法可以像这样使用 SetEnv: /var/www/www.exa
是否可以使用 .htaccess 或其他 apache 功能在 php 数组 $_SERVER 中设置自定义服务器值。 例如 if($_SERVER['is_special']) { echo
什么相当于 codeigniter 中的 $_SERVER ? 最佳答案 $this->input->server() 更多信息请引用用户指南:Input 关于Codeigniter 和 $_SERV
这是指向当前文件执行的目录吗? 最佳答案 不,它指向您的网络服务器的根目录 - 您网站的最顶层文件夹。 如果你想要当前文件的目录,使用: 目录名(__FILE__); 关于php - $_SERVER
我真的很想使用以下问题的答案:How can I force users to access my page over HTTPS instead of HTTP? 但我一直认为全局 $_SERVER
我需要知道当我处理 $_SERVER 变量时我是否可以安全地使用普通字符串或者我必须使用 mb_* 字符串。 (UTF-8) 例如 $_SERVER['HTTP_HOST'] 可以包含多字节字符? 如
我遇到过以下三行代码: $_SERVER; $_ENV; $_REQUEST; 对我来说,这三行代码似乎什么也没做。它们不会导致任何错误。 我知道这三个全局变量是什么,就是不知道这三行代码是干什么的。
我是一名优秀的程序员,十分优秀!