php - 删除两个字符串之间的文本
问题描述
我正在尝试删除文本中include
和下一个之间&
的文本:
filter[mat]=1&filter[status]=available&include=homeCompetitor,awayCompetitor&sort=scheduled
并得到如下文本:
filter[mat]=1&filter[status]=available&sort=scheduled
我尝试使用以下代码:
function delete_all_between($string)
{
$beginningPos = strpos($string, $beginning);
$endPos = strpos($string, $end);
if ($beginningPos === false || $endPos === false)
return $string;
}
还有:
preg_replace("/\include[^]+\&/","",$string);
但没有一个奏效。
也可能是文本也有以下格式:
filter[mat]=1&filter[status]=available&sort=scheduled&include=homeCompetitor,awayCompetitor
我需要从包含这个词中删除到最后(在这种情况下没有&
)
编辑:这个问题没有重复,因为那个答案对我不起作用!
解决方案
您正在处理的字符串采用特定格式,可以由parse_str解析并通过http_build_query重新组装。
<?php
$str = "filter[mat]=1&filter[status]=available&include=homeCompetitor,awayCompetitor&sort=scheduled";
parse_str($str, $output);
unset($output["include"]);
echo http_build_query($output);
推荐阅读
- azure-eventgrid - 我们如何指示 Azure 事件网格 Webhook 订阅请求跳过服务器证书验证?
- java - 使用 Java 流查找集合中最接近的对
- grpc - gRPC, Go & Cloud Run - 如何优雅地处理客户端授权?
- c# - 将 WPF 控件绑定到与窗体类分开的类中的对象
- java - 错误:无法在 Eclipse 中找到或加载主类 org.apache.catalina.realm.AuthenticatedUserRealm
- c# - 您可以从 Web API POST 中读取不在数据模型中的其他数据字符串吗?
- java - Wildfly 上的数据源 JNDI 查找失败,出现连接被拒绝错误
- scala - 在Scala中根据if条件赋值
- discord - 类型错误:cmd.run 不是函数
- javascript - react-cropper URL 太长了