[редактировать]

Класс str

  • class str (php\lib\str).
  • package std.
use php\lib\str;
// или
use std;

Класс для работы со строками в php, состоит только из статических методов, экземпляр класса создать невозможно.


Статичные методы

  • Поиск по строке

    • str ::pos() - позиция подстроки
    • str ::posIgnoreCase() - позиция подстроки без регистро-зависимости
    • str ::lastPos() - позиция подстроки с конца
    • str ::lastPosIgnoreCase() - позиция строки с конца без регистро-зависимости
    • str ::contains() - содержит ли строку
    • str ::count() - количество подстрок в строке
  • Сравнение строк

    • str ::compare() - сравнение 2х строк
    • str ::compareIgnoreCase() - сравнение 2х строк без регистро-зависимости
    • str ::equalsIgnoreCase() - равны ли 2 строки не учитывая регистр
    • str ::startsWith() - начинается ли строка с подстроки
    • str ::endsWith() - кончается ли строка подстрокой
    • str ::isNumber() - является ли строка числом
    • str ::isLower() - все ли символы в строке в нижнем регистре
    • str ::isUpper() - все ли символы в строке в верхнем регистре
  • Преобразование строк

    • str ::sub() - подстрока от строки
    • str ::lower() - строка в нижнем регистре
    • str ::lowerFirst() - строка с первым символом в нижнем регистре
    • str ::upper() - строка в верхнем регистре
    • str ::upperFirst() - строка с первым символом в нижнем регистре
    • str ::length() - длина строки
    • str ::replace() - заменить в строке
    • str ::repeat() - повторить строку несколько раз
    • str ::trim() - убрать пустые символы строки слева и справа
    • str ::trimRight() - убрать пустые символы строки только справа
    • str ::trimLeft() - убрать пустые символы строки только слева
    • str ::reverse() - перевернуть строку
    • str ::shuffle() - перемешать символы в строке в случайном порядке
    • str ::random() - сгенерировать случайную строку
    • str ::split() - строка в массив с разделителем
    • str ::join() - массив в строку с разделителем
    • str ::encode() - кодирование строки
    • str ::decode() - декодирование строку в родную кодировку
    • str ::format() - форматирование строки
    • str ::uuid() - uuid генератор строк
    • str ::hash() - хеширование строки
    • str ::lines() - многострочный текст в массив

pos()

str::pos(string $string, string $search, int $fromIndex = 0): int

Метод ищет подстроку $search в строке $string и возвращает её позицию (начиная с нуля). Если ничего не было найдено, метод вернет -1. Метод учитывает регистр символов и позволяет начинать поиск с определенного по счету символа $fromIndex.

$search = 'родилась';
$string = 'В лесу родилась ёлочка';

$pos = str::pos($string, $search);

alert('Позиция = ' . $pos);

posIgnoreCase()

str::posIgnoreCase(string $string, string $search, int $fromIndex = 0): int

Метод не учитывает регистр символов при поиске. См. также pos().

Метод ищет подстроку $search в строке $string и возвращает её позицию (начиная с нуля). Если ничего не было найдено, метод вернет -1. Метод позволяет начинать поиск с определенного по счету символа $fromIndex.


lastPos()

str::lastPos(string $string, string $search, int $fromIndex = null): int

Метод учитывает регистр символов при поиске.

Метод ищет подстроку $search в строке $string начиная с конца строки и возвращает её позицию (начиная с нуля). Если ничего не было найдено, метод вернет -1. Метод позволяет начинать поиск с определенного по счету символа $fromIndex, по-умолчанию он равен null, что означает - искать, начиная с последнего символа строки.

$string = 'ту-ту-ру';
$search = 'ту';

$pos = str::lastPos($string, $search);
// $pos будет равен 3, а не 0, т.к. поиск идет с конца.

lastPosIgnoreCase()

str::lastPosIgnoreCase(string $string, string $search, int $fromIndex = null): int

Метод не учитывает регистр символов при поиске. См. также lastPos().

Метод ищет подстроку $search в строке $string начиная с конца строки и возвращает её позицию (начиная с нуля). Если ничего не было найдено, метод вернет -1. Метод позволяет начинать поиск с определенного по счету символа $fromIndex, по-умолчанию он равен null, что означает - искать, начиная с последнего символа строки.


sub()

str::sub(string $string, int $beginIndex, int $endIndex = null): string

Метод возвращает подстроки из строки $string начиная с $beginIndex по счету символа (включительно) и до $endIndex символа (не включительно). Параметр $endIndex не обязательный, если его не передать, то подстрока будет скопирована до конца строки $string. Индексация символов начинается с нуля.

