Php 字符串URL中的多个字符串之一
两种情况: 用例:Php 字符串URL中的多个字符串之一,php,Php,两种情况: 用例: 如果场景1为真,我需要添加字符串?string1=foo 如果场景2为真,我需要删除string2=foo2并放入string3=foo3 我遇到的问题是: 如果已经有一个字符串,我将需要添加“&”,否则它将只是“?” 我不知道如何获取最后一个字符串并替换它 如何修复此问题?URL参数始终位于$\u GET数组中。您可以使用它来构建参数列表,然后使用http\u build\u query来创建URL查询字符串 $new_url_params = $_GET; if (
?string1=foo
如何修复此问题?URL参数始终位于
$\u GET
数组中。您可以使用它来构建参数列表,然后使用http\u build\u 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\u url
以获取url的各个部分。url参数始终位于$\u get
数组中。您可以使用它来构建参数列表,然后使用http\u build\u 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
以获取url的各个部分。我能够在?
处找到$\u服务器['REQUEST_URI']
的strpos
,然后确定是否需要保留?
或添加&
,后跟字符串。当我需要切换最后一个字符串时,我做了一个str\u replace
。我不知道这是否是最好的解决方案,但我很高兴能让它发挥作用……到目前为止。我能够在?
中添加$\u服务器['REQUEST\u URI']
的strop
,然后确定是否需要保留?
或添加&
,后跟字符串。当我需要切换最后一个字符串时,我做了一个str\u replace
。我不知道这是否是最好的解决方案,但我很高兴它能起作用……到目前为止。你应该阅读关于regex
@RicardoLohmann的内容。我认为OP在这种情况下不需要regex
。)可以使用简单的数组操作来完成。你说呢?@PraveenKumar有很多方法。你应该阅读regex
@RicardoLohmann我认为在这种情况下,OP不需要regex
。)可以使用简单的数组操作来完成。你说什么?@PraveenKumar有很多方法。