Функции

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-хэш файла