У меня есть строка и вы хотите удалить все после определенной «точечной» комбинации слов. Например:PHP + Изменить строку
This.Is.A.Test
=> стал бы
This.Is.A
У меня есть строка и вы хотите удалить все после определенной «точечной» комбинации слов. Например:PHP + Изменить строку
This.Is.A.Test
=> стал бы
This.Is.A
$str = "This.Is.A.Test"; $str = substr($str, 0, strrpos($str, "."));
Это был первый ответ, который я пробовал, и он работал отлично! – Andrej
$result = explode('.', $str, 4);
array_pop($result);
implode('.', $result);
Я буду делать что-то очень простое, как:
<?php
$string = 'This.Is.A.Test';
$parts = explode('.', $string);
array_pop($parts); // remove last part
$string = implode('.', $parts);
echo $string;
?>
вы искали, чтобы удалить все после конкретных dot + слово или просто удалите последние do т + слово? Если вы ищете конкретное слово, попробуйте следующее:
$str = "This.Is.A.Test";
$find = ".A";
$index = strpos($str, $find);
if ($index !== false)
$str = substr($str, 0, $index + strlen($find));
echo $str; // "This.Is.A"
В ответ на @SuperSkunk:
Если вы хотите, чтобы соответствовать всем словам, вы могли бы сделать это:
$find = ".A.";
$str = "This.Is.A.Test";
$index = strpos($str, $find);
if ($index !== false)
$str = substr($str, 0, $index + strlen($find) - 1);
echo $str; // "This.Is.A"
$str = "This.Is.AB.Test";
$index = strpos($str, $find);
if ($index !== false)
$str = substr($str, 0, $index + strlen($find) - 1);
echo $str; // "This.Is.AB.Test" (did not match)
Он не работает с «This.Is.AB.Test». Смотрите мои правки. – SuperSkunk
@SuperSkunk: В зависимости от того, что фактически ищет OP. См. Обновленный ответ. – Travesty3
Просто понял, что вы получите странные результаты, если '$ find' на самом деле не найден в строке (это означает, что' strpos' вернет false). Обновленный ответ. – Travesty3
$ = StrPos поз ($ га ystack, ".A");
$ result = substr ($ haystack, 0, $ pos);
... что-то вроде этого.
У меня очень похожая функция, работающая в javascript (split), и я искал аналогичную в PHP. Я думаю, что «взорваться» может быть хорошим способом, но я не смог понять это из примеров [здесь] (http://php.net/manual/en/function.explode.php). – Andrej
Получите позицию «.A» с помощью strpos() и используйте substr(), чтобы получить результат строки. Использование руководства PHP – IEnumerable
Вы пытаетесь удалить все после * определенного слова * точка + или сразу после слова * last * dot +? Что, если строка была '' This.Is.A.Test. "'? Должна ли она просто удалить последнюю точку или за ней следует слово? – Travesty3