Функции для работы с одиночными символами

chr
Возвращает один символ с определенным кодом.

Синтаксис:
string chr(int ascii)

Возвращает строку из одного символа с кодом $code. Эта функция полезна для вставки каких-либо непечатаемых символов в строку - например, кода нуля или символа прогона страницы, а также при работе с бинарными файлами.

<?// Сначало создаем массив того, что мы собираемся выводить,// не заботясь о форматировании (дизайне) информацииfor($i=0, $x=0; $x<16; $x++) { for($y=0; $y<16; $y++) { $Chars[$x][$y]=array($i,chr($i)); $i++; }}// Теперь выводим накопленную информацию, используя идеологию// вставки участков кода в HTML-документ?> <table border=1 cellpadding=1 cellspacing=0><?for($y=0; $y<16; $y++) {?> <tr> <?for($x=0; $x<16; $x++) {?> <td> <?=$Chars[$x][$y][0]?>: <b><tt><?=$Chars[$x][$y][1]?></tt></b> </td> <?}?> </tr><?}?></table>

ord
Возвращает ascii код символа.

Синтаксис:
int ord(string str)

Эта функция возвращает ASCII код первого символа строки str.
Например, ord(chr($n)) всегда равно $n - конечно, если $n заключено между нулем и 255.






Функции для работы с одиночными символами

chr
Возвращает один символ с определенным кодом.

Синтаксис:
string chr(int ascii)

Возвращает строку из одного символа с кодом $code. Эта функция полезна для вставки каких-либо непечатаемых символов в строку - например, кода нуля или символа прогона страницы, а также при работе с бинарными файлами.

<?// Сначало создаем массив того, что мы собираемся выводить,// не заботясь о форматировании (дизайне) информацииfor($i=0, $x=0; $x<16; $x++) { for($y=0; $y<16; $y++) { $Chars[$x][$y]=array($i,chr($i)); $i++; }}// Теперь выводим накопленную информацию, используя идеологию// вставки участков кода в HTML-документ?> <table border=1 cellpadding=1 cellspacing=0><?for($y=0; $y<16; $y++) {?> <tr> <?for($x=0; $x<16; $x++) {?> <td> <?=$Chars[$x][$y][0]?>: <b><tt><?=$Chars[$x][$y][1]?></tt></b> </td> <?}?> </tr><?}?></table>

ord
Возвращает ascii код символа.

Синтаксис:
int ord(string str)

Эта функция возвращает ASCII код первого символа строки str.
Например, ord(chr($n)) всегда равно $n - конечно, если $n заключено между нулем и 255.

 






Функции отрезания пробелов

trim
Удаляет из заданной строки начальные и конечные пробельные символы.

Синтаксис:
string trim(string str)

Возвращает копию str, только с удаленными ведущими и концевыми пробельными символами. Под пробельными символами надо понимать "\n", "\r", "\t", "\v", "\0" и пробел.
Например, вызов trim(" test\n ") вернет строку "test".

ltrim
Удаляет из заданной строки начальные пробельные символы.

Синтаксис:
string ltrim(string str)

То же, что и trim(), только удаляет исключительно начальные пробельные символы ("\n", "\r", "\t", "\v", "\0" и пробел), а концевые не трогает.

rtrim
Удаляет из заданной строки конечные пробельные символы.

Синтаксис:
string rtrim(string str)

То же, что и trim(), только удаляет исключительно конечные пробельные символы ("\n", "\r", "\t", "\v", "\0" и пробел), а начальные не трогает.
Эта функция - синоним chop().

chop
Удаляет из заданной строки конечные пробельные символы.

Синтаксис:
string chop(string str)

Удаляет только концевые пробелы, начальные не трогает.

 











Поиск в тексте

strchr
Поиск первого вхождения символа в строку.

Синтаксис:
string strchr(string haystack, string needle)

Данная функция работает идеентично функции strstr().

strstr
Поиск первого вхождения подстроки в строку.

Синтаксис:
string strstr(string haystack, string needle)

Функция strstr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.
В случае неудачи возвращает false.
Данная функция чувствительна к регистру.
В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

$email = "mailname@mail.ru";$domain = strstr($email, "@");// или$domain = strstr($email, ord("@"))echo $domain;// выведет @mail.ru

stristr
Нахождение первого вхождения подстроки, не учитывая регистр.

Синтаксис:
string stristr(string haystack, string needle)

Функция stristr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца.
В случае неудачи возвращает false.
Данная функция нечувствительна к регистру.
В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

strrchr
Поиск последнего вхождения подстроки.

Синтаксис:
string strrchr(string haystack, string needle)

Функция strrchr() возвращает участок строки, заданной в параметре haystack, начиная с последнего фрагмента, указанного в параметре needle и до конца.
В случае неудачи возвращает false.
Данная функция чувствительна к регистру.
В случае, если needle не является строкой, то значение преобразуется в целое и используется как код искомого символа.

// получим последний каталог в $PATH$dir = substr(strrchr($PATH, ":"), 1);// а здесь получим все после последнего перевода строки$text = "text 1\nText2\nText3";echo substr(strrchr($text, 10), 1);

strpos
Находит позицию первого вхождения подстроки в заданной строке.

Синтаксис:
int strpos(string where, string what [, int fromwhere])

Функция strpos() пытается найти в строке were подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке. Первый символ строки имеет индекс 0. Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции. В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false.
Если параметр what не строка, в этом случает его значение преобразуется в целое и используется как код искомого символа.

