这是我的字符串
component/content/article?id=9
如何从中动态获取9?
我想在字符串上做,而不是url,并且可能存在更多paremateres的情况,例如url。 我想像$ _GET一样做得非常好,但是在字符串上
重写问题(由Ayesh K撰写):
我有一个包含URL路径和查询字符串的字符串。我想将查询字符串解析为一个键和值数组,就像它是当前页面的查询字符串一样,所以我可以从$_GET
获取它们。
例如,我有以下字符串:
component/content/article?id=9
现在我想从数组中获取id
值(9
)。如何解析此类字符串以分隔查询字符串并将其转换为数组?
答案 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'];
?>
答案 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');
?>