lau*_*kok 4 php parameters url
如何检查URL中是否包含参数?
例如,如果字符串是这样的,
form_page_add.php?parent_id=1
return true
Run Code Online (Sandbox Code Playgroud)
但如果是这样,
form_page_add.php?
return nothing
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:
很抱歉不清楚,URL是作为字符串从from提交的.我会将该字符串存储在变量中,
if(isset($_POST['cfg_path'])) $cfg_path = trim($_POST['cfg_path']);
Run Code Online (Sandbox Code Playgroud)
所以我需要检查这个变量$cfg_path whether
是否有参数.
bar*_*oon 25
也可以使用array_key_exists()查找特定的键,例如
if(array_key_exists('some-key', $_GET))
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.array-key-exists.php
Jon*_*Jon 18
你可以使用这个简单的功能:
function url_get_param($url, $name) {
parse_str(parse_url($url, PHP_URL_QUERY), $vars);
return isset($vars[$name]) ? $vars[$name] : null;
}
Run Code Online (Sandbox Code Playgroud)
如果参数的值存在于url中,或者null
根本不显示,它将返回参数的值.您可以区分没有值的参数和完全不由相同运算符出现的参数(三等于===
).
这将适用于您传递的任何URL,而不仅仅是$_SERVER['REQUEST_URI']
.
更新:
如果你只想知道URL中是否有任何参数,那么你可以使用上面的一些变体(参见评论中的Phil的建议).
或者,您可以使用令人惊讶的简单测试
if (strpos($url, '=')) {
// has at least one param
}
Run Code Online (Sandbox Code Playgroud)
我们甚至不需要费心去检查false
这里,好像存在等号,它不会是第一个字符.
更新#2:虽然使用方法strpos
适用于大多数 URL,但它不是防弹的,因此如果您不知道您正在处理哪种URL,则不应使用它.正如Steve Onzra在评论中正确指出的那样,URL就像
http://example.com/2012/11/report/cGFyYW1fd2l0aF9lcXVhbA==
Run Code Online (Sandbox Code Playgroud)
是有效的,但不包含任何参数.