我有一个字符串示例
this-is-the-example/exa
我想从上面的行
修剪/ exa$string1 = "this-is-the-example/exa";
$string2 = "/exa";
我正在使用rtrim($string1, $sting2)
但输出为this-is-the-exampl
我希望this-is-the-example
作为输出。
两个字符串都是动态的,并且可能在字符串中出现多次。但我只想删除最后一部分。此外,string2中还没有强制要求/
。这也许是正常的字符串。例如a
,abc
..
答案 0 :(得分:4)
您可以使用各种方法:
使用substr
(DEMO):
function removeFromEnd($haystack, $needle)
{
$length = strlen($needle);
if(substr($haystack, -$length) === $needle)
{
$haystack = substr($haystack, 0, -$length);
}
return $haystack;
}
$trim = '/exa';
$str = 'this-is-the-example/exa';
var_dump(removeFromEnd($str, $trim));
使用正则表达式(DEMO):
$trim = '/exa';
$str = 'this-is-the-example/exa';
function removeFromEnd($haystack, $needle)
{
$needle = preg_quote($needle, '/');
$haystack = preg_replace("/$needle$/", '', $haystack);
return $haystack;
}
var_dump(removeFromEnd($str, $trim));
答案 1 :(得分:2)
首先explode
字符串,使用array_pop
从爆炸数组中删除最后一个元素,然后使用implode
再次/
。
$str = "this-is-the-example/exa";
if(strpos($str, '/') !== false)
{
$arr = explode('/', $str);
array_pop($arr);
$str = implode('/', $arr);
// output this-is-the-example
}
如果您在网址中有多个/
并且仅删除最后一个元素,那么这将有效。
$str = "this-is-the-example/somevalue/exa";
if(strpos($str, '/') !== false)
{
$arr = explode('/', $str);
array_pop($arr);
$str = implode('/', $arr);
// output this-is-the-example
}
答案 2 :(得分:0)
你可以使用explode
<?php
$x = "this-is-the-example/exa";
$y = explode('/', $x);
echo $y[0];
答案 3 :(得分:0)
rtrim的第二个参数是一个字符掩码,而不是一个字符串,你的最后一个“e”被激活,这是正常的。
使用其他内容,例如regexp(preg_replace)以满足您的需求
这会将所有内容保留在“/”char:
之前$str = preg_replace('/^([^\/]*).*/','$1', 'this-is-the-example/exa');
删除最后一部分。
$str = preg_replace('/^(.*)\/.*$/','$1', 'this-is-the-example/exa/mple');
答案 4 :(得分:0)
如果在搜索字符串中找不到子字符串,则允许错误处理...
<?php
$myString = 'this-is-the-example/exa';
//[Edit: see comment below] use strrpos, not strpos, to find the LAST occurrence
$endPosition = strrpos($myString, '/exa');
// TodO; if endPosition === False then handle error, substring not found
$leftPart = substr($myString, 0, $endPosition);
echo($leftPart);
?>
输出
此-是最示例
答案 5 :(得分:0)
打个招呼strstr()
$str = 'this-is-the-example/exa';
$trim = '/exa';
$result = strstr($str, $trim, true);
echo $result;
答案 6 :(得分:0)
希望这会有所帮助。 :)
只需尝试以下代码:
<?php
$this_example = substr("this-is-the-example/exa", 0, -4);
echo "<br/>".$this_example; // returns "this-is-the-example"
?>