if(strpos($text, "a")===false) echo "Не найдено!";// Проверка: три знака равенства

strrpos
Находит в заданной строке последнюю позицию, в которой находится заданный фрагмент.

Синтаксис:
int strrpos(string where, string what)

Данная функция ищет в строке where последнюю позицию, в которой встречался символ what (если what - строка из нескольких символов, то выявляется только первый из них, остальные не играют никакой роли).
Если искомый символ стоит первый в строке или его вообще нет, функция возвратит 0.
В случае, если искомый символ не найден, возвращает false.

substr_count
Находит количество вхождений фрагмента в строку.

Синтаксис:
int substr_count(string where, string what)

Функция substr_count() возвращает число фрагментов what, присутствующих в строке where.

echo substr_count("www.spravkaweb.ru", ".");// Выведет 3

strspn
Определяет присутствие начальных символов в строке.

Синтаксис:
int strspn(string str1, string str2)

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью из символов, которые есть в строке str2.

echo strspn("www.spravkaweb.ru", "abc");// Выведет 3

strcspn
Определяет отсутствие начальных символов в строке.

Синтаксис:
int strcspn(string str1, string str2)

Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью не из символов, которые есть в строке str2.

 































Функции сравнения

strcmp
Сравнивает строки.

Синтаксис:
int strcmp(string str1, string str2)

Эта функция сравнивает две строки посимвольно (точнее, бобайтово) и возвращает:
0 - если строки полностью совпадают;
-1 - если строка str1 лексикографически меньше str2;
1 - если, наоборот, str1 "больше" str2.
Так как сравнение идет побайтово, то регистр символов влияет на результаты сравнений.

strncmp
Сравнивает начала строк.

Синтаксис:
int strncmp(string str1, string str2, int len)

Эта функция отличается от strcmp() тем, что сравнивает не все слово целиком, а первые len байтов. В случае, если len меньше длины наименьшей из строк, то строки сравниваются целиком.
Эта функция сравнивает две строки посимвольно (точнее, бобайтово) и возвращает:
0 - если строки полностью совпадают;
-1 - если строка str1 лексикографически меньше str2;
1 - если, наоборот, str1 "больше" str2.
Так как сравнение идет побайтово, то регистр символов влияет на результаты сравнений.

strcasecmp
Сравнивает строки без учета регистра.

Синтаксис:
int strcasecmp(string str1, string str2)

То же самое, что и strcmp(), только при работе не учитывается регистр букв.

$str1 = "Привет!";$str2 = "привет!";if(!strcesecmp($str1, $str2)) echo "$str1 == $str2 при сравнении строк без учета регистра";

strncasecmp
Сравнивает начала строк без учета регистра.

Синтаксис:
int strncasecmp(string str1, string str2, int len)

Функция strncasecmp() является комбинацией функций strcasecmp() и strncmp().

strnatcmp
Производит "естественное" сравнение строк.

Синтаксис:
int strnatcmp(string str1, string str2)

Данная функция имитирует сравнение строк, которое использовал бы человек.

$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");echo "Обычная сортировка\n";usort($arr1, "strcmp");print_r($arr1);echo "\nЕстенственная сортировка\n";usort($arr2, "strnatcmp");print_r($arr2);

Данный скприпт выведет следующее:

Обычная сортировкаArray([0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png) Естественная сортировкаArray([0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png)

strnatcasecmp
Производит "естественное" сравнение строк без учета регистра.

Синтаксис:
int strnatcasecmp(string str1, string str2)

То же, что и strnatcmp(), только игнорирует регистр.

similar_text
Производит определение схожести двух строк.

Синтаксис:
int similar_text(string firsrt, string second [, double percent])

Функция similar_text() вычисляет схожесть двух строк по алгоритму, описанному Оливером (Oliver [1993]). Но вместо стека (как в псевдокоде Оливера) она использует рекурсивные вызовы.
Сложность алгоритма делает функцию медленной, и ее скорость пропорциональна (N^3), где N - длина наибольшей строки.
Функция возвращает число символов, совпавших в обеих строках. При передаче по ссылке третьего необязательного параметра в нем сохраняется процент совпадения строк.

levenshtein
Определение различия Левенштейна двух строк.

Синтаксис:
int levenshtein(string str1, string str2)
int levenshtein(string str1, string str2, int cost_ins, int cost_rep, int cost_del)
int levenshtein(string str1, string str2, function cost)

"Различие Левенштейна" - это минимальное чило символов, которое требовалось бы заменить, вставить или удалить для того, чтобы превратить строку str1 в str2. Сложность алгоритма пропорциональна произведению длин строк str1 и str2, что делает функцию более быстродействующей, чем similar_text().

Первая форма функции возвращает число необходимых операций над символами строк для трансформации str1 в str2.

Вторая форама имеет три дополнительных параметра: стоимость операции вставки, замены и удаления, что делает ее более адаптированной для вычисления, но при этом менее быстродействующей. Возвращается интегральный показатель сложности трансформации.

Третий вариант позволяет указать функцию, используемую для расчета сложности трансформации. Функция cost вызывается со следующими аргументами:

· применяемая операция (вставить, изменить, удалить): "I*quot;, "R", "D";

· фактический символ первой строки

· фактический символ второй строки

· позиция строки 1

· позиция строки 2

· оставшаяся длина строки 1

· оставшаяся длина строки 2

Вызываемая функция должна будет возвратить стоимость этой операции.
Если длина одной из строк более 255 символов, функция levenshtein() возвращает -1, но такая длина более чем достаточна.

 
































Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: