php узнать последний символ в строке
Как получить последний символ строки в PHP?
Мне нужно получить последний символ строки. Скажем, у меня есть «тестеры» в качестве входной строки, и я хочу, чтобы результат был «s». как я могу сделать это в PHP?
Или для многобайтовых строк:
Обратите внимание, что это не работает для многобайтовых строк. Если вам нужно работать с многобайтовой строкой, рассмотрите возможность использования mb_* семейства функций string.
Я позволю вам угадать вывод.
Кроме того, я добавил это к коду производительности ксенонита со следующими результатами:
substr () занял 7.0334868431091секунд
доступ к массиву занял 2,3111131191254 секунд
Прямой доступ к строке (отрицательные смещения строки) занял 1.7971360683441секунд
Я не могу оставлять комментарии, но в отношении ответа FastTrack, также помните, что конец строки может быть только один символ. Я бы предложил
РЕДАКТИРОВАТЬ: Мой код ниже был отредактирован кем-то, чтобы он не делал то, что я указал. Я восстановил свой исходный код и изменил формулировку, чтобы сделать его более понятным.
trim (или rtrim ) удалит все пробелы, поэтому, если вам нужно проверить пробел, табуляцию или другие пробелы, сначала вручную замените различные окончания строк:
Начиная с PHP 7.1.0, отрицательные смещения строк также поддерживаются. Итак, если вы идете в ногу со временем, вы можете получить доступ к последнему символу в строке, например так:
По просьбе @mickmackusa я дополняю свой ответ возможными способами применения:
Я бы посоветовал перейти к решению Гордона, так как оно более производительно, чем substr ():
Как получить последний символ строки в PHP?
Мне нужно получить последний символ строки. Скажем, у меня есть «тестеры» в качестве входной строки, и я хочу, чтобы результат был «s». как я могу сделать это в PHP?
12 ответов
Или для многобайтовых строк:
Я позволю вам угадать результат.
Кроме того, я добавил это в код производительности xenonite со следующими результатами:
substr () заняла 7,0334868431091секунду
доступ к массиву занял 2.3111131191254секунды
Прямой доступ к строке (отрицательное смещение строки) занял 1,7971360683441 секунды
Начиная с PHP 7.1.0, также поддерживаются отрицательные строковые смещения. Итак, если вы идете в ногу со временем, вы можете получить доступ к последнему символу в строке следующим образом:
По просьбе @mickmackusa свой ответ дополняю возможными способами применения:
Я не могу оставлять комментарии, но в отношении ответа FastTrack также помните, что окончание строки может быть только одним символом. Я бы предложил
РЕДАКТИРОВАТЬ: Мой код ниже был кем-то отредактирован, поэтому он не выполняет то, что я указал. Я восстановил исходный код и изменил формулировку, чтобы сделать его более понятным.
trim (или rtrim ) удалит все пробелы, поэтому, если вам действительно нужно проверить наличие пробелов, табуляции или других пробелов, сначала вручную замените различные окончания строк:
Я бы посоветовал обратиться к решению Гордона, поскольку оно более производительно, чем substr ():
Выводит что-то вроде
Я не думаю, что человеку, задавшему вопрос, это было нужно, но у меня возникли проблемы с получением этого последнего символа из строки из текстового файла, поэтому я уверен, что другие столкнутся с аналогичными проблемами.
Вы можете найти последний символ с помощью php разными способами, например substr () и mb_substr ().
Здесь я могу показать вам оба примера:
Строка на разных языках, включая C-Sharp и PHP, также считается массивом символов.
Зная, что теоретически операции с массивами должны быть быстрее, чем операции со строками, которые вы могли бы сделать,
Однако стандартные функции массива, такие как
Не будет работать со строкой.
Siemano, получить только php файлы из выбранного каталога:
как получить последний символ строки в PHP?
Мне нужно получить последний символ строки. Скажем, у меня есть» тестеры «в качестве входной строки, и я хочу, чтобы результат был»s». как я могу это сделать в PHP?
11 ответов
обратите внимание, что это не работает для многобайтовых строк. Если вам нужно работать с многобайтовую строку, используйте тег mb_* семейство строковых функций.
в up и coming PHP 7.1 вы сможете это сделать (принято rfc для отрицательных смещений строк):
Я позволю вам угадать выход.
кроме того, я добавил Это xenonite это код производительности с этими результатами:
substr () заняло 7.0334868431091 секунд
доступ к массиву занял 2,3111131191254 секунды
прямой доступ к строке 1.7971360683441 секунды
Я не могу оставлять комментарии, но в отношении ответа FastTrack также помните, что окончание строки может быть только одним символом. Я бы предложил
EDIT: мой код ниже был отредактирован кем-то, заставляя его не делать то, что я указал. Я восстановил свой исходный код и изменил формулировку, чтобы сделать ее более ясной.
trim (или rtrim ) будут удалены все пробелы, поэтому, если вам нужно проверить пробел, tab или другие пробелы вручную заменяют сначала различные окончания строк:
Я бы посоветовал пойти на решение Гордона, поскольку оно более эффективно, чем substr ():
выводит что-то вроде
Я не думаю, что человек, который задал вопрос, нуждался в этом, но для меня у меня возникли проблемы с получением последнего символа из строки из текстового файла, поэтому я уверен, что другие столкнутся с аналогичными проблемами.
вы можете найти последний символ, используя php многими способами, такими как substr () и mb_substr ().
Если вы используете многобайтовые кодировки, такие как UTF-8, используйте mb_substr вместо substr
здесь я могу показать вам, как пример:
строка на разных языках, включая C sharp и PHP, также считается массивом символов.
зная, что в теории операции массива должны быть быстрее, чем строковые, которые вы могли бы сделать,
однако, стандартные функции такие, как
не будет работать на строке.
начиная с PHP 7.1.0, отрицательные смещения строк также поддерживаются. Итак, если вы идете в ногу со временем, вы можете получить доступ к последнему символу в строке следующим образом:
Siemano, получить только php файлы из выбранного каталога:
как получить последний символ строки в PHP?
Мне нужно получить последний символ строки. Скажем, у меня есть «тестеры» в качестве входной строки, и я хочу, чтобы результат был «s». как я могу это сделать в PHP?
Или прямым доступом к строке :
В предыдущем и следующем PHP 7.1 вы сможете это сделать ( Accepted rfc для отрицательных смещений строк ):
Я дам вам угадать результат.
Кроме того, я добавил это к коду производительности xenonite с этими результатами:
доступ к массиву занял 2,3111131191254 секунд
Прямой доступ к строке занял 1.7971360683441сек.
Я не могу оставлять комментарии, но в отношении ответа FastTrack также помните, что окончание строки может быть только одиночным символом. Я бы предложил
EDIT: Мой код ниже был отредактирован кем-то, поэтому он не делает то, что я указал. Я восстановил исходный код и изменил формулировку, чтобы сделать ее более понятной.
trim (или rtrim ) удалит все пробелы, поэтому, если вам нужно проверить пробел, вкладку или другие пробелы, сначала замените различные окончания строк:
Я бы посоветовал пойти на решение Гордона, поскольку он более эффективен, чем substr ():
выводит что-то вроде
Я не думаю, что человек, который задал вопрос, нуждался в этом, но для меня у меня возникли проблемы с получением последнего символа из строки из текстового файла, поэтому я уверен, что другие столкнутся с подобными проблемами.
Если вы используете многобайтовые кодировки символов, такие как UTF-8, используйте mb_substr вместо substr
Здесь я могу показать вам оба примера:
Строка на разных языках, включая C sharp и PHP, также считается массивом символов.
Зная, что в теории операции массива должны быть быстрее строковых, которые вы могли бы сделать,
Однако стандартные функции массива, такие как
не будет работать с строкой.
Siemano, получите только файлы php из выбранного каталога:
strripos
strripos — Возвращает позицию последнего вхождения подстроки без учёта регистра
Описание
Список параметров
Строка, в которой производится поиск.
Фактически это будет последнее вхождение needle без учёта offset последних байт.
Возвращаемые значения
Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)).
Замечание: Позиция в строке строки отсчитывается от 0, а не от 1.
Список изменений
Версия | Описание |
---|---|
8.0.0 | Передача целого числа ( int ) в needle больше не поддерживается. |
7.3.0 | Передача целого числа ( int ) в needle объявлена устаревшей. |
Примеры
Пример #1 Пример использования strripos()
= ‘ababcd’ ;
$needle = ‘aB’ ;
Результат выполнения данного примера:
Смотрите также
User Contributed Notes 7 notes
Simple way to implement this function in PHP 4
OK, I guess this will be the final function implementation for PHP 4.x versions ( my previous posts are invalid )
Suppose you just need a stripos function working backwards expecting that strripos does this job, you better use the following code of a custom function named strbipos:
Sorry, I made that last post a bit prematurely. One more thing wrong with the simple php4 version is that it breaks if the string is not found. It should actually look like this:
strripos() has very strange behaviour when you provide search position. For some reason it searches forward from the given position, instead of searching backward, that is more logical.