获取指定单词后的值

时间:2015-07-17 09:36:37

标签: php

我有一个带传递参数的函数。

例如:

$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 "=" ??
    }
  }

3 个答案:

答案 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);
?>

利用@ https://ideone.com/BxqooK

注意:如果有许多按/分隔的键值对

,请使用循环

答案 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'];