Функция substr
Функция substr используется для удаления части строки. Она имеет следующий формат:
$substring = substr(Str, Offset[,Len]);
Функция возвращает подстроку, т. е. часть строки, длина которой не превышает величины, заданной факультативным параметром Len . Возвращаемая подстрока строки str начинается с символа в позиции, заданной сдвигом Offset . Если параметр Len опущен, то возвращаемая строка содержит символы до конца строки включительно. Если параметр Offset отрицательный, то сдвиг вычисляется от конца строки. Наконец, скрипт может использовать substr как lvalue для выполнения операции присваивания. Следующий фрагмент кода иллюстрирует использование функции substr .
print substr(‘orange’,3); # Выведет ‘nge’
print substr(‘orange’,-2); # Выведет ‘ge’
print substr(‘orange’,2,2); # Выведет ’an’
print $str; # Выведет ‘apricot’
Примечание: Часто использование операторов языка Perl для регулярных выражений оказывается более эффективным, чем функции substr . Регулярные выражения обсуждаются ниже в данной главе.
Метод substr()
Определение
Метод substr() возвращает подстроку символов из строки вызова метода. Аргументами передается начальный индекс символа и количество считываемых символов.
Синтаксис
Описание
Метод substr() возвращает подстроку исходной строки, начальный индекс и длина которой указываются параметрами.
Метод substr() начинает извлекать символы начиная с позиции start и собирёт количество length символов, если он не достигнет раньше конца строки.
Если атрибут start больше либо равен длине строки, метод substr() вернёт пустую строку.
Если атрибут start – отрицательное число, позиция определяется начиная с конца строки.
Если атрибут start – отрицательное число и по модулю больше длины строки, метод substr() будет использовать в качестве начального индекса.
Если атрибут length равен нулю или отрицателен, метод substr() вернёт пустую строку. Если length не указан, substr извлечёт все символы до конца строки.
Возвращаемое значение
Копия фрагмента строки, начиная с символа, находящегося в позиции start (включительно); имеет длину, равную аргументу length, или заканчивается концом строки, если длина length не указана.
Что возвращает substring(0, 0)
Хотелось бы узнать: какую строку возвращает substring(0, 0) , если вызывающая строка состоит только из одного символа?
3 ответа 3
Вам вернется пустая строка. При чем не null , а просто new String(«») .
В таких случаях всегда открывайте документацию метода. И смотрите его исходный код и логику работы. Из исходников.
value это ссылка на массив символов которые хранит ваша строка
Метод substring(n, m) возвращает подстроку начиная с n индекса (включая) до m индекса (не включая). В нашем случае substring(0, 0) возвращает пустую строку, как при инициализации новой переменной: String s2 = «»;
Наглядно это можно продемонстрировать следующим кодом. При сравнении s2 и «» equals возвращает true.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками java или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.12.35412
Что такое код substr
(PHP 3, PHP 4, PHP 5)
substr — Возвращает подстроку
Описание string substr ( string string, int start [, int length] )
substr() возвращает подстроку строки string длиной length , начинающегося с start символа по счету.
Если start неотрицателен, возвращаемая подстрока начинается в позиции start от начала строки, считая от нуля. Например, в строке ‘ abcdef ‘, в позиции 0 находится символ ‘ a ‘, в позиции 2 — символ ‘ c ‘, и т.д.
Пример 1. Пример использования substr()
= substr ( «abcdef» , 1 ); // возвращает «bcdef» $rest = substr ( «abcdef» , 1 , 3 ); // возвращает «bcd» $rest = substr ( «abcdef» , 0 , 4 ); // возвращает «abcd» $rest = substr ( «abcdef» , 0 , 8 ); // возвращает «abcdef» // к отдельным символам можно обращаться с помощью фигурных скобок |
Если start отрицательный, возвращаемая подстрока начинается с start символа с конца строки string .
Пример 2. Использование отрицательного start
= substr ( «abcdef» , — 1 ); // возвращает «f» $rest = substr ( «abcdef» , — 2 ); // возвращает «ef» $rest = substr ( «abcdef» , — 3 , 1 ); // возвращает «d» ?> |
Если length положительный, возвращаемая строка будет не длиннее length символов. Если длина строки string меньше или равна start символов, возвращается FALSE .
Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string . Если при этом позиция начала подстроки, определяемая аргументом start , находится в отброшенной части строки, возвращается пустая строка.
Пример 3. Использование отрицательного length
SQL – Строковые функции
No. | Описание функции |
---|---|
1 | ASCII() Возвращает числовое значение левого символа |
2 | BIN() Возвращает строковое представление аргумента |
3 | BIT_LENGTH() Возвращает длину аргумента в битах |
4 | CHAR_LENGTH() Возвращает количество символов в аргументе |
5 | CHAR() Возвращает символ для каждого целого числа |
6 | CHARACTER_LENGTH() Синоним char_length() |
7 | CONCAT_WS() Возвращает объединение с сепаратором |
8 | CONCAT() Возвращает объединение строк |
9 | CONV() Преобразование числа между различными системами счисления |
10 | ELT() Возвращает строку под номером индекса |
11 | EXPORT_SET() Возвращает строку таким образом, что для каждого бита, установленного в значении бит, вы получаете строку и для каждого отключенного бита, вы не получите строку |
12 | FIELD() Возвращает индекс (позиция) первого аргумента в последующих аргументах |
13 | FIND_IN_SET() Возвращает индекс позиции первого аргумента во втором аргументе |
14 | FORMAT() Возвращает номер, отформатированный для указанного количества знаков после запятой |
15 | HEX() Возвращает строковое представление шестнадцатеричного |
16 | INSERT() Вставляет подстроку в указанной позиции до указанного числа символов |
17 | INSTR() Возвращает индекс первого вхождения подстроки |
18 | LCASE() Синоним LOWER() |
19 | LEFT() Возвращает крайний левый ряд символов, как указано |
20 | LENGTH() Возвращает длину строки в байтах |
21 | LOAD_FILE() Загружает файл с именем |
22 | LOCATE() Возвращает позицию первого вхождения подстроки |
23 | LOWER() Возвращает аргумент в нижнем регистре |
24 | LPAD() Возвращает строковый аргумент cлева с указанной строкой |
25 | LTrim() Удаляет начальные пробелы |
26 | MAKE_SET() Возвращает набор строк разделенных запятыми, которые имеют соответствующий бит |
27 | MID() Возвращает подстроку, начиная с заданной позиции |
28 | OCT() Возвращает строковое представление восьмеричного аргумента |
29 | OCTET_LENGTH() Синоним LENGTH() |
30 | ORD() Если крайний левый символ аргумента многобайтный символ, возвращает код для этого символа |
31 | POSITION() Синоним LOCATE() |
32 | QUOTE() Игнорирует аргумент для использования в операторе SQL |
33 | REGEXP Поиск по шаблону с использованием регулярных выражений |
34 | REPEAT() Повторяет строку указанное количество раз |
35 | REPLACE() Заменяет вхождения указанной строки |
36 | REVERSE() Меняет символы в строке |
37 | RIGHT() Возвращает указанный крайний правый ряд символов |
38 | Rpd() Добавляет строку в заданное число раз |
39 | RTRIM() Удаляет конечные пробелы |
40 | SOUNDEX() Возвращает строку SOUNDEX |
41 | SOUNDS LIKE Сравнивает звуки |
42 | SPACE() Возвращает строку из указанного количества пробелов |
43 | STRCMP() Сравнивает две строки |
44 | SUBSTRING_INDEX() Возвращает подстроку из строки до заданного числа появлений разделителя |
45 | SUBSTRING() , SUBSTR() Возвращает указанную подстроку |
46 | TRIM() Удаляет начальные и конечные пробелы |
47 | UCASE() Синоним UPPER() |
48 | Unheks() Преобразует каждую пару шестнадцатеричных цифр в символы |
49 | UPPER() Преобразует строку в верхний регистр |
ASCII(строка)
Возвращает числовое значение первого символа строки. Возвращает 0, если строка пустая строка. Возвращает NULL, если строка является NULL. ASCII() работает для символов с числовыми значениями от 0 до 255.
Возвращает строковое представление двоичного значения N, где N представляет собой длинное целое (BIGINT) число. Это эквивалентно CONV (N, 10,2). Возвращает NULL, если N является NULL.
BIT_LENGTH(str)
Возвращает длину строки str в битах.
CHAR(N,… [USING charset_name])
CHAR() интерпретирует каждый аргумент N как целое число и возвращает строку, состоящую из символов, заданных кодовых значениями этих чисел. NULL значения пропускаются.
CHAR_LENGTH(str)
Возвращает длину строки str, измеренной в символах. Многобайтные символы считаются как один символ. Это означает, что для строки, содержащей пять символов два байта, LENGTH() возвращает 10, в то время как char_length() возвращает 5.
CHARACTER_LENGTH(str)
CHARACTER_LENGTH() является синонимом char_length() .
CONCAT (str1, str2, …)
Возвращает строку, которая является результатом конкатенации аргументов. Может иметь один или несколько аргументов. Если все аргументы не являются бинарными строками, результат не является бинарной строкой. Если аргументы включают в себя любые двоичные строки, результат является бинарной строкой. Числовой аргумент преобразуется в эквивалентную форму двоичной строки; если вы хотите избежать этого, вы можете использовать явное приведение типа, как в данном примере:
CONCAT_WS(separator,str1,str2,…)
CONCAT_WS() означает объединить с сепаратором и особую форму CONCAT(). Первый аргумент является разделителем для остальных аргументов. Разделитель добавляется между строками, которые объединяются. Сепаратор может быть строкой, как и остальные аргументы. Если разделитель равен NULL, то результат будет NULL.
CONV(N, N from_base, to_base)
Преобразование числа между различными системами счисления. Возвращает строковое представление числа N, преобразованное из базового from_base в to_base. Возвращает NULL, если любой параметр NULL. Аргумент N интерпретируется как целое, но может быть указан в виде целого числа или строки. Минимальная база 2, а максимальная база 36. Если to_base отрицательное число, N рассматривается как число со знаком. В противном случае, N трактуется как беззнаковое. CONV() работает с 64-битной точностью.
ELT(N, str1, str2, str3, …)
Возвращает str1, если N = 1, str2, если N = 2, и так далее. Возвращает NULL, если N меньше 1 или больше, чем число аргументов. ELT() является дополнением FIELD().
EXPORT_SET(bits,on,off[,separator[,number_of_bits]])
Возвращает строку, что для каждого бита, установленного в значении бит, вы получаете на строку и для каждого бита не установлен в значении, вы не получите строку. Биты в битах рассматриваются справа налево (от низкого до бита высокого порядка). Строки добавляются к результату слева направо, отделены друг от друга разделительной полосой (по умолчанию является символ запятой. ). Число битов задается NUMBER_OF_BITS (по умолчанию 64).
FIELD(str,str1,str2,str3,…)
Возвращает индекс (положение, начиная с 1) str в str1, str2, str3, … список. Возвращает 0, если строка не найдена.
FIND_IN_SET(str, strlist)
Возвращает значение в диапазоне от 1 до N, если строка str находится в списке строки strlist, состоящем из N подстрок.
FORMAT(X,D)
Формат числа X, как «#, ###, ###. ##» с округлением до D знаков после запятой, и возвращает результат в виде строки. Если D равно 0, результат не имеет десятичной точки или дробной части.
HEX(N_OR_S)
Если N_OR_S это число, возвращает строковое представление шестнадцатеричного значения N, где N представляет собой длинное целое (BIGINT) число. Это эквивалентно CONV (N, 10,16).
Если N_OR_S является строкой, то возвращает шестнадцатеричное строковое представление N_OR_S, где каждый символ в N_OR_S преобразуется в две шестнадцатеричных цифры.
INSERT(str,pos,len,newstr)
Возвращает строку str с подстрокой, начиная с позиции pos и кол-во символов len заменяется строкой newstr. Возвращает исходную строку, если позиция не находится в пределах длины строки. Заменяет остальную часть строки от позиции, если len не находится в пределах длины остальной части строки. Возвращает NULL, если любой параметр NULL.
INSTR(str,substr)
Возвращает позицию первого вхождения подстроки substr в строке str. Это так же, как два-аргумента формы LOCATE(), за исключением того, что порядок аргументов обратный.
LCASE(str)
LCASE() является синонимом LOWER() .
LEFT(str,len)
Возвращает крайние левые len символов из строки str, или NULL, если какой-либо аргумент NULL.
LENGTH(str)
Возвращает длину строки str, измеренную в байтах. Многобайтное количество символов в нескольких байт. Это означает, что для строки, содержащей пять символов два байта, LENGTH() возвращает 10, в то время как char_length() возвращает 5.
LOAD_FILE(file_name)
Читает файл и возвращает содержимое файла в виде строки. Чтобы использовать эту функцию, файл должен быть расположен на хосте сервера, необходимо указать полный путь к файлу, и вы должны иметь привилегию FILE. Файл должен быть доступен для чтения всем и его размер меньше, чем max_allowed_packet байт.
Если файл не существует или не может быть прочитан, и не одно из предыдущих условий не выполняется, то функция возвращает NULL.
По состоянию SQL 5.0.19, интерпретации переменных управления системой character_set_filesystem имен файлов, которые даны в виде текстовых строк.
LOCATE(substr,str), LOCATE(substr,str,pos)
Первый синтаксис возвращает позицию первого вхождения подстроки substr в строке str. Второй синтаксис возвращает позицию первого вхождения подстроки substr в строке str, начиная с позицией pos. Возвращает 0, если substr не в str.
LOWER(str)
Возвращает строку str, все символы переведены в нижний регистр в соответствии с текущим набором символов.
LPAD(str,len,padstr)
Возвращает строку str, слева дополняется строкой padstr до длины len символов. Если строка длиннее, чем длина, возвращаемое значение сокращаются до длины символов.
LTRIM(str)
Возвращает строку str, с удаленными пробелами.
MAKE_SET(bits,str1,str2,…)
Возвращает заданное значение (строку, содержащую подстроки, разделенные символом . ), состоящее из строк, имеющих соответствующий бит в наборе. str1 соответствует биту 0, str2 биту 1, и так далее. NULL значения в str1, str2, … не добавляется к результату.
MID(str,pos,len)
MID(str,pos,len) является синонимом SUBSTRING(str,pos,len).
Возвращает строковое представление восьмеричного значения N, где N представляет собой длинное целое (BIGINT) число. Это эквивалентно CONV (N, 10,8). Возвращает NULL, если N является NULL.
OCTET_LENGTH(str)
OCTET_LENGTH() является синонимом LENGTH() .
ORD(str)
Если крайний левый символ строки str многобайтный символ, то возвращает код для этого символа, вычисленного из числовых значений составляющих его байт, используя эту формулу:
Если крайний левый символ не является многобайтным символом а, Ord() возвращает то же значение, что и функция ASCII() .
POSITION(substr IN str)
POSITION(substr IN str) является синонимом LOCATE(substr,str).
QUOTE(str)
Котировки строки для получения результата, который может быть использован как правильно отображения значение данных в операторе SQL. Возвращается строка заключена в одинарные кавычки, и с каждым экземпляром одинарные кавычки ( «), обратной косой черты (» \ ‘), ASCII NUL и Control-Z предшествует обратный слэш. Если аргумент NULL, то возвращаемое значение слово «NULL» без ограждающих одиночных кавычек.
Примечание – Пожалуйста , проверьте , если ваша установка имеет какую – либо ошибку с этой функцией не используйте эту функцию.
expr REGEXP pattern
Эта функция выполняет соответствовать образцу выражение в отношении pattern. Возвращает 1, Если выражение соответствует pattern; в противном случае возвращает 0. Если какое-либо выражение или pattern имеет значение NULL, результатом будет NULL. Регулярное выражение не чувствительно к регистру, за исключением, когда используется с двоичными строками.
Давайте посмотрим еще один пример:
REPEAT(str,count)
Возвращает строку, состоящую из строки str неоднократное число раз. Если счетчик меньше 1, возвращает пустую строку. Возвращает NULL, если строка или количество является NULL.
REPLACE (str, from_str, to_str)
Возвращает строку str, в которой все вхождения строки from_str заменены строкой to_str. REPLACE() выполняет совпадение с учетом регистра при поиске from_str.
REVERSE(str)
Возвращает строку str с обратными порядком символов.
RIGHT(str,len)
Возвращает крайние правые символы len из строки str, или NULL, если какой-либо аргумент NULL.
RPAD(str,len,padstr)
Возвращает строку str, справа проложенный со строкой padstr до длины len символов. Если строка длиннее, чем длина, возвращаемое значение сокращаются до длины символов.
RTRIM(str)
Возвращает строку str, пробелы будут удалены.
SOUNDEX(str)
Возвращает строку из SOUNDEX str. Две строки, которые звучат почти так же, должны иметь идентичные строки SOUNDEX. Стандартная строка SOUNDEX длиной четыре символа, но функция SOUNDEX() возвращает произвольно длинную строку. Вы можете использовать SUBSTRING() на результате, чтобы получить стандартную строку SOUNDEX. Все не-алфавитные символы str игнорируются. Все международные алфавитные символы вне диапазона AZ обрабатываются как гласные.
expr1 SOUNDS LIKE expr2
Это то же самое, как SOUNDEX (Expr1) = SOUNDEX (expr2).
SPACE(N)
Возвращает строку, состоящую из символов пробела N.
STRCMP (str1, str2)
Сравнивает две строки и возвращает 0, если обе строки равны, и возвращается -1, если первый аргумент меньше второго согласно текущему порядку сортировки в противном случае она возвращает 1.
Давайте посмотрим еще один пример:
SUBSTRING(str,pos)
SUBSTRING(str FROM pos)
SUBSTRING(str,pos,len)
SUBSTRING(str FROM pos FOR len)
Формы без аргумента len возвращает подстроку из строки str, начиная с позиции pos. Формы с аргументом len возвращают подстроку len символов из строки str, начиная с позиции pos. Формы, которые используют FROM являются стандартным синтаксисом SQL. Кроме того, можно использовать отрицательное значение для pos. В этом случае, начало подстроки len символов от конца строки, а не c началf. Отрицательное значение может быть использовано для pos в любом из форм этой функции.
SUBSTRING_INDEX(str,delim,count)
Возвращает подстроку из строки str до количества вхождений разделителя DELIM. Если счетчик является положительным, все слева от последнего разделителя (считая слева) возвращаются. Если счетчик имеет отрицательное значение, все что справа от последнего разделителя (считая справа) возвращаются. SUBSTRING_INDEX() выполняет совпадение с учетом регистра при поиске DELIM.
TRIM([ [remstr] FROM] str)
TRIM([remstr FROM] str)
Возвращает строку str со все remstr префиксы или суффиксы удалены. Если ни один из спецификаторов BOTH, LEADING или TRAILING не заданы, предполагается, BOTH. remstr является необязательным и, если не указано, пробелы удаляются.
UCASE(str)
UCASE() является синонимом UPPER().
UNHEX(str)
Выполняет обратную операцию HEX(str). То есть, он интерпретирует каждую пару шестнадцатеричных цифр в аргументе как число и преобразует его в символ, представленный номер. Полученные символы возвращаются в виде бинарной строки.
Символы в строке аргумента должны быть шестнадцатеричные цифры: ‘0’ .. ‘9’, ‘A’ .. ‘F’, ‘а’ .. ‘е’. Если UNHEX() встречает любые не шестнадцатеричные цифры в аргументе, она возвращает NULL.
UPPER(str)
Возвращает строку, все символы переведены в верхний регистр в соответствии с текущим набором символов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как работает string-метод — substr(pos,n) ? Помогите найти ошибку!
Должно выдать в столбик два массива строк: str2[0] и str2[1].
А выдаёт str2[0] и потом всякие символы.
Как я понял косяк с исключениями:
Ошибка с substr(): «substr() expects parameter 1 to be string, array given»
Помогите, не могу понять что не так. Как сделать что-бы заработало? Вот часть кода: $rgrt_one =.
Метод Гаусса — помогите найти ошибку
function metodgayssCLOY(a, b) ab = ; oldab = ab; s = size(ab); s1 = ; .
Объясните как работает метод Any у String
Доброго времени суток. Ни как не могу понять как работает метод Any в классе String .Пытался читать.
#include «stdafx.h»
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
<
string str[2],str2[20];
int i,j,n=3,pos=0;
str[0]=»clkvj_jsgkjssdfgjjsfgksjkghjjk»;
str[1]=»jjjthhjguyuykiuouiophjpuiphioh»;
for(i=0;i 1
15.07.2008, 17:23 | ||||||
15.07.2008, 17:23 | ||||||
Помогите исправить ошибку: string не найден оператор substr(PHP 4, PHP 5, PHP 7) substr — Возвращает подстроку ОписаниеВозвращает подстроку строки string , начинающейся с start символа по счету и длиной length символов. Список параметровВходная строка. Должна содержать хотя бы один символ. Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. Например, в строке ‘abcdef‘, в позиции находится символ ‘a‘, в позиции 2 — символ ‘c‘, и т.д. Если start отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на start символов от конца строки string . Если string меньше start символов, будет возвращено FALSE . Пример #1 Использование отрицательного параметра start Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра start (в зависимости от длины string ). Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если start отрицателен). Если при этом позиция начала подстроки, определяемая аргументом start , находится в отброшенной части строки или за ней, возвращается FALSE . Если указан параметр length и является одним из , FALSE или NULL , то будет возвращена пустая строка. Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром start и длящейся до конца строки. Пример #2 Использование отрицательного параметра length Возвращаемые значенияВозвращает извлеченную часть параметра string ; или FALSE в случае возникновения ошибки или пустую строку. Список изменений
ПримерыПример #3 Базовое использование substr() echo substr ( ‘abcdef’ , 1 ); // bcdef // Получить доступ к отдельному символу в строке Пример #4 substr() и приведение типов class apple < echo «1) » . var_export ( substr ( «pear» , 0 , 2 ), true ). PHP_EOL ; Результат выполнения данного примера в PHP 7: Результат выполнения данного примера в PHP 5: ОшибкиВозвращает FALSE в случае ошибки. Смотрите также
User Contributed Notes 35 notesFor getting a substring of UTF-8 characters, I highly recommend mb_substr echo substr ( $utf8string , 0 , 5 ); may be by following functions will be easier to extract the needed sub parts from a string: ( ‘@’ , ‘biohazard@online.ge’ ); before ( ‘@’ , ‘biohazard@online.ge’ ); between ( ‘@’ , ‘.’ , ‘biohazard@online.ge’ ); after_last ( ‘[‘ , ‘sin[90]*cos[180]’ ); before_last ( ‘[‘ , ‘sin[90]*cos[180]’ ); between_last ( ‘[‘ , ‘]’ , ‘sin[90]*cos[180]’ ); here comes the source: function after ( $this , $inthat ) function after_last ( $this , $inthat ) function before ( $this , $inthat ) function before_last ( $this , $inthat ) function between ( $this , $that , $inthat ) function between_last ( $this , $that , $inthat ) // use strrevpos function in case your php version does not include it ### SUB STRING BY WORD USING substr() and strpos() ##### ### THIS SCRIPT WILL RETURN PART OF STRING WITHOUT WORD BREAK ### $description = ‘your description here your description here your description here your description here your description here your description here your description hereyour description here your description here’ // your description here . if( strlen ( $desctiption ) > 30 ) Be aware of a slight inconsistency between substr and mb_substr mb_substr(«», 4); returns empty string substr(«», 4); returns boolean false tested in PHP 7.1.11 (Fedora 26) and PHP 5.4.16 (CentOS 7.4) Just a little function to cut a string by the wanted amount. Works in both directions. function cutString ( $str , $amount = 1 , $dir = «right» ) return substr ( $str , $start , $end ); Enjoy I created some functions for entity-safe splitting+lengthcounting: function strlen_entities ( $text ) for ( $i = $start ; $i $end ; $i ++) Here we have gr8 function which simply convert ip address to a number using substr with negative offset. function ip2no ( $val ) $min = ip2no ( «10.11.1.0» ); Coming to PHP from classic ASP I am used to the Left() and Right() functions built into ASP so I did a quick PHPversion. hope these help someone else making the switch function left($str, $length) < function right($str, $length) < Well this is a script I wrote, what it does is chop up long words with malicious meaning into several parts. This way, a chat in a table will not get stretched anymore. function text ( $string , $limit = 20 , $chop = 10 )< $text = explode ( » » , $string ); // for example, this would return: echo( $output ); // «Well this text doesn’t get cup up, yet thiss sssss sssss sssss sssss sss one does.» I hope it was useful.. You might expect substr(‘123456’, 6) to return an empty string. Instead it returns boolean FALSE. This behavior should be mentioned in the Return Values section of the manual. Instead it is only mentioned in the Parameters section. If you need an empty string instead of a boolean FALSE you should typecast the result to a string. = substr ( ‘123456’ , 6 ); // equivalent to $a = FALSE Hmm . this is a script I wrote, whitch is very similar to substr, but it isn’t takes html and bbcode for counting and it takes portion of string and show avoided (html & bbcode) tags too ;] /** ?> Using this is similar to simple substr. If you want to have a string BETWEEN two strings, just use this function: function get_between ( $input , $start , $end ) $string = «123456789» ; echo get_between ( $string , $a , $b ); I wanted to work out the fastest way to get the first few characters from a string, so I ran the following experiment to compare substr, direct string access and strstr: /* substr access */ /* strstr access */ echo $endtime1 . «\r\n» . $endtime2 . «\r\n» . $endtime3 ; The string was 6 paragraphs of Lorem Ipsum, and I was trying match the first two words. The experiment was run 3 times and averaged. The results were: (substr) 3.24 (With standard deviations 0.01, 0.02 and 0.04) THEREFORE substr is the fastest of the three methods for getting the first few letters of a string. Add on to (a function originally written by) «Matias from Argentina»: str_format_number function. Just added handling of $String shorter then $Format by adding a side to start the fill and a string length to the while loop. function str_format_number ( $String , $Format , $Start = ‘left’ ) < Anyone coming from the Python world will be accustomed to making substrings by using a «slice index» on a string. The following function emulates basic Python string slice behavior. (A more elaborate version could be made to support array input as well as string, and the optional third «step» argument.) function py_slice ( $input , $slice ) < print py_slice ( ‘abcdefg’ , ‘2’ ) . «\n» ; ?> The $slice parameter can be a single character index, or a range separated by a colon. The start of the range is inclusive and the end is exclusive, which may be counterintuitive. (Eg, py_slice(‘abcdefg’, ‘2:4’) yields ‘cd’ not ‘cde’). A negative range value means to count from the end of the string instead of the beginning. Both the start and end of the range may be omitted; the start defaults to 0 and the end defaults to the total length of the input. The output from the examples: To quickly trim an optional trailing slash off the end of a path name: if (substr( $path, -1 ) == ‘/’) $path = substr( $path, 0, -1 ); When using a value of a wrong type as second parameter , substr() does not return FALSE but NULL although the docs say, it should return FALSE on error. Prior to PHP 5.3, substr() tries to cast the second parameter to int and doesn’t throw any errors. Since PHP 5.3 a warning is thrown. Using a 0 as the last parameter for substr(). As per examples works no problem. However will get you nothing. Just a quick heads up [English] About of pattern structures Example, Output, function str ( $str , $pattern ) < if(empty( $start ) && empty( $stop ) && $step == «-1» ) < //istisna durum if(empty( $start ) && empty( $stop ) && empty( $step )) < //hepsi dolu Good works.. If you need just a single character from the string you don’t need to use substr(), just use curly braces notation: // both lines will output the 3rd character curly braces syntax is faster and more readable IMHO.. Getting the first character of a string Getting the last character of a string Remove the first character of a string Remove the last character of a string I have developed a function with a similar outcome to jay’s Checks if the last character is or isnt a space. (does it the normal way if it is) function limit_string ( $string , $charlimit ) return $new_string . ‘. ‘ ; /** Truncate a float number. Similar to the Excel trunc function. function truncate_number ( $val , $decimals = 2 )< $number =array(); if ( count ( $number )> 1 )< $result = $number [ 0 ] . «.» . substr ( $number [ 1 ], 0 , $decimals ); echo truncate_number ( 99.123456 , 2 ); //result = 99.12 Regarding the utf8_substr function from lmak: The pattern ‘/./u’ doesn’t match newline characters. This means that the substring from 0 to the total length of the string will miss the number of characters in the end matching the number of newlines in the string. To fix this one can add the s modifier (PCRE_DOTALL) in the pattern: function utf8_substr ( $str , $start ) if( func_num_args () >= 3 ) < If you need to parse utf-8 strings char by char, try this one: = chr ( 128 ); — it works without mb_substr I needed a function like lpad from oracle, or right from SQL function right ( $string , $chars ) echo right ( ‘0r0j4152’ , 4 ); Result: //removes string from the end of other function removeFromEnd ( $string , $stringToRemove ) < $pos = $stringLen — $stringToRemoveLen ; $out = substr ( $string , 0 , $pos ); $string = ‘picture.jpg.jpg’ ; Shortens the filename and its expansion has seen. function funclongwords ( $file ) return $word_l_w . «. » . $word_r_a . $vartypesf ; Drop extensions of a file (even from a file location string) = «c:/some dir/abc defg. hi.jklmn» ; echo substr ( $filename , 0 , ( strlen ( $filename )) — ( strlen ( strrchr ( $filename , ‘.’ )))); ?> output: c:/some dir/abc defg. hi Hope it may help somebody like me.. (^_^) And as always there is bound to be a bug: function strlen_entities ( $text ) This returns the portion of str specified by the start and length parameters.. Note: PS:I’m sorry my english is too poor. // String intercept By Bleakwind // Test /** // Define stripos() if not defined (PHP if (! is_callable ( «stripos» )) < function substrpos ( $str , $start , $end = false , $ignore_case = false ) < // If end is false, set it to the length of $str // If $start is a string do what’s needed to make it an integer position for substr(). // Chop the string from $start to strlen($str). // If $end is a string, do exactly what was done to $start, above. // Since $str has already been chopped at $start, we can pass 0 as the new $start for substr() Обрезаем количество символлов или как пользоваться условием subst.Сегодня будет урок по условному оператору uCoz, а именно о функции substr. substr — Возвращает подстроку из строки S, начиная с позиции N1 (первый символ имеет позицию 0), длиной N2 символов. Параметр S должен быть задан как строка (или как результат вызова функции, возвращающей строку). N1 и N2 приводятся к целым значениям. Если N2 не указан, то возвращается подстрока с позиции N1 до конца строки S. Если N1 отрицателен, то начальная позиция отсчитывается от конца строки S. Если N2 отрицателен, то задает конечную позицию от конца строки S. В данном уроке я расскажу как, где и как лучше можно использовать функцию substr. Начнем с такого примера, который использую лично я, и вы можете наблюдать данный пример в данном материале — где написано название материала. Как вы могли заметить, в названии материала очень много символов и они не могут поместится все в заголовок вида материалов, и поэтому после определенного количества символов стоит троеточие, а если бы не использовался данный метод, то вид материалов был бы испорчен большим количеством символов, и что бы решить данную проблему, нужно сделать вот так: Для начала нужно определить сколько символов в $TITLE$, для этого мы воспользовались такой функцией как — len, она определяет сколько символов в заголовке, ну а после мы пользуемся функцией substr. Тут вы должны для себя решить сколько в вашем виде может поместится символов, в моем случае 65 символов, и поэтому если будет больше 65 символов, то название материала обрезается троеточием, а если меньше 65 символов, то название ничем не обрежется. Теперь разжёвываю : Если Вам нужно вывести текст с пятого символа по 10, то нужно сделать так: Получение информации между определенных символов: p.s. Вообще я уже не мало делал материалов, где использовался данный метод, яркий пример например вот Новый формат вывода даты (на условных операторах) на uCoz или вот этот Время в профиле прошедшее с последнего посещения сайта пользователем Вообщем данный метод можно использовать где и как угодно, главное это фантазия, но если у вас есть фантазия но вы не все никак не поймете как что-то реализовать, пишите в комментариях, мы постараемся решить вашу проблему. substring — substr в char c ++ без массиваКак видно из названия, я пытаюсь преобразовать substr в символ. В конечном счете, я пытаюсь сказать, что с помощью substr используется заглавная или строчная буква. Мне дали подсказку, что лучший способ сделать это — использовать значения ascii. Это то, что у меня есть Я получаю эту ошибку здесь: Я понимаю, что это не работает, потому что substr выводит строку, а не символ, но я не понимаю, как получить эти значения ascii. У кого-нибудь есть какие-либо идеи? РешениеПочему вы даже должны использовать substr? Ваш код в основном просто идет вниз по строке символ за символом. Для этого вы можете использовать [] или же at Также запомните ваш код char a = a.substr(i, 1); неправильно, потому что substr возвращает string и вы также изменяете a , Другие решенияВместо использования substr, at или operator [] я бы предложил использовать диапазон, основанный на цикле: И вместо использования значения ASCII было бы лучше использовать функцию isupper: Блог только про JavaУчимся программировать на Java с нуляМетод substring() Java + примеры кодаЧтобы извлечь подстроку из символьной строки, достаточно вызвать метод substring(), у которого имеются две формы. Первая его форма такова: где параметр начальный_индекс обозначает позицию, с которой должна начинаться подстрока. Эта форма возвращает копию подстроки, которая начинается с позиции начальный_индекс и продолжается до завершения вызывающей строки. Вторая форма метода substring() позволяет указать как начальный, так и конечный индекс подстроки следующим образом: где параметр начальный_индекс обозначает позицию, с которой должна начинаться извлекаемая подстрока, а конечный_индекс — позицию, на которой должна оканчиваться извлекаемая подстрока. Возвращаемая подстрока содержит все символы, от первой позиции и до последней, но исключая последнюю. В следующем примере программы программы метод substring() используется для замены исходной символьной строке всех экземпляров одной подстроки другой подстрокой. Ниже приведен результат, выводимый данной программой: |