$string = 'Hello World';

alert(str::sub($string, 6)); // выведет World, W - 6 символ.
alert(str::sub($string, 6, 9)); // выведет Wor, l - 9 символ.

compare()

str::compare(string $string1, string $string2): int

Сравнивает две строки и возвращает результат в виде числа, где:

  • 0 - означает, что строки равны.
  • больше 0 - строка $string1 больше $string2.
  • меньше 0 - строка $string1 меньше $string2.

compareIgnoreCase()

str::compareIgnoreCase(string $string1, string $string2): int

Сравнивает две строки и возвращает результат в виде числа. Метод идентичен compare(), за исключением того, что он при сравнении игнорирует регистр символов сравниваемых строк.


equalsIgnoreCase()

str::equalsIgnoreCase(string $string1, string $string2): bool

Возвращает true если две строки равны друг другу без учета регистра символов.

if (str::equalsIgnoreCase('ПРИВЕТ', 'привет')) {
   alert('ПРИВЕТ == привет, без учета регистра символов');
}

См. также compareIgnoreCase().


startsWith()

str::startsWith(string $string, string $prefix, int $offset = 0): bool

Возвращает true если строка $string начинается с префикс-строки $prefix. Можно указать, с какого символа по счету проверять префикс через третий аргумент $offset (индексация идет с нуля).

$string = 'gamedev';

if (str::startsWith($string, 'game')) {
    alert('Строка начинается со слова game');
}

См. также endsWith().


endsWith()

str::endsWith(string $string, string $suffix): bool

Возвращает true если строка $string оканчивается суффикс-строкой $suffix.

$string = 'file.mp3';

if (str::endsWith($string, '.mp3')) {
    alert('Строка оканчивается на ".mp3"');
}

См. также startsWith().


isNumber()

str::isNumber(string $string, string $bigNumbers = true): bool

Возвращает true если строка $string является целым числом. $bigNumbers по-умолчанию true, что означает, что функция будет возвращать true даже для бесконечно больших строковых чисел, с которым невозможно простым путем совершать математические операции в php.

var_dump(str::isNumber('3784798738304908048498498')); // выведет true.
var_dump(str::isNumber('39874dhfj')); // выведет false.
var_dump(str::isNumber('00304')); // выведет true.
var_dump(str::isNumber('3389e4')); // выведет false.
var_dump(str::isNumber('3.49')); // выведет false.
var_dump(str::isNumber('23  ')); // выведет false.

isLower()

str::isLower(string $string): bool

Возвращает true если все символы в строке $string в нижнем регистре.


isUpper()

str::isUpper(string $string): bool

Возвращает true если все символы в строке $string в верхнем регистре.


contains()

str::contains(string $string, string $search): bool

Осуществляет поиск подстроки $search в строке $string и если подстрока найдена, возвращает true.

$nickname = 'devel.next';

if (str::contains($nickname, '.')) {
    alert('Ник содержит точку');
}

count()

str::count(string $string, string $subString, int $offset = 0): int

Возвращает число вхождений подстроки $subString в строку $string начиная с символа $offset (по-умолчанию с начала строки).

$string = 'hello develnext';

$eCount = str::count($string, 'e');
alert("В строке $eCount шт. символов 'e'");

lower()

str::lower(string $string): string

Конвертирует все символы строки '$string' в нижний регистр, возвращает полученную строку.

$string = 'Привет Мир';

alert(str::lower($string)); // выведет 'привет мир'

См. также upper().


lowerFirst()

str::lowerFirst(string $string): string

Возвращает строку, в который первый символ переведен в нижний регистр.

$string = 'GameDev';

alert(str::lowerFirst($string)); // выведет 'gameDev'.

См. также upperFirst().


upper()

str::upper(string $string): string

Конвертирует все символы строки $string в верхний регистр и возвращает её.

$string = 'HelloWorld';

alert( str::upper($string) ); // выведет 'HELLOWORLD'.

См. также lower().


upperFirst()

str::upperFirst(string $string): string

Возвращает строку, в который первый символ переведен в верхний регистр.

$string = 'gameDev';

alert(str::lowerFirst($string)); // выведет 'GameDev'.

См. также lowerFirst().


length()

str::length(string $string): int

Возвращает длину строки, т.е. количество символов внутри строки.

$string = 'develnext';

$len = str::length($string);

alert("Число символов в названии develnext = $len");

replace()

str::replace(string $string, string $target, string $replacement): string

Возвращает строку из $string, в которой были заменены все вхождения строки $target на строку $replacement.

$string = 'develnext';

$newString = str::replace($string, 'next', 'studio');
alert($newString); // выведет 'develstudio'.

