假设我有一个包含网址的变量,如下所示:
$url="http://www.example.com/login?u=17474&l=6277";
现在我将上面的url发送到函数
$out= myFunc($url);
现在我想要的是该函数应该只返回url之前的部分?即,如果上面的url被传递给函数,它应该返回http://example.com/login如果传递相对url像/login.php?u=26337&g=777它应该只返回/login.php.
我也希望获取网址中的值并在上面设置cookie我想要你的值,并设置cookie的值。
function myFunc($url){
$pass= substr($url,0,strpos($url,'?'));
$u = ;//the value in;
setcookie('user',$u);
return $pass;
}
我该怎么做?
答案 0 :(得分:2)
此函数必须在"?":
之前返回子字符串function myFunc($url){
return substr($url,0,strpos($url,'?'));
}
$url="http://www.example.com/login?u=17474&l=6277";
echo myFunc($url);// http://www.example.com/login
将get字符串转换为数组,使用parse_str()函数:
function get_values($url){
parse_str(substr($url,strpos($url,'?')+1),$array);
return $array;
}
$values = get_values($url);
print_r($values);//Array ( [u] => 17474 [l] => 6277 )
访问u
:
$u = $values['u'];
setcookie('user',$u);
记得在任何输出到浏览器之前先将setcookie搞定!
答案 1 :(得分:1)
parse_url可能会对您有所帮助。只需使用它:
$url="http://www.example.com/login?u=17474&l=6277";
$url_segments = parse_url($url);
echo $url_segments['path'];