-4

这是我的字符串

component/content/article?id=9

如何从中动态获取9?

我想在字符串而不是 url 上执行此操作,并且可能存在更多参数的情况,例如 url。我想做与 $_GET 完全相同的操作,但在字符串上

改写的问题(Ayesh K):

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

例如,我有以下字符串:

component/content/article?id=9

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

4

3 回答 3

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

于 2013-09-13T18:36:10.430 回答
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];
于 2013-09-13T18:24:08.013 回答
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');
?>
于 2013-09-13T18:29:01.223 回答