You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中使用rtrim()函数从URL参数中移除指定内容?

问题分析与解决方案

哈哈,我之前也踩过rtrim()的坑!你遇到的问题核心是误解了rtrim的工作逻辑:

rtrim()函数的作用是从字符串末尾逐个移除指定的字符集合(不是完整的子字符串),直到遇到不在该集合里的字符为止。

你原本想移除的是training in india这个完整子串,但如果用rtrim($course_n, 'training in india'),函数会把t、r、a、i、n、g、空格、d这些字符都当成独立的可移除对象。当它删完末尾的training in india后,会继续往前检查——如果你的原字符串是sap bo training in india,删到sap bo时,空格在字符集合里会被删掉,要是你不小心把o也包含在了字符集合里(比如参数写错了),那最后一个o也会被删掉,就得到了sap b。


正确的解决方法(推荐几种)

1. 直接替换指定子串(最简单)

如果training in india是固定的后缀,用str_replace()直接替换掉这个子串就行:

$course_n = $_GET['search-result'];
// 注意前面的空格,要和原字符串里的格式匹配
$course_name = str_replace(' training in india', '', $course_n);

2. 正则匹配末尾的后缀(更灵活)

如果存在大小写差异(比如Training In India)或者空格数量不固定的情况,用正则表达式的preg_replace()更靠谱:

$course_n = $_GET['search-result'];
// $表示匹配字符串末尾,i表示不区分大小写,\s+匹配一个或多个空格
$course_name = preg_replace('/\s+training\s+in\s+india$/i', '', $course_n);

3. 分割字符串取前半部分

如果你的参数格式都是[课程名] training in india这种固定结构,也可以用explode()分割后取第一个元素:

$course_n = $_GET['search-result'];
$parts = explode(' training in india', $course_n);
$course_name = $parts[0];

内容的提问来源于stack exchange,提问作者omkara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:20:39