repeat()

str::repeat(string $string, int $amount): string

Формирует с помощью $amount повторений новую строку из $string.

$string = 'hello!';

alert(str::repeat($string, 3)); // выведет hello!hello!hello!

trim()

str::trim(string $string, string $charList = "\t\n\r\v\0 "): string

Обрезает пустые символы из $charList слева и справа от строки $string.

По-умолчанию пустыми символами являются \t - таб, \n и \r символы переноса строки, \0 - нулевой символ и пробел.

$string = '  DevelNext  ';

// выведет просто DevelNext без пробелов справа и слева.
alert(str::trim($string)); 

trimRight()

str::trimRight(string $string, string $charList = "\t\n\r\v\0 "): string

Обрезает пустые символы из $charList справа от строки $string.

По-умолчанию пустыми символами являются \t - таб, \n и \r символы переноса строки, \0 - нулевой символ и пробел.

См. также trim().


trimLeft()

str::trimLeft(string $string, string $charList = "\t\n\r\v\0 "): string

Обрезает пустые символы из $charList слева от строки $string.

По-умолчанию пустыми символами являются \t - таб, \n и \r символы переноса строки, \0 - нулевой символ и пробел.

См. также trim().


reverse()

str::reverse(string $string): string

Переворачивает строку $string.

$string = 'Hello';

// выведет 'olleH'
var_dump( str::reverse($string) );

shuffle()

str::shuffle(string $string): string

Возвращает исходную строку $string, в которой все символы перемешаны в случайном порядке.

См. также random.


random()

str::random(int $length = 16, $set = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM0123456789'): string

Возвращает случайную строку длиной $length, составленную из набора символов $set. По-умолчанию, если ничего не передать, вернет строку из 16 символов из латинского алфавита и цифр.

$randString = str::random();
$randString = str::random(8);
$randString = str::random(5, 'ABCDFE123');

См. также shuffle.


split()

str::split(string $string, string $separator, $limit = 0)

Разбивает строку $string на массив с помощью строки-разделителя $separator. Эквивалент explode(). Можно указать максимум разбиений через $limit, 0 - означает отсутствие максимума.

$str = 'car,air,hotel';

// выведет array('car', 'air', 'hotel')
print_r(str::split($str, ','));

// выведет array('car', 'air,hotel')
print_r(str::split($str, ',', 2));

join()

str::join(Iterator|array $iterable, string $separator, int $limit = 0): string

Соединяет все элементы массива или итератора $iterable в строку через разделитель $separator. Эквивалент implode(), за исключением того, что еще умеет работать с любыми итерируемыми объектами.

$array = ['car', 'air', 'hotel'];

// выведет 'car--air--hotel'
print_r(str::join($array, '--'));

encode()

str::encode(string $string, string $charset): string

Кодирует строку $string в нужную кодировку $charset, на выходе обычно получается бинарная строка. Выходит, что метод кодирует строку из родной кодировки jphp для строк в другую. $charset может быть windows-1251 или любое другое название кодировки.


decode()

str::decode(string $string, string $charset): string

Декодирует бинарную строку $string из кодировки $charset в родную кодировку строк в jphp.


format()

str::format(string $format, ...$args): string

Форматирует строку в формате $format с аргументами $args. В формате можно указать переданные аргументы через специальное выражение %s.

$format = 'Привет, %s, это я, твоя %s';

$string = str::format($format, 'Мир', 'Судьба');
alert($string); // выведет 'Привет, Мир, это я, твоя Судьба'

uuid()

str::uuid(string $value = null): string

Возвращает случайный UUID идентификатор или от строки $value. UUID это строка примерно такого вида: 123e4567-e89b-12d3-a456-426655440000, см. подробнее здесь: https://ru.wikipedia.org/wiki/UUID.


hash()

str::hash(string $string, string $algorithm = 'SHA-1'): string

Возвращает хеш строки $string, по-умолчанию SHA-1. Алгоритм можно менять через аргумент $algorightm.

$sha1 = str::hash('develnext');
$md5 = str::hash('develnext', 'MD5');
$md2 = str::hash('develnext', 'MD2');
$sha256 = str::hash('develnext', 'SHA-256');
$sha512 = str::hash('develnext', 'SHA-512');

lines()

str::lines(string $string, bool $removeEmpty = false): array

Разбивает строку $string с помощью символа разделителя "перехода на новую строку" \r и \n.

$string = "Строка\nНовая строка\nЕще новая строка";

print_r(str::lines($string));
/*
Выведет:
array (
    "Строка", "Новая строка", "Еще новая строка"
)
*/