Строковые функции
Функции работы с данными
🕛 01.11.2006, 13:17
Вывод Вывод строки, значения переменной или выражения
print (string arg)
Выводит аргумент arg, в качестве которого может быть указана переменная или выражение.
См. также: echo(), printf() и flush().
echo
Вывод одного или нескольких значений
echo (string argl, string [argn]...)
Выводит значения перечисленных параметров.
EchoO - это фактически языковая конструкция, поэтому для нее не обязательны скобки, даже если используется несколько аргументов.
echo "Hello World":
echo "Перенос на следущую строку.
имеющийся в коде, сохраняется
и используется при выводе".
" чтобы избежать этого используйте ".
"оператор конкатенации":
echo "This spans\nmultiple lines.
The newlines will be\noutput as well.":
См. также: print(), printf() и flush().
printf
Вывод отформатированной строки
int printf (string format [, mixed args...])
Выводит строку согласно формату, указанному в строковом аргументе format, который рассмотрен в описании функции sprintf().
См. также: print(), sprintf(), sscanf(), fscanf() и flush().
sprintf
Форматирование строки с подстановкой переменных
string sprintf (string format [, mixed args...])
Возвращает строку, форматированную по шаблону, содержащемуся в строковом аргументе format, в которую, при указании дополнительных аргументов args, могут быть включены значения переменных и выражений.
Строка форматирования может состоять из неопределенно длинной последовательности символов и директив: ординарных символов (это любые символы, за исключением «%»), которые просто копируются в возвращаемую строку, и «спецификаций отображения», для каждой из которых в функции должен быть указан соответствующий параметрт касается как функции sprintf(), так и printf().
Каждый спецификатор состоит из знака процента (%), за которым следуют один или более следующих элементов в указанном порядке.
Необязательный спецификатор заполнителя, определяющий, каким символом будут дополняться строки до необходимой длины. Это может быть пробел или нулевой символ. По умолчанию используется пробел. Альтернативные символы-заполнители могут быть >к.') юны, если перед ними ставится знак одинарной кавычки ('). Например, printf CTz5d",12); // выведет: zzz!2.
Необязательный спецификатор выравнивания. Если он не указывается, ч о значение будет выравниваться по правой стороне, если он указан (как символ «а»), то по левой (действует не всегда).
Необязательный спецификатор ширины значения указывает минимальное число символов, которое должно выводиться в значении
Необязательный спецификатор точности определяет, сколько цифр после запятой должно выводиться для дробных чисел (для чисел других типов не действует). (Для форматирования чисел также полезна функция number_format().)
Спецификатор типа - сообщает, в качестве какого типа должен рассматриваться аргумент. Возможные типы:
X - сам знак процента;
b - целочисленный аргумент в двоичном формате;
с - выводит символ, целочисленный ASCII-код которого указан;
d - целочисленный аргумент в десятичном формате;
f - дробное число в формате числа с плавающей точкой;
о - целочисленный аргумент в восьмеричном формате;
s - аргумент выводится как строка;
х - целочисленный аргумент в шестнадцатеричном формате (с маленькими буквами);
X - целочисленный аргумент в шестнадцатеричном формате (с большими буквами).
См. также: printf(), sscanf(), fscanf() и number_format().
Sisodate = spnntf ("M4d-M2d-M2d". Syear. $month. $day);
$formatted = sprintf (%01.4f. 68 75 + 54.35);
sscanf
Интерпретация строки согласно формату и занесение значений в переменные
mixed sscanf (string str. string format [, string varl...])
Функция является противоположностью printf(). Она интерпретирует строку str согласно формату format, аналогично спецификации printf(). При указании только двух аргументов полученные значения возвращаются в массиве.
// получение серийного номера
Ssenal = sscanf
("SN/235-0001".nSN/*3d-«4d"):
echo Sseria1[0]*lGOOO+$senal[l];
// выводит: 2350001
// и даты изготовления
Smandate = "January 01 2000":
list($month. $day. Syear) =
sscanf(Smandate."%s Id %d"):
echo "Дата: Syear-"
substr($month.0.3)."-$day\n".
// выводит: 2000-Jan-Ol
При указании дополнительных необязательных параметров (их следует передавать по ссылке) функция возвращает их число. Те переменные, которые не получают значений, в возвращаемом значении не учитываются.
// генерировать XML запись из строки
Sauth = "765\tLewis Carroll":
$n = sscanf (Sauth. "*d\«s Zs"
. &$id. &$first. &$last);
echo "<author id='$id'>
<f i rstname>$fi rst</firstname>
<surnarne>$last</surname> </author>\n";
См. также: fscanf(), printf() и sprintf().
bin2hex
Преобразование символьных данных в шестнадцатеричный вид
string bin2bex (string str)
Возвращает строковое шестнадцатеричнос представление символьно-байтовых данных, содержащихся в строке str. Конвертация производится нобайтово, старший полубайт указывается первым.
echo Din2hex("AaBblM"): // выводит. 4161426286а6
chr
Получение символа с указанным кодом ascii
string chr (int ascii)
$str = cnr (27). /* добавляет esc-символ в конец строки $str */ $str = sprintf ("Строка завершается esc-символои. 3tc". 27); Функция дополняет ord().
См. также sprintf ()с форматом %с.
ord
Получение ascii кода символа
int ord (string string)
Возвращает ASCII код первого символа строки string. Эта функция дополняет chr ().
if (ord ($str) == 10) { // символ «\n»
echo "Первый символ строки \$str - переход на новую строку.\n": }
См. также chr ().
substr
Получение части строки
string substr (string string, int start [, int length]) Возвращает часть строки string от позиции start длиной length.
Если аргумент start положительный, то возвращается часть строки string начиная с позиции start, с отсчетом от нуля.
Irest = substr ("abcdef". 1): // возвращает "bcdef"
Srest = substr ("abcdef". 1.3); // возвращает "bed"
Если аргумент start отрицательный, то отсчет производится от конца строки string (тогда -1 - это последний символ).
Srest - substr ("abcdef". -1). // возвращает "f"
$rest = substr ("abcdef". -2); // возвращает "ef"
Jrest = substr ("abcdef". -3. 1); // возвращает "d"
Если указывается необязательный аргумент length и он положительный, то это определяет длину возвращаемой строки. Если он отрицательный, то тогда он указывает на позицию последнего возвращаемого символа от конца исходной строки (и тогда -1 - это предпоследний символ).
$rest = substr ("abcdef". 1. -1). // возвращает "bcde"
См. также: strrchr(), substr_count() и ereg().
str_repeat
Получение строки из повторяющегося значения
string str_repeat (string input, int multiplier) .
echo str_repeat ("-=". 3). // выведет "-=-=-=".
str_pad
Дополнение строки другой строкой до определенной длины
string str_pad (string input, int padjength [, string pad_string [, int pad_type]])
Аргумент input содержит исходную строку. Аргумент pad_length указывает, какую длину должна иметь возвращаемая строка, и если он имеет значение меньшее, чем исходная строка, никакого добавления не производится.
Необязательный аргумент pad_string указывает, какую строку использовать в качестве заполнителя; по умолчанию используются пробелы. Необязательным аргументом pad_type могут быть значения: STR_ PADJtIGHT (по умолчанию), STR_PAD_LEFT или STR_PAD_BOTH, указывающие соответственно, что строку следует дополнять справа, слева или с обеих сторон.
Sinput = "Aaaaa";
print str_pad(Sinput. 10);
// возвращает "Aaaaa
print str_pad($input. 10. "-="
. STR_PAD_LEFT).
// возвращает "-=-Ааааа"
print str_pad($input. 10
. "_". STR_PAD_BOTH).
// возвращает "_Ааааа_"
chunk_split
Фрагментирование строки
string chunk_split (string string [, int chunklen [, string end]])
Возвращает строку, в которой между каждым блоком строки string длиной chunklen (по умолчанию 76) вставляется последовательность разделителей end (по умолчанию: «\г\п»). Это может быть полезно при конвертировании в формат «base64» для соответствия правилам RFC 2045.
# форматировать Sdata. используя семантику
RFC 2045 $new_stnng = chunk_split (base64_encode($data)):
Эта функция работает значительно быстрее, чем ereg_replace().
См. также wordwrap().
strtok
Получение строки по частям
string strtok (string argl, string arg2)
При первом вызове функция принимает два аргумента: исходную строку argl и разделитель агд2. При каждом последующем вызове аргумент argl указывать не следует, иначе будет возвращаться первая часть строки. При каждом вызове (включая первый) возвращается часть строки до разделителя агд2, при каждом последующем -следующая часть до следующего разделителя, и так до конца строки. Когда возвращать больше нечего, возвращается значение FALSE. Заметьте, если часть строки состоит из 0 (или это пустая строка), то это будет воспринято как значение FALSE.
$stnng = "This is an example№string№ Aaa". $tok = strtok ($stnng."
"); while ($tok) { echo "'$tok' ":
$tok = strtok (" №"): }
// выводит 'This' 'is' 'an' 'example' 'string'
Стоит отметить, что в качестве разделителей указывается последовательность символов, каждый из которых в отдельности может являться разделителем, но когда в строке последовательно встречаются два и более разделителей, функция возвращает пустую строку (что может прекратить цикл обработки, как в примере).
См. также: split() и explode().
explode
Разделение строки в массив
array explode (string separator, string string [, int limit])
Возвращает массив строк, каждая из которых соответствует фрагменту исходной строки string, находящемуся между разделителями, указанными аргументом separator. При указании аргумента limit возвращаемый массив будет содержать не более указанного limit числа элементов с оставшейся неразделенной частью строки в последнем элементе.
$АА - "часть! часть? часть.З часть4";
$аа = explode (" ". $АА).
// теперь аа = Arrays [0] => часть!. [1] ~> часть2.
// Ш -> частьЗ. [31 -> ", [4j => часть4 )
См. также: split() и implode().
implode
Объединение элементов массива в строку
string implode (string glue, array pieces)
Возвращает строку, содержащую последовательно все элементы массива pieces, между которыми вставляется значение строкового аргумента glue.
$colon_separated= implode (" ". lady);
См. также: explode(), join() и split().
join
Синоним функции implode()
string join (string glue, array pieces)
См. также: explode(), implode() и split().
setlocale
Установка региональных настроек
string setlocale (string category, string locale)
Устанавливает указанную аргументом category региональную установку для строковых преобразований, которая может принадлежать к одной из следующих категорий:
LC ALL - для всех установок (например: "Russian _Russia.l251");
LC_COLLATE - сравнение строк (пока не реализовано в РНР);
LC_CTYPE - классификация и преобразование символов, например strtoupper();
LC_MONETARY - для функции localeconv() (пока не реализовано в РНР):
LC_ NUMERIC - десятичный разделитель чисел;
LC_TIME - форматирование даты и времени функцией strftime().
В аргументе locale указывается то значение настройки, которое необходимо установить. При передаче пустой строки «» региональные установки будут установлены в соответствии с имеющимися в системе по умолчанию. Если передается ноль (строковый или числовой), региональные настройки не изменяются, а возвращается текущее значение установки.
Функция возвращает новое установленное значение настройки или FALSE при ошибке. Если указывается неправильное значение категории, выдается предупреждение.
Вычисления строковых сумм и хешей
strlen
Вычисление длины строки
int strlen (string str)
count_chars
Получение информации о символах строки
mixed count_chars (string string [. mode])
Вычисляет частоту встречаемости каждого байта (0-255) в строке string и возвращает в массиве результат согласно аргументу mode:
0 - массив с байтами в качестве индексов и частотой в качестве значений элементов массива (по умолчанию, если аргумент mode не указан);
1 - то же, что и 0, но отсутствующие в строке string байты не возвращаются;
2 - то же, что и 0, но возвращаются только тс байты, которые отсутствуют;
3 - возвращается строка, состоящая из всех обнаруженных символов;
4 - возвращается строка, состоящая из всех отсутствующих символов.
сгс32
Получение полиминала строки сгс32 int crc32 (string str)
Вычисляет 32-битовый циклический код избыточности строки str, обычно используемый для проверки целостности переданных данных.
См. также md5().
md5
Вычисление строки-хеша MD5 string md5 (string str)
Возвращает вычисленный строковый MD5-xem строки str, используя «RSA Data Security, Inc. MD5 Message-Digest Algorithm», описанный в файле RFC1321 (http://www.faqs.org/rfcs/rfcl321.html). Часто используется для генерации уникальных идентификаторов. Возвращается 32-значнос число, состоящее из шсстнадцатеричных цифр.
См. также сгс32().
crypt
Симметричное шифрование
string crypt (string str [, string salt])
Функция является реализацией имеющегося в Unix алгоритма шифрования DES1. Аргумент str - это шифруемая строка, a salt - начальное (двухбайтовое)2 основание шифра (если оно не указано, то оно случайным образом генерируется). Функция рассмотрена в справочной системе Unix (man). Некоторые системы заменяют стандартный метод шифрования DES методом MD5.
В системах, поддерживающих несколько алгоритмов шифрования, следующие константы устанавливаются равными 1 или 0, в зависимости от того, поддерживается данный алгоритм или нет:
CRYPT_STD_DES - стандартное 2-байтовое DES-шифрование (SALT-2);
CRYPT_EXT_DES - расширенное 9-байтовое DES-шифрование (SALT=9);
CRYPT_MD5 - 12-байтовое МО5-шифрование (SALT начинается с$1$);
CRYPT_BLOWFISH - расширенное 12-байтовое DES-шифрование (SALT начинается с $2$).
Так как функция использует односторонний алгоритм шифрования, функции дешифрования не имеется.
См. также md5().
metaphone
Вычисление метафон-хеша string metaphone (string str)
Функция, сходная по действию с soundex(), вычисляет код произношения слова, переданного в строке str, но с повышенной точностью вычислений, так как использует правила произношения английского языка. Возвращаемое строковое значение может быть переменной длины.
Алгоритм функции разработан Лоуренсом Филипсом (Lawrence Philips, lphilips@verity.com) и описан в книге: «Practical Algorithms for Programmers», Binstock & Rex, Addison Wesley, 1995.
soundex
Вычисление хеша сходности произношения
string soundex (string str)
Функция может быть использована для проверки правописания, когда приблизительно известно как звучит слово, но не известно, как оно пишется, и имеется словарь (база данных), относительно которого возможно осуществлять проверку. Возвращается строка из 4 символов: первая буква слова и 3 цифры.
Алгоритм функции описан Дональдом Кнауфом (Donald Knuth) в книге «The Art of Computer Programming, vol. 3: Sorting and Searching», Addison-Wesley (1973).
sOundex ("Euler") == sOundex ("tilery") == 'E460';
sOundex ("Gauss") == sOundex ("GhOsh") =-* 'G200';
sOundex ("Hilbert") " sOundex ("HenlbrOnn') "- 'H416'. soundex ("Knuth") - sOundex ("Kant") =- 'K530':
sOundex ("Lloyd") == sOundex ("Ladd") -= 'L300'; sOundex
("Lukasiewicz") == sOundex ("Lissajcus") -= '1222' :
Сравнение
strcmp
Сравнение строк
int strcmp (string strl. string str2)
Возвращает < 0, если strl «меньше» str2; > 0 если strl «больше» str2, и (), если они равны. Регистр в строках учитывается.
См. также: ereg(), strcasecmp(), substr(), stristr(), strncasecmp(), strncmp() и strstr().
strncmp
Сравнение начала строк
Int strncmp (string strl, string str2, int Ten)
Функция отличается от strcmp() тем, что строки strl и str2 сравниваются не целиком, а только их первые len байтов. Если len меньше, чем длина меньшей из строк, они сравниваются целиком. Возвраща-ет <0, если strl «меньше» str2; >0 если strl «больше» str2, и 0, если они равны. Регистр в строках учитывается.
См. также: ereg(), strncasecmp(), strcasecmp(), substr(), stristr(), strcmp() и strstr().
strcasecmp
Сравнение строк без учета регистра
int strcasecmp (string strl, string str2)
Возвращает < 0, если strl «меньше» str2; > 0 если strl «больше» str2, и (), если они равны. Регистр символов строк не учитывается.
$varl = "HellO"; $var2 = "hello".
if (fstrcasecmp
(Svarl. $var2))
{ echO 'Svarl == $var2
при сравнении строк без учета регистра'. }
См. также: ereg(), strcrap(), substr(), stristr(), strncasecmp() и strstr().
strncasecmp
Сравнение начал строк без учета регистра
int strncasecmp (string strl, string str2, int len)
Функция является комбинацией strcasecmp() и strncmp().
См. также: ereg(), strcasecmp(), strcmp(), substr(), stristr() и strstr().
strnatcmp
«Естественное» сравнение строк
int strnatcmp (string strl, string str2)
Функция имитирует такое сравнение строк, какое использовал бы человек, как показано ниже:
$arrl = $агг2 = array ("img!2 png"."imgl0.png"."img2.png"."imgl.png");
echO "Обычная сортировка \n";
usOrt($arrl."strcmp").
print_r($arrl).
echO "\n«Естественная» сортировка \n":
usOrt($arr2."strnatcmp");
print_r($arr2);
При запуске будет выдано следующее:
Обычная сортировка
Array
(
[0] => imgl.png
[1] => imglO.png
[2] => img!2 png
[3] => img2.png )
«Естественная» сортировка Array (
[0] => imgl.png
[1] => img2.png
[2] => imglO.png
[3] => img!2.png )
Для более подробной информации смотрите страницу Мартина Пула «Natural Order String COmparisOn» (http://www.linuxcare.cOm.au/ prOjects/natsOrt/).
Во всем остальном функция ведет себя подобно всем остальным функциям сравнения: возвращает < 0, если strl «меньше» str2; > 0 если strl «больше» str2, и 0, если они равны. При этом регистр сравниваемых строк учитывается.
См. также: егед(), strcasecmp(), substr(), stristr(), strcmp(), strncmp(), strncasecmp(), strnatcasecmp(), strstr(), natsOrt() и natcasesort().
strnatcasecmp
«Естественное» сравнение строк без учета регистра int strnatcasecmp (string strl, string str2)
Дополнение функции strcmp(), которое игнорирует при сравнении регистр.
См. также: егед(), strcasecmp(), substr(), stristr(), strcmp(), strncmp(), strncasecmp(), strnatcmp() и strstr().
simila_r text
Определение схожести двух строк
int similar_text (string first, string secOnd [, dOuble percent])
Функция вычисляет схожесть двух строк по алгоритму, описанному Оливером (Oliver [1993]). Но вместо стека (как в псевдокоде Оливера) она использует рекурсивные вызовы. Сложность алгоритма делает функцию медленной, и ее скорость пропорциональна (N3), где N - длина наибольшей строки.
Возвращается число символов, совпавших в обеих строках. При передаче по ссылке третьего необязательного аргумента в нем сохраняется процент совпадения строк.
levenshtein
Определение различия Левенштейна двух строк int levenshtein (string strl, string str2)
int levenshtein (string strl, string str2, int cOst_ins, int cOst_rep, int cOst_del)
int levenshtein (string strl, string str2. function cOst)
«Различие Левенштейна» - это минимальное число символов, которое требовалось бы заменить, вставить или удалить для того, чтобы превратить строку strl в str2. Сложность алгоритма пропорциональна произведению длин строк strl и str2 (это делает функцию более быстродействующей, чем similar_text()).
Первая форма функции возвращает число необходимых операций над символами строк для трансформации strl в str2.
Вторая форма имеет три дополнительных параметра: стоимость операций вставки, замены и удаления, что делает ее более адаптированной для вычисления, но при этом менее быстродействующей. Возвращается интегральный показатель сложности трансформации.
Вариант три, который еще не реализован, позволит указывать функцию, используемую для расчета сложности трансформации. Функция cOst будет вызываться со следующими аргументами:
применяемая операция (вставить, изменить, удалить): «I», «R», «D»;
фактический символ первой строки;
фактический символ второй строки;
позиция строки 1;
позиция строки 2;
оставшаяся длина строки 1;
оставшаяся длина строки 2.
Вызываемая функция должна будет возвратить стоимость этой операции.
Если длина одной из строк более 255 символов, функция levenshtein() возвращает -1, но такая длина более чем достаточна.
См. также: sondex(), similar_text() и metaphone().
Поиск
strchr
Поиск первого вхождения символа в строку
string strchr (string haystack, string needle) Функция является синонимом для strstr().
strstr
Нахождение первого вхождения подстроки
string strstr (string haystack, string needle)
Возвращает оставшуюся часть строки haystack, которая начинается с первого фрагмента, указанного в аргументе needle. Если это не удается, то возвращает FALSE. Функция чувствительна к регистру.
Если needle не строка, то тогда значение преобразуется в целое и используется как код искомого символу.
$email = 'ntymail@designmultimedia.com'.
$dOmain = strstr (Semail. '(?').
tdOmain = strstr (Semail. Ord('P')): // можно и так
print SdOmain: // выводит-
@designinultimedia.com
См. также: stristr(), strrchr(), substr() и ereg().
stristr
Аналог strstr, нечувствительный к регистру
string stristr (string haystack, string needle)
Возвращает оставшуюся часть строки haystack, которая начинается с фрагмента, указанного в аргументе needle. Если это не удается, то возвращает FALSE. Функция Нечувствительна к регистру.
Если needle не строка, то тогда его значение преобразуется в целое и используется как код искомого символа.
См. также: strchr(), strrchr(), substr() и ereg().
strrchr
Поиск последнего вхождения подстроки
string strrchr (string haystack, string needle)
Возвращает оставшуюся часть строки haystack, которая начинается с последнего фрагмента, указанного в аргументе needle. Если это не удастся, то возвращает FALSE. Функция чувствительна к регистру.
Если needle не строка, то тогда его значение преобразуется в целое и используется как код искомого символа; если это строка, содержащая более одного символа, то используется первый.
// получить последний каталог в $РАTH
$aiг = substr (strrchr (SPATH. ":"). 1):
// получить все после последнего
перевода строки
$text = "Line IXnLine 2\nLine 3".
$last = substr (strrchr (Stext. 10). 1 ):
См. также: substr(), stristr() и strstr().
strpos
Определение первой позиции фрагмента в строке
int strpOs (string haystack, string needle [. int Offset])
Возвращает численную позицию первого вхождения строки needle в строку haystack. Возвращает FALSE, если вхождение не найдено. Заметьте, что функция возвратит одинаковое значение 0, если строка haystack начинается с фрагмента needle. В примере ниже показан метод обработки случая:
$pOs = strpOs (Smystnng. "b"):
if (SpOs = FALSE) ( // идентичность-
три знака равемс'-..:
// nOt fOund . }
Если аргумент needle - не строка, то тогда его значение преобразуется в целое и используется как код искомого символа.
Необязательный аргумент Offset позволяет указать, с какой позиции строки haystack начинать поиск.
См. также: strrpos(), strrchr(), substr(), stristr() и strstr().
strrpos
Определение последней позиции фрагмента в строке
int strrpos (string haystack, char needle)
Возвращает численную позицию последнего вхождения симиола needle в строку haystack. Возвращает FALSE, если вхождение не найдено. Заметьте, что функция возвратит одинаковое значение 0, если символ является первым в строке и если он в строке не присутствует. В примере ниже показан метод обработки этого случая:
$pos = strrpos ($mystnng. 'b").
it (SpOs = FALSE) { // идентичность- три знака равенства
// not found . }
Если аргумент needle - не строка, то тогда его значение преобразуется в целое и используется как код искомого символа; если это строка, содержащая более одного символа, то используется первый.
См. также: strpos(), strrchr(), substr(), stristr() и strstr().
substr count
Определение числа вхождений фрагмента в строку
int substr_count (string haystrack, string needle)
Возвращает число фрагментов needle, присутствующих в строке haystrack.
print substr_count("This is a test", "is"). // = 2
strspn
Определение присутствия начальных символов в строке
int strspn (string strl, string str2)
Возвращает длину начального фрагмента строки strl, состоящего полностью из символов, имеющихся в строке str2.
strspn ("42 is ...". "1234567890"). // = 2
См. также strcspn().
strcspn
Определение отсутствия начальных символов в строке int strcspn (string strl, string str2)
Возвращает длину начального фрагмента строки strl, состоящего полностью НЕ из символов, имеющихся в строке str2.
См. также strspn().
Простые манипуляции
Itrim
Удаление начальных пробелов
string Itrim (string str)
Возвращает исходную строку str, из которой удалены начальные пробельные символы (такими символами являются: «\n», «\r», «\t», «\v», «\0» и пробел).
См. также: chop(), rtrim() и tnm().
rtrim
Синоним функции chop()
string rtrim (string str)
$tnimed - rtrim ;$line).
См. также: trim(), Itrim().
chop
Удаление конечных пробелов
string chop (string str)
Возвращает полученную строку без завершающих пробельных символов, включая переходы на новую строку. (Одноименная функция в Perl, помимо этого, удаляет последний символ строки.)
См. также: trim(), Itrim(), rtrim() и chop().
trim
Удаление начальных и конечных пробелов
string trim (string str)
Возвращает исходную строку str, из которой удалены начальные и конечные пробельные символы (такими символами являются: «\п», «\г>>, «\t», «\v», «\0» и пробел).
См. также: chop(), rtrim() и Itrim().
strrev
Реверс строки
string strrev (string string)
Возвращает строку string «задом наперед».
strtolower
Преобразование символов сгроки в нижний регистр
string strtolower (string str)
Возвращает строку string, в которой все алфавитные буквы делаются маленькими (lowercase). Понятие «алфавитные» определяется локальными установками. Обычно символы кириллицы не конвертируются (или конвертируются неправильно).
$str = "HeLLo World".
$str = strtolower($str);
print $str: # Выводит, hello world
См. также: strtoupper() и ucfirst().
strtoupper
Преобразование символов строки в верхний регистр
string strtoupper (string string)
Возвращает строку string, в которой все алфавитные буквы делаются большими (uppercase). Понятие «алфавитные» определяется локальными установками. Обычно символы кириллицы не конвертируются (или конвертируются неправильно).
$str = "Hello":
$str = strtoupper ($str):
print $str. # выводит HELLO
См. также: strtolower() и ucfirst().
ucfirst
Преобразование первого символа строки в заглавный
string ucfirst (string str)
Если первый символ строки - строчная буква, то в возвращаемой строке она становится заглавной. Символы кириллицы могут быть неправильно конвертированы.
Stext = 'hello hello'.
Stext = ucfirst (Stext): // теперь Stext = Hello hello
См. также: strtoupper() и strtolower().
ucwords
Преобразование первого символа каждого слова в заглавный string ucwords (string str)
Stext = 'hello hello':
itext = ucwords(Itext).
// теперь Stext = Hello Hello
Словом считается та последовательность символов, которой предшествует пробельный символ (то есть: пробел, прогонка страницы, переход на новую строку, возврат каретки, горизонтальная и вертикальная табуляция).
См. также: strtoupper(), strtolower() и ucfirst().
strtr
Замена указанных символов
string strtr (string str, string from, string to)
string strtr (string str, array from)
Возвращается строка str, в которой каждый символ, присутствующий в строке from, заменяется на корреспондирующий из строки to. Если строки from и to различной длины, то «лишние» конечные символы длинной строки игнорируются.
$addr = strtr(Saadr. "абвгд". "fbcde"):
Во второй форме функция возвращает строку, в которой фрагменты строки str заменяются на соответствующие индексам значения элементов массива from. В этом случае функция пытается заменить сначала наибольшие фрагменты исходной строки и не выполняет замену в уже модифицированных частях с сроки.
$trans = array ("hello" => "hi", "hi" => "hello"): echo strtrC'hi all. ! said hello". Strans)
. "\n": // выведет "hello all I said hi".
См. также ereg_replace().
str_replace
Замена фрагментов
string str_replace (string needle, string str, string haystack)
Возвращает строку haystack, в которой все фрагменты needle заменены значением строки str. Также функция может работать с двоичными строками. Эта функция в простых случаях может успешно заменить ereg_replace().
Sbodytag = str_replace ("*body_coU". "black".
"<body color^body_coU>"):
См. также: ereg_replace() и strtrt).
substr_ replace
Замена части строки
string substr_replace (string string, string replacement, int start [, int length])
Возвращает строку string, в которой часть от символа с позицией start и длиной length (или до конца, если аргумент длины не указан) заменяется строкой replacement.
Если значение start положительно, отсчет производится от начала строки string, иначе - от конца (-1 - последний символ строки).
Если значение length неотрицательно, тогда оно указывает длину заменяемого фрагмента. Если оно отрицательно, то это число символов от конца строки string до последнего символа заменяемого фрагмента (со знаком минус).
<?php
$var = 'ABCDEFGH:/MNRPQR/':
echo "Original: $var\n":
/* замена строки целиком (от 0 символа до
последнего) */ echo substr_rep1ace
($var, 'bob1. 0) "<br>\n". echo substr_replace ($var. 'bob'. 0. strlen ($var)) "<br>\n";
// выводит: bob<br>
/* вставить 'bob' в начале строки $var. */
echo substr_replace ($var. 'bob'. 0. 0) .
"<br>\n":
// выводит: bobABCDEFGH:/MNRPQR
/<br>
//* замена 'MNRPQR' в $var на 'bob' */ echo substr_replace ($var. 'bob'.
10. -1) . "<br>\n". echo substr_rep1ace ($var. 'bob'. -7. -1) . "<br>\n": // выводит: ABCDEFGH:/bob/<br>
/* удаление 'MNRPQR' из $var. */
echo substr_replace ($var. ", 10. -1) . "<br>\n":
// выводит: ABCDEFGH-//<br>
C. 1 ?>
См. также: str_replace() n substr().
Сложные манипуляции
addslashes
Добавление слешей перед специальными символами строки
string addslashes (string str) .
Возвращает строку, в которой перед символами, имеющими специальное значение для строк, вставляется слеш. Такими символами являются: одиночная (') и двойная (") кавычки, обратный слеш (\) и нулевой байт NUL (\0). Это часто требуется, чтобы затем правильно передать строку в запросе к базе данных и т. д.
См. также: stripslashes(), htmlspecialchars() и quotemeta().
addcslashes
Форматирование строки слешами в С-представление
string addcslashes (string str, string charlist)
Возвращает строку str, в которую вставлены символы обратного слеша «\» перед перечисленными в строке-списке charlist символами. Это позволяет преобразовать непечатные символы в их визуальное С-представлсние.
В примере, приведенном ниже управляющие символы: «\n>>, «\r», и другие с кодами ASCII до 32 и выше 126, а также знак восклицания и «собака», конвертируются в их специальное или восьмеричное представление. Будьте осторожны с алфавитно-цифровыми символами и кодами (например, символы кириллицы имеют коды выше 126). Строка charlist содержит диапазоны кодов в формате "\0..\37", что в данном случае означает: коды от 0 до 31.
$not_escaped = " Эта строка \t is (@) much complex \r to \x9f be
\n presented! \n\n". echo $not_escaped.
Sescaped = addcslashes ($not_escaped. "\0 .\37!@\177..\377"): echo Sescaped;
При запуске сценарий выводит следующее:
Эта строка is (@) much complex to
Я be presented1
\235\342\240 \341\342\340\256\252\240 \t is (\@) much \r\n complex \r to \237 be \n presented\!\n
См. также: stripcslashes(), stripslashes(), html special chars(), htralspe-cialchars() и quotemeta().
stripslashes
Удаление обратных слешей
string stripslashes (string str)
Возвращает строку, из которой удалены обратные слеши. Двойные слеши делаются одиночными.
См. также addslashes().
stripcslashes
Преобразование специальных символов в их двоичное представление string stripcslashes (string str)
Возвращает строку, в которой те специальные символы, которые закомментированы (для визуального отображения) обратным слешем, преобразуются в их естественное двоичное представление. Распознаются С-подобные записи, например: \n, \r ..., восьмеричные и шсст-надцатеричные последовательности.
См. также addcslashes().
quotemeta
Цитирование метасимволов string quotemeta (string str)
Возвращает строку str, в которую добавлены обратные слеши «\» перед каждым из следующих символов:
\\ + *?["]($)
Может использоваться для подготовки шаблонов в регулярных выражениях.
См. также: addslashes(), htmlentities(), htmlspecialchars(), nl2br() и stripslashes().
wordwrap
Расстановка переносов строк по ширине
string wordwrap (string str [, int width [. string break [, int cut]]])
Возвращает строку str, в которой расставлены символы перехода на новую строку («\п» или тот, который указан аргументом break), таким образом, что число символов на строке не превышает значения width (по умолчанию оно равно 75). Перенос осуществляется по словам; если указывается параметр cut, равный 1, то перенос строки выполняется всегда, как бы длинно слово ни было.
$text = "The quick brown fox jumped
over the lazy dog "; Snewtext = wordwrapf Stext. 20 ); echo "$newtext\n";
Будет выведено
The quick brown fox jumped
over the lazy dog.
Следующий пример демонстрирует использование последнего аргумента cut=l:
Stext = "A very long woooooooooooord ". Snewtext = wordwrap! $text. 8. "\n". 1). echo "$newtext\n":
Будет выведено A very long
wooooooo ooooord
См. также: nl2br(), chunk_split().
convert_cyr_string
Конвертация строк из одной кодировки кириллицы в другую
string convert_cyr_string (string str, string from, string to)
Аргументы from и to - одиночные символы, представляющие соответственно исходную и целевую кодировки. Поддерживаемые типы кодировок, используемые в аргументах from и to:
k - koi8-r;
w - windows-1251;
i - iso8859-5;
a - x-cp866;
d - x-cp866;
m - x-mac-cyrillic.
hebrev
Конвертация логического текста Hebrew в отображаемый
string hebrev (string hebrew_text [, int max_chars_per_line])
Необязательный аргумент max_chars_per_line указывает число символов на строку вывода. Функция пытается избежать разрыва слов.
См. также hebrevc().
hebrevc
Аналог функции hebrev с расстановкой переносов
string hebrevc (string hebrew_text [, int max_chars_per_"hne])
Функция сходна с hebrev() с тем отличием, что она преобразует символы перевода строк «\п» в «<br>\n». Необязательный аргумент тах_ chars_per_line указывает число символов на строку вывода. Функция пытается избежать разрыва слов.
См. также hebrev().
quoted printable decode
Преобразование цитированной строки в 8-битную
string quoted_printable_decode (string str)
Функция сходна с imap_qprint(), но не требует модуля ШАР.
Функции URL
parse_url
Разделение строки URL на ее компоненты
array parse_ur! (string url)
Возвращает ассоциативный массив, содержащий различные присутствующие в URL компоненты. Такими компонентами могут быть: «scheme», «host», «port», «user», «pass», «path», «query» и «fragment».
parse_str
Занесение строки URL в переменные
void parse_str (string str [, array arr])
Интерпретирует строку str, как если бы эта строка содержала переменные и их значения и передавалась в URL; устанавливает для найденных переменных значения. Если указывается второй аргумент, то значения сохраняются не в глобальных переменных, а в элементах указанного массива.
$str = "first=val33&second[]=
trns+works&second[]=another"
parse_str($str). parse_str($str.$ar).
echo Sfirst: /* выводит "va!33" */
echo $secona[0].
/* выводит "this works" */
echo $second[l]. /
* выводит "another" */
print_r($ar): * выводит:
[first] => va!33 [second] => Array ( [0] => this works [1] =>
another ) */
rawurlencode
Кодирование URL
string rawurlencode (string str)
Возвращает строку, в которой вес не алфавитно-цифровые символы (за исключением дефиса «-», знака подчеркивания «_» и точки «.») заменены последовательностями: знак процента (%), за которым следуют две шестнадцатеричпыс цифры (обозначающие код символа). Схема этого кодирования описана в файле RFC1738, и она предназначена для того, чтобы буквенные символы не обрабатывались в качестве разделителей строки URL и не искажались при передаче в сетях (что характерно для некоторых систем электронных сообщений).
echo '<A HREF="ftp://user: ' .
rawurlencode (Smypasswd).
'@ftp.my.com/x.txt">' .
// передача пароля в гиперссылке
Или при передаче нестандартной для URL строки пути:
echo '<A HREFz"http://x
com/department_list_sc'"ipt/' .
rawurlencode ('sales и marketing/Miami '). '">':
См. также: rawurldecode(), urldecode(), urlencode().
rawurldecode
Декодирование URL
string rawurldecode (string str)
Возвращает строку, в которой последовательности со знаком процента «%» с последующими двумя шестнадцатеричными цифрами заменяются соответствующими данному коду символами. Например, строка:
fool20bart40baz
преобразуется в foo bargbaz
См. также: rawurlencode(), urldecode(), urlencode().
urlencode
Кодирование строки в URL
string urlencode (string str)
Возвращает строку, в которой все не алфавитно-цифровые символы (за исключением дефиса «-», знака подчеркивания «_» и точки «.») заменены последовательностями: знак процента (%), за которым следуют две шестнадцатеричные цифры (обозначающие код символа), а символ пробела заменен на знак «+». Именно таким образом кодируются все данные, посылаемые HTML-формами. Медиа-тип этого кодирования обозначается как application/x-www-form-urlencoded; он отличается от стандарта кодирования RFC 1738 (ем. функцию rawur-lencode()) тем, что, по историческим причинам, пробелы заменяются па знак плюс. Эта функция удобна при кодировании строки для использования в строке запроса, являющейся частью URL, и при передаче переменных на следующую страницу:
echo '<А HREF="mycgi?foo=', urlencode (Susennput). '">':
РОЮ ra-yurl encode С foo М/ЯгЛ?&#').
// выводит f6o«20Z405!28
«25Z2R886«5CJ!3lrZ26Z23
echo urlencode ('foo @+l/»\\7&#');
// выводит foo+X40X2B3;25*2F*86*5a3F*26*23
Будьте осторожны с передачей переменных (в ссылках), которые могут совпасть с зарезервированными в HTML словами (например: Samp, Scopy и Spound - интерпретируются браузером и замещаются соответствующими символами).
См. также: urIdecode(), htmlentities(), rawurldecode(), rawurlencode().
urldecode
Декодирование строки из URL
string urldecode (string str)
Декодирует в строке последовательности %## (так в URL кодируются спецсимволы).
$а = split ('&'. Squerystnng):
$i=0 while ($1 < count (la)) {
$b - split (' = '. $a [ii i;.
echo 'Value for parameter '.
htmlspecialchars (urldecode ($b [0])).
' is '. htrnlspecialchars (urldecode
($b .)). "<BR>"; $1++; }
См. также: urlencode(), rawurlencode(), rawurldecode().
base64_encode
Кодирование строки в формат base64
string base64_encode (string data)
Возвращает закодированную метолом «base64» строку data. Это кодирование предназначено для того, чтобы передаваемые двоичные данные могли правильно (без искажений) передаваться системами, изменяющими 8-й бит, например при передаче двоичных данных в теле сообщении электронной почты. При этом кодировании размер данных увеличивается на треть.
См. также: base64_decode(), chunk_split"(), RFC2045.
base64_decode
Декодирование строки из формата base64
string base64_decode (string encoded data)
Декодирует закодированную строку encoded_data и возвращает оригинальные данные (они могут быть двоичными).
См. также: base64_encode(), RFC2045.
HTML-конвертации
nl2br
Форматирование HTML-переносов строк string nl2br (string string)
Возвращает строку, в которой перед каждым символом перевода строки (newline) «\n» вставляется последовательность <BR>.
См. также: htmlspecialchars(), htmlentities() и wordwrap().
strip_tags
Удаление из строки тегов
string strip_tags (string str [, string allowablejtags])
Возвращает строку str, из которой удалены все HTML- и PHP-теги. Незавершенные и фиктивные теги вызывают ошибку. Схема, по которой производится удаление тегов, такая же, как и в функции fgetss().
Можно использовать необязательный аргумент allowable_tags для указания того, какие теги не следует удалять.
get_meta_tags
Извлечение содержимого метатегов из файла в массив
array get_meta_tags (string filename [, int use_include_path])
Функция открывает файл filename и интерпретирует его построчно, находя теги <meta>:
<meta name="author" content="name">
<meta name="tags" content="php3
documentation'>
</head> <!- Здесь функция завершается ->
В возвращаемом массиве индексами становятся значения атрибута name, а самими значениями - значения атрибута content. Спецсимволы в значении атрибута name заменяются на знак подчеркивания «_», а алфавитные символы преобразуются в нижний регистр.
Если указывается необязательный аргумент use_include_path со значением 1, то при поиске файла будет использоваться не только текущий путь, но и путь включаемых файлов по умолчанию.
get_html_translation_table
Получение таблицы трансляции, используемой функциями htmlspecialchars() и htmlentities()
string get_html_translation_table (int table [, int quote_style])
В аргументе table указывается, какую таблицу трансляции необходимо получить: HTML_SPECIALCHARS (для функции htmlspecialchars()) или HTML_ENTITIES (для функции htmlentities()). Можно также указать необязательный аргумент quote_style (no умолчанию - ЕМТ_СОМРАТ), его описание приведено в функции htmlspecialchars().
$trans get_html_translation_table
(HTMLJNTITIES): $str = "< A & В >".
Sencoded = strtr ($str. Strans),
// теперь Sencoded = "< A & В >."
Иногда удобно использовать функцию array_f!ip() для изменения направления трансляции.
Strans = array_flip (Strans): Sorlginal =
strtr (Sencoded. Strans):
См. также: htmlspecialchars(), htmlentities(), strtr() и array_flip().
htmlspecialchars
Конвертация спецсимволов в HTML-представление
st