Учебник по основам PHP




Строковые функции


Вывод

print

Вывод строки, значения переменной или выражения

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().

Каждый спецификатор состоит из знака процента (%), за которым следуют один или более следующих элементов в указанном порядке.

  1. Необязательный спецификатор заполнителя, определяющий, каким символом будут дополняться строки до необходимой длины. Это может быть пробел или нулевой символ. По умолчанию используется пробел. Альтернативные символы-заполнители могут быть >к.') юны, если перед ними ставится знак одинарной кавычки ('). Например, printf CTz5d",12); // выведет: zzz!2.
  2. Необязательный спецификатор выравнивания. Если он не указывается, ч о значение будет выравниваться по правой стороне, если он указан (как символ «а»), то по левой (действует не всегда).
  3. Необязательный спецификатор ширины значения указывает минимальное число символов, которое должно выводиться в значении
  4. Необязательный спецификатор точности определяет, сколько цифр после запятой должно выводиться для дробных чисел (для чисел других типов не действует). (Для форматирования чисел также полезна функция number_format().)
  5. Спецификатор типа — сообщает, в качестве какого типа должен рассматриваться аргумент. Возможные типы:
  • 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 [I].)). "<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 = "&lt; A &amp; В &gt."

Иногда удобно использовать функцию array_f!ip() для изменения направления трансляции.

Strans = array_flip (Strans): Sorlginal = strtr (Sencoded. Strans):

См. также: htmlspecialchars(), htmlentities(), strtr() и array_flip().

htmlspecialchars

Конвертация спецсимволов в HTML-представление

string htmlspecialchars (string string [, int quote_style])

Некоторые символы имеют специальное значение в HTML, и поэтому для использования в тексте их необходимо заменять эквивалентами. Функция производит следующие замены:

  • & (амперсант) становится &атр;
  • " (двойная кавычка) становится &quot; при quote_style <> ENT_ NOQUOTES;
  • ' (одиночная кавычка) становится &#039; при quote_style = ENT_ QUOTES;
  • < (знак меньше) становится &lt;
  • > (знак больше) становится &gt;
$new = htmlspeciaichars("<a href='test'>Test</a>". ENT_QUOTES).

Функция удобна для предотвращения неправильного вывода текста, введенного пользователем, если он содержит элементы форматирования HTML (например, в досках объявлений, гостевых книгах, чатах). Необязательный аргумент quote_style указывает, как поступать с кавычками: режим по умолчанию ЕМТ_СОМРАТ, служащий для обратной совместимости, разрешает трансляцию только двойных кавычек; ENT_QUOTES разрешает трансляцию любых кавычек; a ENT_NOQUOTES запрещает трансляцию любых кавычек.

Такую же операцию производит функция htmlentities().

См. также: html entities ()и nl2br().

htmlentities

Конвертация символов, имеющих HTML-представление

string htmlentities (string string [, int quote_style])

Функция подобна htmlspecialchars() с тем отличием, что она производит не выборочную трансляцию, а полную — для всех символов, которые могут иметь эквивалентные HTML-представления. Необязательный аргумент quote_style указывает, как поступать с кавычками: режим по умолчанию ENT_COMPAT, служащий для обратной совместимости, разрешает трансляцию только двойных кавычек; ENT_ QUOTES разрешает трансляцию любых кавычек; a ENT_NOQUOTES запрещает трансляцию любых кавычек. В настоящее время используется кодировка ISO-8859-1.

См. также: htmlspecialchars() и nl!2br().









Начало    Назад    Вперед




Книжный магазин