Функции
substr ( string $string , int $start [, int $length ] )
- возвращает подстроку строки, начиная со start символа по счету и длиной length символов.
- отрицательный start для отсчета от конца строки
- отрицательный length для отсчета от конца строки
- возвращает FALSE при неудаче или пустой строке
<?php
$rest = substr("abcdef", -1); // возвращает "f"
$rest = substr("abcdef", -2); // возвращает "ef"
$rest = substr("abcdef", -3, 1); // возвращает "d"
$rest = substr("abcdef", 0, -1); // возвращает "abcde"
$rest = substr("abcdef", 2, -1); // возвращает "cde"
$rest = substr("abcdef", 4, -4); // возвращает false
$rest = substr("abcdef", -3, -1); // возвращает "de"
?>
substr_compare($string1, $string2, $offset, $length, $case-insentivity)
- бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
- возвращает отрицательное число, если строка main_str (начиная с символа offset) меньше, чем str; положительное число, если она больше str; 0 если строки равны
- Замечание: в сравнении учавствует подстрока из string1 и соответствующая ей по длинне подстрока из string2. Т.е. если в результате выборки из превой строки выбрана строка 'a', а сравнивается со строкой 'abcde', то сравнение будет идти только с первым символом из 'abcde'.
<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 0
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // предупреждение
?>
substr_count($haystack, $needle, $offset, int $length)
- Возвращает число вхождений подстроки.
- Если сумма смещения offset и максимальной длины будет больше длины haystack, то будет выведено предупреждение.
<?php
$text = 'This is a test';
echo strlen($text); // 14
echo substr_count($text, 'is'); // 2
// строка уменьшается до 's is a test', поэтому вывод будет 1
echo substr_count($text, 'is', 3);
// текст уменьшается до 's i', поэтому вывод будет 0
echo substr_count($text, 'is', 3, 3);
// генерирует предупреждение, так как 5+10 > 14
echo substr_count($text, 'is', 5, 10);
// выводит только 1, т.к. перекрывающиеся подстроки не учитываются
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>
substr_replace($string, $replacement, $start, $length)
- Заменяет часть строки string, начинающуюся с символа с порядковым номером start и (необязательной) длиной length, строкой replacement и возвращает результат.
- Если length равено нулю, а start равен длинне строки string, то replacement добавится в конец строки string.
- Если start равено нулю, и length не указан, то строка будет полностью заменена.
- Если start и length равны нулю, то replacement будет добавлен в начало строки.
$var = 'ABCDEFGH:/MNRPQR/';
echo "Оригинал: $var<hr />\n";
/* Обе следующих строки заменяют всю строку $var на 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
/* Вставляет 'bob' в начало $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
/* Обе следующих строки заменяют 'MNRPQR' in $var на 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
/* Удаляет 'MNRPQR' из $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
strstr($haystack, $needle, $before_needle)
- Возвращает часть строки, или FALSE, если needle не найдена.
- Если before_needle установлен в TRUE, strstr() возвращает часть строки haystack до первого вхождения needle (исключая needle).
<?php
$email = '[email protected]';
$domain = strstr($email, '@');
echo $domain; // выводит @example.com
$user = strstr($email, '@', true); // Начиная с PHP 5.3.0
echo $user; // выводит name
?>
stristr($haystack, $needle, $before_needle)
- регистро-независимо
strchr($haystack, $needle, $before_needle) ** псевдоним strstr
strpos($haystack, $needle, $offset)
- Возвращает позицию первого вхождения подстроки
- Опционально поиск будет начат с указанного количества символов с начала строки.
- Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.
<?php
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// Заметьте, что используется ===. Использование == не даст верного
// результата, так как 'a' находится в нулевой позиции.
if ($pos === false) {
echo "Строка '$findme' не найдена в строке '$mystring'";
} else {
echo "Строка '$findme' найдена в строке '$mystring'";
echo " в позиции $pos";
}
?>
stripos($haystack, $needle, $offset)
- регистро-независимая
strrpos($haystack, $needle, $offset)
- начинает с конца
strpbrk($string, $charlist)
- strpbrk() ищет в строке haystack символы из набора char_list.
- Возвращает строку, начиная с найденного символа, или FALSE, если он не был найден.
<?php
$text = 'This is a Simple text.';
// Этот код выдаст "is is a Simple text.", т.к. символ 'i' встретится раньше
echo strpbrk($text, 'mi');
// Этот код выдаст "Simple text.", т.к. символы чувствительны к регистру
echo strpbrk($text, 'S');
?>
str_replace($search, $replace, $subject)
- Заменяет все вхождения строки поиска на строку замены
- Четвертый аргумент $count будет установлен в количество произведенных замен.
- Возвращает строку или массив с замененными значениями.
<?php
// присваивает <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// присваивает: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// присваивает: You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// присваивает: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
str_ireplace($search, $replace, $subject)
- регистронезависима
strtr($string, $from, $to)
- Преобразует заданные символы или заменяет подстроки
<?php
strtr("baab", "ab", "01"); // 1001
$trans = array("ab" => "01");
echo strtr("baab", $trans); // ba01
?>
str_repeat($string, $times)
- Возвращает строку $string, повторенную $times раз.
<?php
echo str_repeat("-=", 10); // -=-=-=-=-=-=-=-=-=-=
?>
str_split($string,$maximum_length)
- Преобразует строку в массив
- Если указан необязательный аргумент split_length, возвращаемый массив будет содержать части исходной строки длиной split_length каждая, иначе каждый элемент будет содержать один символ.
<?php
$str = "Hello Friend";
$arr1 = str_split($str);
$arr2 = str_split($str, 3);
print_r($arr1);
print_r($arr2);
/*
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => F
[7] => r
[8] => i
[9] => e
[10] => n
[11] => d
)
Array
(
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)
*/
?>
strspn($string,$charlist,$start,$length)
- Возвращает длину участка в начале строки, которая содержит только символы из маски
<?php
$var = strspn("42 is the answer to the 128th question.", "1234567890");
/*
присвоит 2 переменной $var, так как "42" - это начальный участок строки subject, состоящий только из символов "1234567890".
*/
?>
strcspn($string,$charlist,$start,$length)
- Возвращает длину участка в начале строки str1, который не содержит ни одного символа из маски.
strrev($string)
- Возвращает строку, перевернутую задом наперед.
<?php
echo strrev("Hello world!"); // выводит "!dlrow olleH"
?>
str_shuffle($string)
- Переставляет символы в строке случайным образом
<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);
// выведет что-то вроде этого: bfdaec
echo $shuffled;
?>
parse_str($string,$array)
- Разбирает строку str, которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте.
- Не возвращает значения.
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>
parse_url($url)
- Эта функция разбирает URL и возвращает ассоциативный массив, содержащий все компоненты URL, которые в нём присутствуют.
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
/*
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
*/
?>
str_getcsv($input,$delimiter,…)
- Выполняет разбор строки в формате CSV и возвращает массив с полученными из строки полями.
get_magic_quotes_gpc()
- Получение текущего значения настройки конфигурации magic_quotes_gpc
- С версии PHP 5.4.0 всегда возвращает FALSE.
addslashes($string)
- Возвращает строку с обратным слешом перед символами, которые нужно экранировать. Экранируются одиночная кавычка ('), двойная кавычка ("), обратный слеш (\) и NUL (NULL байт).
<?php
$str = "Ваше имя O'Reilly?";
// выводит: Ваше имя O\'Reilly?
echo addslashes($str);
?>
stripslashes($string)
- Возвращает строку с вырезанными обратными слешами. (\' становится ' и т.п.) Двойные обратные слеши (\\) становятся одинарными (\).
<?php
$str = "Ваc зовут O\'reilly?";
// выводит: Вас зовут O'reilly?
echo stripslashes($str);
?>
addcslashes($string, $charList_to_add)
- Возвращает строку, экранированную обратными слешами перед символами, указанными в параметре charlist.
stripcslashes($string, $charList_to_add)
- Удаляет экранирование символов, произведенное функцией addcslashes()
strtok($string,$delimiter)
- Разбивает строку str на подстроки (токены), используя в качестве разделителей символы из token.
- Исходная строка передается только при первом вызове этой функции. Последующим вызовам передаются только разделители, так как эта функция сохраняет исходную строку и запоминает позицию в этой строке между вызовами. Для работы с новой строкой нужно снова вызвать функцию с двумя аргументами.
<?php
$string = "This is\tan example\nstring";
/* В качестве разделителей используем пробел, табуляцию и перевод строки */
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Word=$tok<br />";
$tok = strtok(" \n\t");
}
?>
chunk_split($string)
- Используется для разбиения строки на фрагменты, например, для приведения результата функции base64_encode() в соответствие с требованиями RFC
- Вставляет строку end после каждых chunklen символов.
crypt($string,$optional_salt)
- Необратимое хэширование строки
- Возвращает хэшированную строку, полученную с помощью стандартного алгоритма UNIX, основанного на DES, или другого алгоритма, имеющегося в системе.
- Алгоритмы хэширования (DES, MD5, BLOWFISH, SHA256/512)
hash($algo,$data)
- Возвращает строку содержащую вычисленный хеш-код в шестнацатеричной кодировке в нижнем регистре.
md5($string)
- Возвращает MD5-хэш строки
- Возвращает хэш в виде 32-символьного шестнадцатеричного числа. Если второй параметр TRUE, то 16.
- Не рекомендуется для паролей
<?php
$str = 'яблоко';
if (md5($str) === '1afa148eb41f2e7103f21410bf48346c') {
echo "Вам зеленое или красное яблоко?";
}
?>
md5_file($filestream)
- Возвращает MD5-хэш файла
crc32($string)
- Вычисляет полином CRC32 для строки.
- Возвращает контрольную сумму crc32 строки str в виде целого числа.
sha1($string)
- Возвращает SHA1-хэш строки
- Если второй аргумент TRUE, хэш возвращается в виде бинарной строки из 20 символов, иначе он будет возвращен в виде 40-символьного шестнадцатеричного числа.
sha1_file($filename)
- Возвращает SHA1-хэш файла