У меня есть строка, которая выглядит немного так world:region:bash
Он делит имена папок, поэтому я могу создать путь для функций FTP.
Тем не менее, мне нужно в некоторых точках, чтобы удалить последнюю часть строки, так, например,
У меня есть этот world:region:bash
Мне нужно получить этот world:region
Сценарий не сможет узнать, что такое имена папок, поэтому некоторые из них должны иметь возможность удалить строку после последнего двоеточия.
$res=substr($input,0,strrpos($input,':'));
Я должен, вероятно, выделить, что strrpos not strpos находит последнее вхождение подстроки в заданной строке
$tokens = explode(':', $string); // split string on : array_pop($tokens); // get rid of last element $newString = implode(':', $tokens); // wrap back
Разверните строку и удалите последний элемент. Если вам нужна строка снова, используйте implode.
$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, ":"); ?>
Используйте регулярное выражение /:[^:]+$/
, preg_replace
$s = "world:region:bash"; $p = "/:[^:]+$/"; $r = ''; echo preg_replace($p, $r, $s);
демонстрация
Обратите внимание, как используется $
означающее прерывание строки.
<?php $string = 'world:region:bash'; $string = implode(':', explode(':', $string, -1));