解析输入字符串

时间:2015-10-20 18:49:43

标签: php string parsing

我有这样的字符串:

index.php?url=index/index
index.php?url=index/index/2&a=b

我正在尝试获取字符串的这一部分:index/indexindex/index/2.

我尝试过parse_str函数但没有成功。 感谢。

3 个答案:

答案 0 :(得分:2)

您应该可以使用$ _SERVER ['QUERY_STRING'],如下所示:

$url_params = $_SERVER['QUERY_STRING']; // grabs the parameter
$url_params = explode( '/', $url_params ); // seperates the params by '/'

返回一个数组

示例index.php?url = index / index2现在变为:

$url_params[ 0 ] =  index;
$url_params[ 1 ] =  index2;

答案 1 :(得分:0)

没有更多信息:

// Example input
$input               = "index.php?url=index/index/2&a=b";
$after_question_mark = explode("=",$input)[1];
if (strstr($after_question_mark, "&")){
    // Check for ampersand
    $before_ampersand    = explode("&",$after_question_mark)[0];
    $desired_output      = $before_ampersand; // 'index/index/2'
} else {
    // No ampersand
    $desire_output       = $after_question_mark;
}

更有弹性的选择:

 wait.until(ExpectedConditions.visibilityOfElementLocated
                    (By.xpath("//a[text()='Show advanced settings...']"))).click();

答案 2 :(得分:-1)

$url = "index.php?url=index/index/2&a=b";
$query = parse_url($url, PHP_URL_QUERY);
$output = substr($query, $strpos($query, "=") + 1);
output: index/index/2&a=b

这将为您提供问号后的所有内容

您可以在parse_url

上获得更多信息

$url = "index.php?url=index/index/2&a=b";
$output = substr($url, strpos("=") +1, $strrpos($url, "&") - strlen($url));
output: index/index/2

如果您真的只想从字符串中获取子字符串,则不需要进入数组来创建开销

这将在没有查询字符串的情况下返回false