如何从字符串中替换变量名和变量值?

时间:2017-12-05 17:57:18

标签: php replace

我有一个Google表格预填充网址

$input = "https://docs.google.com/forms/d/e/1FAIpQLSe8aZbfXa2IRRzK6hPTDKvAf_Oa8chTMrX8wkkYcuVHGs-vuA/viewform?usp=pp_url&entry.1064398956=NAME&entry.1318807391=TELEPHONE";
$pars = parse_url($input);
$values = $pars["query"];
$values = str_replace("entry.", "", $values);
$values = str_replace("usp=pp_url&", "", $values);

使用此代码,我得到的值为

1064398956=NAME&1318807391=TELEPHONE

因为数字(条目ID)总是不同,我使用默认值(如NAME,TELEPHONE),这些将被存储到mySQL数据库,如下所示:

Id  ||  NAME       || VALUE
================================
1   || 1064398956  || 1318807391

要将行上传到该mysql数据库,我有查询:

    INSERT INTO TABLE (ID, NAME, VALUE) VALUES (1, $NAME, $VALUE)

基于以下字符串,我如何找到值$ NAME和$ VALUE?

1064398956=NAME&1318807391=TELEPHONE

2 个答案:

答案 0 :(得分:1)

@mario和@ chris85解决方案有效:

$string = '1064398956=NAME&1318807391=TELEPHONE';
parse_str($string, $output);
print_r(array_flip($output));

答案 1 :(得分:0)

此代码将使用值(带有'NAME'值的$ VALUE变量)

切换var name whit
function get_var_name($vars, $var)
{
  foreach ($vars as $name => $value) {
    if ($value === $var) {
      return $name;
    }
  }
  return false;
}

$NAME = "VALUE";
$$NAME = get_var_name(get_defined_vars(), $NAME);

echo $VALUE; // will print 'NAME'