![]() |
Как на Php получить первый...
1. Как на PHP получить первый символ строки?
2. Как получить последние три символа с конца? В смысле: $a = blabQQQ.html как получить "QQQ"? Спасибо. |
substr($str,0,1);
substr($str,-3,3); |
RaZEr
Сенькс! |
Раз у меня есть еще вопросы, задам их здесь же...
Чем различаются \n и \r ? |
http://www.imho.ws/showthread.php?s=&threadid=39617
PS: Для отдельных вопросов отдельные темы. Чтобы потом другим не составляло труда найти ответ. |
Вот строка:
neo_sup_s01 Как вырезать оттуда _s01 чтобы осталось neo_sup? В конце таких строк всегда три символа, так как вырезать три символа с конца с помощью substr? Если нельзя, то как - с помощью regular expressions? |
Neo
_s01 - это вообще четыре символа 8) PHP код:
|
Saruman
Не знаю ни про какие RTFM но я это решил так: $cutout = substr($somevar, -4, 4); $newvar = str_replace($cutout, "", $somevar); |
Мдя ...
|
Neo
RTFM - Read This Fucking(??) Manual... если мне не изменяет память :) в общем тебе посоветовали почитать официальную документацию по языку |
RaZEr
Мдя в каком смысле? @_is_absent Изучением документации я сейчас как раз и занимаюсь. Но когда мне нужна какая-то функция и я не могу ее найти - тогда и спрашиваю... Добавлено через 2 минуты: Цитата:
Но ведь перед нулевым символом ничего нет, так как же это работает? P.S. какой мануал посоветуете? я сейчас читаю учебник php скачанный с php.net.. Добавлено через 3 минуты: Щас перечитал соответвующий топик... виноват, недоглядел про негатвный length |
Цитата:
|
Neo
substr($sMyString, 0, -4) это "обратная" нумерация. Будет отсчитываться от последнего символа... |
Понятно.
Новый вопрос - с substr не выйдет, тут наверно нужен preg_replace? Есть переменная: $p = lalalallalala_bebebebebeebebebbebebe Мне нужно получить все, что до первого символа подчеркивания, однако количество символов может быть любое (заранее неизвестно). как это решить? |
Neo
есть два пути. preg_match и strpos со вторым все просто: $p = strpos($string, "_"); $result = substr($string, 0, $p); регулярное выражение для preg_match будет таким: /([^_]*)/ preg_match("/([^_]*)/", $string, $matches); $result = $matches[1]; на моих тестах второй вариант работал быстрее... разница была в шестом знаке (то есть в микросекундах) :) |
тут еще один вариант вспомнил :)
list($result) = explode("_", $string); |
Спасибо
Ну а что если в строке не один а два _? Это я про первый вариант. |
Neo
про регулярные выражения? должен работать. если будут проблемы добавь модификатор U в конец регулярного выражения. Получится "/([^_]*)/U". все остальные работают :) |
| Часовой пояс GMT +4, время: 15:04. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.