字符串中的许多字符串之一

时间:2012-12-01 03:08:27

标签: php

两种情况:

  1. http://www.example.com/index.php
  2. http://www.example.com/index.php?string1=foo&string2=foo2
  3. 用例:

    1. 如果方案1为真,我需要添加字符串?string1=foo
    2. 如果方案2为真,我需要删除string2 = foo2并输入string3 = foo3
    3. 我遇到问题的情况:

      1. 如果已经有字符串,我需要添加“&”,否则它只是“?”。
      2. 我不知道如何获取最后一个字符串并能够替换它。
      3. 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

网址参数始终位于$_GET数组中。您可以使用它来构建参数列表,然后使用http_build_query创建URL查询字符串。

$new_url_params = $_GET;
if ( count($new_url_params)==0 ) {
    $new_url_params['string1']='foo';
} else if ( isset($new_url_params['string2']) ) {
    unset($new_url_params['string2']);
    $new_url_params['string3'] = 'foo3';
}
$new_url = 'http://www.example.com/index.php?'.http_build_query($new_url_params);

我想你可能想要做一些更复杂的事情。因此,您可能需要查看parse_url以获取网址的部分内容。

答案 1 :(得分:0)

我能够strpos $_SERVER['REQUEST_URI'] ?,然后确定是否需要保留?或添加&,然后是串。当我需要切换最后一个字符串时,我做了str_replace。我不知道这是否是最好的解决方案,但我很乐意让它工作......到目前为止。