我有一个带传递参数的函数。
例如:
$this->avatar->getAvatar('size=s/user=Synergy');
现在我想在“/”处爆炸字符串并获取密钥,例如“user”和值“Synergy”。这适用于每次爆炸。
这是我的功能:
public function getAvatar($params)
{
$this->params = explode('/', $params);
if(strpos($this->params, 'size=') !== false) {
$this->size = // how to get value after "=" ??
}
if(strpos($this->params, 'user=') !== false) {
$this->user = // how to get value after "=" ??
}
}
答案 0 :(得分:1)
使用explode()
$var = 'size=s/user=Synergy';
$temp = explode('user=', $var);
$username = ! empty($temp[1]) ? $temp[1] : '';
答案 1 :(得分:0)
试试这个:
<?php
$var = 'size=s3435/user=Synergy';
$temp = explode('/', $var);
//Fetch size
$pos = strpos($temp[0], '=');
echo substr($temp[0], 0, $pos); //key
echo substr($temp[0], $pos+1); //value
//Fetch user
$pos = strpos($temp[1], '=');
echo substr($temp[1], 0, $pos);
echo substr($temp[1], $pos+1);
?>
注意:如果有许多按/
分隔的键值对
答案 2 :(得分:0)
如果用/
替换&
并使用php方法parse_str
解析字符串:
$infos = array();
parse_str(str_replace('/', '&', $params), $infos);
$ infos现在看起来像:
array(2) {
["size"]=> string(1) "s"
["user"]=> string(4) "Synergy"
}
完成:
$this->size = $infos['size'];
$this->user = $infos['user'];