Php 删除被冒号分隔的字符串的最后一部分
我有一个字符串,看起来有点像这样,Php 删除被冒号分隔的字符串的最后一部分,php,string,Php,String,我有一个字符串,看起来有点像这样,world:region:bash 它划分文件夹名称,因此我可以为FTP函数创建路径 但是,我需要在某些时候能够删除字符串的最后一部分,例如 我有这个world:region:bash 我需要得到这个world:region 脚本无法知道文件夹的名称,因此需要了解如何删除最后一个冒号后的字符串 $res=substr($input,0,strrpos($input,':')); 我可能应该强调,strrpos而不是strpos查找给定字符串中最后出现的子字符串
world:region:bash
它划分文件夹名称,因此我可以为FTP函数创建路径
但是,我需要在某些时候能够删除字符串的最后一部分,例如
我有这个world:region:bash
我需要得到这个world:region
脚本无法知道文件夹的名称,因此需要了解如何删除最后一个冒号后的字符串
$res=substr($input,0,strrpos($input,':'));
我可能应该强调,strrpos而不是strpos查找给定字符串中最后出现的子字符串分解该字符串,并删除最后一个元素。 如果再次需要该字符串,请使用“内爆”
$items = array_pop(explode(':', $the_path));
$shotpath = implode(':', $items);
您可能想尝试以下方法:
<?php
$variable = "world:region:bash";
$colpos = strrpos($variable, ":");
$result = substr($variable, 0, $colpos);
echo $result;
?>
或者。。。如果使用此信息创建函数,则会得到以下结果:
<?php
function StrRemoveLastPart($string, $delimiter)
{
$lastdelpos = strrpos($string, $delimiter);
$result = substr($string, 0, $lastdelpos);
return $result;
}
$variable = "world:region:bash";
$result = StrRemoveLastPart($variable, ":");
?>
使用正则表达式
请注意如何使用表示字符串终止的
$
。
?@RPM“脚本无法知道文件夹名称,因此需要知道如何在最后一个冒号后删除字符串。”这听起来像是reg-ex可以解决这个问题,“看看右边的相关列-有很多指向你想要的内容的指针。这只会将字符串返回到第一个冒号my bad,strrpos
看起来像strpos
IMHO应该存在对strpos的检查,以防字符串中没有冒号,否则,由于substr需要int而不是boolean,因此引发错误。无论如何,只需放置一个cast$res=substr($input,0,(int)strrpos($input,:')代码>好主意,但是,数组可能很长,是否有类似array_length之类的函数?count给出数组长度。但是,您不需要它来删除最后一项。使用它,它将为我提供Arrayworld:Region您可以使用$tokens=explode(“:”,$string,-1)替换前两行代码>
<?php
$string = 'world:region:bash';
$string = implode(':', explode(':', $string, -1));
$s = "world:region:bash";
$p = "/:[^:]+$/";
$r = '';
echo preg_replace($p, $r, $s);
<?php
$string = 'world:region:bash';
$string = implode(':', explode(':', $string, -1));