Поиск публикаций
Cтроковые функции
Содержание
Базовые операции
строки.длина(строка)
Возвращает количество символов в строке (в кодировке UTF-8).
$длина = строки.длина("Привет"); // 6
строки.символ(строка, индекс)
Возвращает символ (подстроку длины 1) по указанному индексу. Индексация начинается с 0. Если индекс вне диапазона, возвращается пустая строка.
$ch = строки.символ("Hello", 1); // "e"
строки.подстрока(строка, начало [, длина])
Извлекает подстроку, начиная с позиции начало (включительно). Если указана длина, возвращается ровно столько символов, иначе до конца строки.
$sub = строки.подстрока("Hello, World!", 7, 5); // "World"
строки.пустая(строка)
Проверяет, является ли строка пустой (длина == 0). Возвращает логическое значение.
если (строки.пустая($text)) { … }
Поиск и проверка
строки.позиция(строка, подстрока [, смещение])
Возвращает индекс первого вхождения подстроки в строке, начиная с позиции смещение (по умолчанию 0). Возвращает -1, если не найдено.
$pos = строки.позиция("Hello, World!", "World"); // 7
строки.последняяПозиция(строка, подстрока)
Возвращает индекс последнего вхождения подстроки в строке. Возвращает -1, если не найдено.
$last = строки.последняяПозиция("Hello, World!", "l"); // 10
строки.содержит(строка, подстрока)
Проверяет, содержит ли строка указанную подстроку. Возвращает логическое значение.
если (строки.содержит($text, "test")) { … }
строки.начинаетсяС(строка, префикс)
Проверяет, начинается ли строка с указанного префикса. Возвращает логическое значение.
строки.заканчиваетсяНа(строка, суффикс)
Проверяет, заканчивается ли строка указанным суффиксом. Возвращает логическое значение.
строки.количество(строка, подстрока)
Подсчитывает количество (непересекающихся) вхождений подстроки в строку.
$cnt = строки.количество("ababa", "ab"); // 2
Преобразование
строки.верхний(строка)
Преобразует все символы строки в верхний регистр.
строки.нижний(строка)
Преобразует все символы строки в нижний регистр.
строки.обратный(строка)
Возвращает строку с символами в обратном порядке.
$rev = строки.обратный("12345"); // "54321"
строки.обрезка(строка)
Удаляет пробелы (и другие пробельные символы) с начала и конца строки.
строки.обрезатьСлева(строка)
Удаляет пробелы только с начала строки.
строки.обрезатьСправа(строка)
Удаляет пробелы только с конца строки.
строки.упроститьПробелы(строка)
Заменяет все последовательности пробельных символов (пробелы, табуляции, переводы строк) на один пробел, а также удаляет пробелы в начале и конце строки.
$clean = строки.упроститьПробелы(" a b\tc\n d "); // "a b c d"
строки.повторить(строка, количество)
Повторяет строку указанное количество раз и возвращает результат.
$rep = строки.повторить("AB", 3); // "ABABAB"
Модификация
строки.заменить(строка, старая, новая)
Заменяет все вхождения подстроки старая на новая.
$new = строки.заменить("Hello, World!", "World", "Вася"); // "Hello, Вася!"
строки.вставить(строка, позиция, вставка)
Вставляет подстроку вставка в указанную позицию исходной строки.
$result = строки.вставить("Hello", 2, "123"); // "He123llo"
строки.удалить(строка, начало [, длина])
Удаляет подстроку, начиная с позиции начало и длиной длина (если не указана, до конца строки).
$result = строки.удалить("Hello", 1, 3); // "Ho"
строки.обрезатьПоследние(строка, количество)
Удаляет указанное количество символов с конца строки.
$result = строки.обрезатьПоследние("Hello", 2); // "Hel"
строки.усечь(строка, максимальнаяДлина)
Обрезает строку до указанной максимальной длины (если строка короче, возвращается без изменений).
$short = строки.усечь("Hello, world!", 5); // "Hello"
Форматирование и выравнивание
строки.формат(шаблон, ...)
Заменяет плейсхолдеры вида %1, %2, … на соответствующие аргументы (порядок начинается с 1). Возвращает отформатированную строку.
$res = строки.формат("User %1 from %2", "Alice", "Moscow"); // "User Alice from Moscow"
строки.выровнятьЛево(строка, ширина [, заполнитель])
Дополняет строку справа символами заполнитель (по умолчанию пробел) до указанной ширины. Если строка длиннее ширины, она возвращается без изменений.
$res = строки.выровнятьЛево("Hi", 5, "."); // "Hi..."
строки.выровнятьПраво(строка, ширина [, заполнитель])
Дополняет строку слева символами заполнитель до указанной ширины.
$res = строки.выровнятьПраво("Hi", 5, "."); // "...Hi"
строки.левых(строка, количество)
Возвращает первые количество символов строки (аналог подстрока(0, количество)).
строки.правых(строка, количество)
Возвращает последние количество символов строки.
строки.заполнить(строка, длина, заполнитель)
Возвращает строку, состоящую из повторяющегося символа заполнитель длиной длина. Содержимое строка игнорируется (эта функция скорее для совместимости, используйте повторить).
$res = строки.заполнить("xyz", 5, "-"); // "-----"
строки.разбить(строка, разделитель)
Разбивает строку на массив подстрок по указанному разделителю. Если разделитель пустой, возвращает массив символов.
$arr = строки.разбить("раз два три", " ");
Преобразование типов
строки.целое(строка)
Преобразует строку в целое число (игнорирует ведущие пробелы). Если строка не является числом, возвращает 0.
$num = строки.целое(" -123 "); // -123
строки.дробное(строка)
Преобразует строку в число с плавающей точкой (игнорирует ведущие пробелы). Использует десятичную точку.
$num = строки.дробное("3.1415"); // 3.1415
строки.сравнить(строка1, строка2)
Лексикографическое сравнение строк (на основе Unicode). Возвращает отрицательное число, если первая строка меньше второй, положительное — если больше, и 0 при равенстве.
$cmp = строки.сравнить("abc", "abd"); // -1
строки.сравнитьЛокаль(строка1, строка2)
Сравнение строк с учётом текущей локали (для русских букв и т.п.). Возвращает 0 при равенстве, отрицательное/положительное в зависимости от порядка.
Безопасность (HTML/URL/слаг)
строки.экранироватьHTML(строка)
Преобразует специальные HTML-символы (<, >, &, ", ') в HTML-сущности для защиты от XSS.
$safe = строки.экранироватьHTML("<script>alert('XSS')</script>");
строки.кодироватьURL(строка)
Кодирует строку для использования в URL (процентное кодирование по стандарту RFC 3986).
$enc = строки.кодироватьURL("Привет мир!");
строки.декодироватьURL(строка)
Декодирует URL-кодированную строку обратно в обычный текст.
строки.слаг(строка)
Преобразует строку в "слаг" — транслитерирует кириллицу, заменяет пробелы и недопустимые символы на дефис, приводит к нижнему регистру. Идеально для ЧПУ (человеко-понятных URL).
$slug = строки.слаг("WDSP 2.0 — Супер-язык!"); // "wdsp-2-0-super-yazyk"
Полный тестовый скрипт
Ниже приведён полный скрипт, покрывающий все функции модуля «строки».
// string.wdsp - проверка модуля строки вывод("=== Тест строковых функций ===\n"); $строка = " Hello, World! "; $шаблон = "Hello"; // 1. длина $результат = строки.длина($строка); если ($результат == 17) { вывод("1. длина: OK (17)\n"); } иначе { вывод("1. длина: ошибка, получено " + строка($результат) + "\n"); } // ... все остальные тесты из полного листинга ... вывод("\n=== Все тесты успешно завершены ===\n");