php удалить все после символа
Удалить часть строки после определенного символа
Мне просто интересно, как я могу удалить все после определенной подстроки в PHP
Я бы хотел, чтобы он удалял весь текст, включая и после подстроки «By»
16 ответов
На простом английском: дайте мне часть строки, начинающуюся с начала и заканчивающуюся в позиции, где вы впервые встретили разделитель.
Как насчет использования explode :
Ответ Остина работает для вашего примера.
В более общем плане вам следует изучить функции регулярных выражений, когда подстрока, которую вы разделяете, может отличаться в зависимости от строки:
Вы можете использовать list и explode функции:
preg_replace предлагает один способ:
Ниже приведен менее эффективный метод, но он занимает меньше места в коде. Этот метод также более гибкий и позволяет использовать любое регулярное выражение.
Например, если вы хотите удалить все после дня:
Для нечувствительности к регистру добавьте модификатор i следующим образом:
Но вот также действительно мощный способ использования preg_match для выполнения того, что вы, возможно, пытаетесь сделать:
Поначалу регулярные выражения могут показаться запутанными, но они могут быть действительно мощными и вашими лучшими друзьями, когда вы их освоите! Удачи!
Третий параметр true указывает функции вернуть все до первого появления второго параметра.
Это, вероятно, избыточно для нужд большинства людей, но оно касается ряда вещей, которых нет в каждом отдельном ответе выше. Из пунктов, которые он адресовал, три из них были необходимы для моих нужд. С жесткими скобками и отбрасыванием комментариев это все еще могло оставаться читаемым всего на 13 строках кода.
Это касается следующего:
Использование:
Отправьте исходную строку, поиск char / string, «R» / «L» для начала справа или слева, true / false для чувствительности к регистру. Например, поиск «здесь» нечувствителен к регистру в строке, начиная с правой стороны.
Результатом будет «Вот несколько слов». Замена «R» на «L» приведет к выводу: «Сейчас».
Вот функция:
Как удалить часть строки после определенного символа в PHP?
Функция substr () и strpos () используется для удаления части строки после определенного символа.
Функция strpos () : эта функция используется для поиска первой позиции вхождения строки в другой строке. Функция возвращает целочисленное значение позиции первого вхождения строки. Функция обрабатывает прописные и строчные буквы по-разному.
Синтаксис:
Возвращаемое значение: эта функция возвращает целочисленное значение, представляющее индекс original_str, в котором сначала встречается строка search_str.
Функция substr () : Функция substr () — это встроенная в PHP функция, используемая для извлечения определенной части строки.
Синтаксис:
Возвращаемое значение: Возвращает извлеченную часть строки в случае успеха, в противном случае FALSE или пустую строку при ошибке.
Вот несколько примеров.
В следующих примерах используются функции substr () и strpos () для удаления части строки после определенного символа.
Пример 1:
// Объявляем переменную и инициализируем ее
$variable = «GeeksForGeeks is the best platform.» ;
// Отображаем значение переменной
// Используйте функцию substr () и strpos () для удаления
// часть строки после определенного символа
// Отображаем значение переменной
Пример 2:
// Объявляем переменную и инициализируем ее
$variable = «computer science portal for geeks» ;
// Отображаем значение переменной
// Используйте функцию substr () и strpos () для удаления
// часть строки после определенного символа
// и отображаем
Php удалить все после символа
Вариант через регулярное выражение (указан в качестве примера, рекомендуется использовать strstr() ):
Например, строка выглядит так:
Я хочу удалить весь контент после последнего / так что это просто показывает:
Но содержание после / может быть переменной длины.
Обратите внимание, что в URL может быть любое количество слешей. Он должен быть в состоянии удалить контент после последней косой черты. Там может быть больше, чем показано в примере выше.
Решение
ты можешь попробовать это
Другие решения
Решение № 1, используя substr() + strrpos() :
функция strrpos() находит положение прошлой появление / в строке, substr() извлекает необходимую подстроку.
Решение № 2, используя explode() + implode() :
В качестве альтернативы вместо array_pop($array) мы можем сделать последний компонент пустым, и нет необходимости добавлять дополнительные ‘/’ в конце:
Решение № 3, используя preg_replace() :
Вопрос был отредактирован таким образом, чтобы исходный ответ (под правкой) не соответствовал требованиям ОП. Он не был помечен как правка из OP.
РЕДАКТИРОВАТЬ:
Обновил мой ответ, чтобы он теперь соответствовал требованиям ОП:
(Теперь он работает с таким количеством слешей, как вы хотите)
Кто-нибудь может сказать, как удалить символы после? в php. У меня есть один тест строки? = Новый, мне нужно удалить символы, а также = из этой строки.
7 ответов
Если вы хотите оставить знак вопроса, решение будет почти таким же:
$ use_this [0] будет «test». Если вы хотите добавить «?» назад, просто объединить:
Вы можете проверить это с помощью следующей командной строки:
substr и strpos
Третий параметр true указывает функции возвращать все до первого появления второго параметра.
Удалить часть строки после определенного символа
Мне просто интересно, как я могу удалить все после определенной подстроки в PHP
Я хотел бы иметь его так, чтобы он удалял весь текст, включая и после, подстроку «By»
В простом английском: дайте мне часть строки, начиная с начала и заканчивая в том месте, где вы впервые сталкиваетесь с разделителем.
Как насчет использования explode :
Ответ Остина работает для вашего примера.
В более общем плане вам было бы полезно изучить функции регулярного выражения, когда подстрока, которую вы разделяете, может различаться между строками:
preg_replace предлагает один из способов:
Вы можете использовать функции list и explode :
Третий параметр true указывает функции вернуть все до первого появления второго параметра.
Ниже приведен менее эффективный метод, но он занимает меньше пространства кода. Этот метод также более гибкий и позволяет вам выполнять любое регулярное выражение.
Например, если вы хотите удалить все после дня:
Для нечувствительности к регистру добавьте модификатор i следующим образом:
Чтобы получить все прошлое, если вы думаете, что может быть больше одного, добавьте дополнительно. * В начале:
Но здесь также очень мощный способ использования preg_match, чтобы делать то, что вы пытаетесь сделать:
Регулярные выражения могут показаться запутанными сначала, но они могут быть действительно мощными и вашим лучшим другом, как только вы овладеете ими! Удачи!
Php удалить все после символа
(PHP 4, PHP 5, PHP 7, PHP 8)
trim — Удаляет пробелы (или другие символы) из начала и конца строки
Описание
Список параметров
Обрезаемая строка ( string ).
Возвращаемые значения
Примеры
Пример #1 Пример использования trim()
Результат выполнения данного примера:
Пример #2 Обрезание значений массива с помощью trim()
Результат выполнения данного примера:
Примечания
Замечание: Возможные трюки: удаление символов из середины строки
Смотрите также
User Contributed Notes 18 notes
When specifying the character mask,
make sure that you use double quotes
= »
Hello World » ; //here is a string with some trailing and leading whitespace
Non-breaking spaces can be troublesome with trim:
// PS: Thanks to John for saving my sanity!
?>
It is worth mentioning that trim, ltrim and rtrim are NOT multi-byte safe, meaning that trying to remove an utf-8 encoded non-breaking space for instance will result in the destruction of utf-8 characters than contain parts of the utf-8 encoded non-breaking space, for instance:
non breaking-space is «\u
$input = «\u
$output = trim($input, «\u
$output got both «\u
Care should be taken if the string to be trimmed contains intended characters from the definition list.
E.g. if you want to trim just starting and ending quote characters, trim will also remove a trailing quote that was intentionally contained in the string, if at position 0 or at the end, and if the string was defined in double quotes, then trim will only remove the quote character itself, but not the backslash that was used for it’s definition. Yields interesting output and may be puzzling to debug.
To remove multiple occurences of whitespace characters in a string an convert them all into single spaces, use this:
trim is the fastest way to remove first and last char.
This is the best solution I’ve found that strips all types of whitespace and it multibyte safe
Trim full width space will return mess character, when target string starts with ‘《’
[EDIT by cmb AT php DOT net: it is not necessarily safe to use trim with multibyte character encodings. The given example is equivalent to echo trim(«\xe3\80\8a», «\xe3\x80\x80»).]
if you are using trim and you still can’t remove the whitespace then check if your closing tag inside the html document is NOT at the next line.
there should be no spaces at the beginning and end of your echo statement, else trim will not work as expected.
If you want to check whether something ONLY has whitespaces, use the following: