Php 删除特定单词后的文本

Php 删除特定单词后的文本,php,text-processing,Php,Text Processing,我有从变量生成的动态链接: /叮当声/哑光/黑色超高/黑色/青铜色 如何删除变量值“BlackHyper”之后的所有文本,使其成为: “/Tinkle/Matte/BlackHyper” 我尝试rtrim: $param=“BlackHyper” $str=“/Tinkle/Matte/BlackHyper/Black/Gunmetal” rtrim($str,$param) 运气不好,删除一些字母….RTrim不能这样工作 你需要这样做 $pos = strpos($str, $param);

我有从变量生成的动态链接:

/叮当声/哑光/黑色超高/黑色/青铜色

如何删除变量值“BlackHyper”之后的所有文本,使其成为: “/Tinkle/Matte/BlackHyper”

我尝试rtrim:

$param=“BlackHyper
$str=“/Tinkle/Matte/BlackHyper/Black/Gunmetal”
rtrim($str,$param)


运气不好,删除一些字母….

RTrim不能这样工作

你需要这样做

$pos = strpos($str, $param);
$endpoint = $pos + strlen($param);
$newStr = substr($str,0,$endpoint );

这将创建一个新字符串(可能有一两个bug,我还没有测试过),所有字符都在参数范围内。

RTrim不是这样工作的

你需要这样做

$pos = strpos($str, $param);
$endpoint = $pos + strlen($param);
$newStr = substr($str,0,$endpoint );

这将创建一个新字符串(可能有一两个bug,我还没有测试过),所有字符都在参数范围内。

也许您可以使用strstr函数

$a = "before/after";
$b = strstr($a, "/",true); // gets text before /
$c = strstr($a, "/"); // gets text after /

也许你可以使用strstr函数

$a = "before/after";
$b = strstr($a, "/",true); // gets text before /
$c = strstr($a, "/"); // gets text after /

OP希望在结果中排除
$param
,因此您应该使用
$pos+strlen($param)
。newStr将包含更改的字符串,$str将保持不变。这就是它的工作方式!OP希望在结果中排除
$param
,因此您应该使用
$pos+strlen($param)
。newStr将包含更改的字符串,$str将保持不变。这就是它的工作方式!