如何从字符串$ _GET值

时间:2013-09-13 18:22:59

标签: php

这是我的字符串

component/content/article?id=9

如何从中动态获取9?

我想在字符串上做,而不是url,并且可能存在更多paremateres的情况,例如url。 我想像$ _GET一样做得非常好,但是在字符串上

重写问题(由Ayesh K撰写):

我有一个包含URL路径和查询字符串的字符串。我想将查询字符串解析为一个键和值数组,就像它是当前页面的查询字符串一样,所以我可以从$_GET获取它们。

例如,我有以下字符串:

component/content/article?id=9

现在我想从数组中获取id值(9)。如何解析此类字符串以分隔查询字符串并将其转换为数组?

3 个答案:

答案 0 :(得分:6)

这里的一些答案没有使用为此构建的特定工具。

您可以使用以下内容来解析URL或路径字符串,并获得所需的值,就像它在$ _GET中一样。

<?php
  $str = 'component/content/article?id=9';
  $query = parse_url($str, PHP_URL_QUERY); // Get the string part after the "?"
  parse_str($query, $params); // Parse the string. This is the SAME mechanism how php uses to parse $_GET.
  print $params['id'];
?>

演示:http://3v4l.org/ki00i

答案 1 :(得分:2)

更新:我看到你更新了你的代码。

这是一种解析URL字符串的更强大的方法:

$string = 'component/content/article?q=1&item[]=345&item[]=522';

// parse the url into its components
$url_parts = parse_url($string);

// parse the query components to get the variables
parse_str($url_parts['query'], $get_vars);

echo $get_vars['q'];
echo $get_vars['item'][0];

答案 2 :(得分:0)

<?php
   $gets = array();
   $string = "component/content/article?id=9&sid=15";
   $parts = explode('?',$string);
   $parts = explode('&',$parts[1]);
   foreach($parts as $part){
      $part = explode('=',$part);
      $gets[$part[0]] = $part[1];
   }
   print_r($gets); // array('id' => '9','sid' => '15');
?>