Определяне на дължината на низ и конвертиране на знаци

Strlen()

int strlen (низ низ)

Връща дължината на низа, който приема като аргумент (пример 4.7.3.1.1):

Chr()

низ chr(int ascii)

Взема като аргумент ASCII код на символ и връща действителния знак, съответстващ на този код (пример 4.7.3.2.1):

Ord()

int ord (низ низ)

Изпълнява обратното на функцията chr() (пример 4.7.3.3.1):

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

Това е много полезна група от функции, без които е трудно да се работи при работа с низове. Белите интервали включват знаци

" " (ASCII 32 (0x20)), интервал.

"\t" (ASCII 9 (0x09)), табулатор.

"\n" (ASCII 10 (0x0A)), символ за подаване на ред.

"\r" (ASCII 13 (0x0D)), символ за връщане на каретката.

"\0" (ASCII 0 (0x00)), NUL байт.

"\x0B" (ASCII 11 (0x0B)), вертикален раздел.

Изрязване()

изрязване на низ (низ str [, списък на низове])

Той приема низ като единствен аргумент и премахва интервалите отляво и отдясно на него.

Размерът на оригиналния низ "Hello, world!" = 19,

размер на низ премахване на интервали поле = 13

Ltrim(), rtrim() и chop()

Функцията ltrim() премахва водещите празни знаци (т.е. тези отляво) от низ; rtrim() - празни знаци в края. Функцията chop() е синоним на функцията rtrim().

Форматирайте изходните функции printf(), sprintf() и input sscanf()

  • int printf ( string format [, mixed args] ) - отпечатва низ, форматиран според аргумента format, описан в документацията на функцията sprintf(), връща дължината на отпечатания низ
  • string sprintf ( string format [, mixed args] ) - връща низ, създаден с помощта на format string format.
  • mixed sscanf ( string str, string format [, mixed & . ] ) - анализира низ според посочения формат

Функциите printf и sprintf са предназначени за форматиран изход и се различават по това, че функцията printf() извършва форматиране и извежда резултатите в изходния поток (браузър или конзола), докато sprintf() просто връща низ след извършване на необходимото форматиране.

Тези функции могат да се използват просто като изходни функции (пример 4.7.5.1):

Низът за форматиране се състои от директиви: обикновени знаци (с изключение на %), които се копират в резултантния низ, и дескриптори на преобразуване, всеки от които се заменя с един от параметрите. Това се отнася и за fprintf(), sprintf() и printf().

Всеки спецификатор на трансформация се състои от знак за процент (%), последван от един или повече незадължителни елементи (в реда, в който са изброени тук):

  • Незадължителен спецификатор за допълване, който указва кой знак ще се използва за допълване на резултата до необходимата дължина. Може да бъде интервал или 0. По подразбиране е интервал. Алтернативен знак може да бъде зададен с '. Вижте примерите по-долу.
  • Незадължителен спецификатор на подравняване, определящ ляво или дясно подравняване. Дясно подравнено по подразбиране, - използва се за ляво подравняване.
  • Незадължително число, спецификатор на ширина, който указва минималния брой знаци, които ще съдържат резултата от тази трансформация.
  • Незадължителен спецификатор на точност, указващ колко знака след десетичната запетая да се показват за числа с плаваща запетая. Има значениетосамо за числови плаващи данни.
  • Спецификатор на тип, който указва как да се третира типа данни на аргумента. Валидни типове:

- % - символ за процент. Аргументът не се използва.

- b - аргументът се третира като цяло число и се извежда като двоично число.

- c - аргументът се третира като цяло число и се извежда като символ със съответния ASCII код.

- d - аргументът се третира като цяло число и се извежда като десетично число със знак.

- e - аргументът се третира като float и се извежда в научна нотация (напр. 1.2e+2).

- u - аргументът се третира като цяло число и се показва като десетично число без знак.

- f - аргументът се третира като число с плаваща запетая и се извежда като десетично число с плаваща запетая.

- o - аргументът се третира като цяло число и се извежда като осмично число.

- s - аргументът се третира като низ.

- x - аргументът се третира като цяло число и се извежда като шестнадесетично число (с малки букви).

- X - аргументът се третира като цяло число и се показва като шестнадесетично число (с главни букви).

Започвайки с PHP 4.0.6, номерирането и пренареждането на параметрите се поддържа във форматния низ.

Пример 4.7.5.1 (промяна на реда на параметрите):

Този код ще изведе „На дървото има 5 маймуни“. Сега си представете, че форматиращият низ се съдържа в отделен файл, който след това ще бъде преведен на друг език и ние го пренаписваме в следната форма:

Има проблем: редът на дескрипторите за преобразуване не съвпада с реда на аргументите. Не искаме да променяме кода и трябва да посочим кой аргумент отговаря на кой спецификатор на преобразуване.

Номерирането на аргументите има друга употреба: позволява ви да изведете същия аргументняколко пъти, без да подавате допълнителни параметри към функцията. Пример 4: Промяна на реда на параметрите

Функцията sscanf() е подобна на функцията printf(), но се използва за вход, а не за изход. sscanf() интерпретира низа str според формата. Ако се подадат само тези два аргумента, ще бъде върнат масив. В противен случай стойностите, прочетени от низа, ще бъдат присвоени на променливите, предадени през допълнителните аргументи, и броят на присвоените стойности ще бъде върнат. Допълнителните аргументи трябва да бъдат предадени чрез препратка.

Всички празни знаци във форматиращия низ съответстват на всички празни знаци във входния низ. Това означава, че например символът \t tab във форматния низ съвпада със знака за интервал във входния низ.

Ако се подадат незадължителни аргументи, ще им бъдат присвоени стойности и ще бъде върнат броят присвоени стойности.

Функция за преобразуване на кодиране convert_cyr_string()

низ convert_cyr_string ( низ str, низ от, низ към )

Тази функция преобразува низа str от едно кодиране на кирилица в друго. Аргументите from и to определят съответно входното и изходното кодиране и са дълги един знак. Поддържат се следните кодировки:

Функции на текстови блокове

Wordwrap()

string wordwrap(string str [, int width [, string break [, int cut]]])

Функцията wordwrap() разделя изходния текст на редове с определени знаци в края. Според синтаксиса тази функция разделя текстовия блок str на няколко реда, които завършват със знаци за прекъсване, така че в един ред да има не повече от ширина на буквите. Тъй като разделянето става на границите на думите, текстът остава доста четим.

Str_replace()

смесена str_replace ( смесено търсене, смесена замяна, смесена тема [, int &count] )

Тази функция връща предмет на низ или масив, като всички случаи на търсене са заменени със замяна. Ако не са необходими сложни правила за намиране/замяна, използването на тази функция е за предпочитане пред ereg_replace() или preg_replace().

$txt = str_replace("[B]"," ",$txt);

Substr_replace()

низ substr_replace ( низ низ, замяна на низ, int начало [, int дължина] )

Заменя частта от низа на низа, започваща със знака с началния номер и дължината на дължината, със замяната на низа и връща резултата.

Ако началото е положително число, заместването започва от знака с начален номер на индекс.

Ако start е отрицателно число, заместването започва от началото на знака, като се брои от края на низа.

Ако аргументът за дължина е положително число, тогава той указва дължината на подниза, който трябва да бъде заменен. Ако този аргумент е отрицателен, той указва броя знаци от края на низа, където завършва заместването. Този аргумент не е задължителен и по подразбиране е strlen(string);, т.е. замени до края на низа низ.

/* И двата следващи реда заменят целия низ $var с 'bob'. */

echo substr_replace($var, 'bob', 0) . " \n";

echo substr_replace($var, 'bob', 0, strlen($var)) . " \n";

/* Вмъква 'bob' в началото на $var. */

echo substr_replace($var, 'bob', 0, 0) . " \n";

/* И двата следващи реда заменят 'MNRPQR' в $var с 'bob'. */

echo substr_replace($var, 'bob', 10, -1) . " \n";

echo substr_replace($var, 'bob', -7, -1) . " \n";

/* Премахване на 'MNRPQR' от $var. */

echo substr_replace($var, '', 10, -1) . " \n";

Strtr()

низ strtr ( низ str, низ от, низ към )

string strtr (string str, array replace_pairs)

Тази функция връща низа str при всяко появяване на който и да е символ, посочен в от заменен със съответния знак от низ до.

Ако дължините на низовете от и до са различни, "допълнителните" знаци в по-дългия низ не се използват.

strtr() може да се извика с два аргумента. В този случай from трябва да бъде масив, чиито индекси се третират като низове за търсене и чиито съответстващи стойности се третират като низове за заместване. strtr() замества първо по-дългите поднизове със същия низ за търсене, използван само веднъж.

echo strtr("здравейте всички, казах здравей", $trans);

Този код ще изведе:

здравейте на всички, казах здравей

Stripslashes()

низ ленти наклонени черти ( низ str )

Премахва екраниращите обратни наклонени черти. (\' се преобразува в 'и т.н.). Двойните обратни наклонени черти (\\) се преобразуват в единични обратни наклонени черти (\).

stripslashes() се използва, например, когато конфигурационната директива magic_quotes_gpc е разрешена (разрешена е по подразбиране) и не се изисква екраниране на знаци. Например данните не се въвеждат в базата данни, а просто се извеждат в браузъра.

Addslashes()

низ добавя наклонени черти ( низ str )

Връща низ str с обратна наклонена черта (\) пред всеки специален знак, например за използване на низа по-късно в заявка към база данни. Единични кавички ('), двойни кавички ("), обратна наклонена черта (\) и NUL (NULL байт) се екранират.

Функцията addslashes() често се използва при запис в база данни. Да предположим, че ако името O'reilly трябва да бъде въведено в базата данни, тогава знакът ' трябва да бъде екраниран. В повечето бази данни това\ се използва, низът ще изглежда като O\'reilly. Обърнете внимание, че самият символ \ няма да бъде записан в базата данни. Ако конфигурационната директива magic_quotes_sybase е включена, тогава символът ' ще бъде екраниран чрез добавяне на друг ' вместо \.

Конфигурационната директива magic_quotes_gpc по подразбиране е включена, като функцията addslashes() се прилага автоматично към всички данни GET, POST и COOKIE. Не използвайте addslashes() за данни, обработвани от magic_quotes_gpc, за да избегнете двойно екраниране. Get_magic_quotes_gpc() се използва за проверка на състоянието на тази директива.

Stripclashes()

низ stripclashes(низ str)

Addclashes()

низ addcslashes(низ str, низ charlist)

Функция за добавяне на наклонени черти преди специални символи на низ. Връща низа str с обратни наклонени черти, вмъкнати преди символите, изброени в charlist. Това позволява символи, които не са отпечатани, да бъдат преобразувани в тяхното визуално C представяне.

Quotemeta()

низ quotemeta(низ str)

Функция за цитиране на метасимволи. Връща низ с обратни наклонени черти, добавени преди всеки от следните знаци: . \\ + * ? [^] ($). Функцията може да се използва за подготовка на шаблони в регулярни изрази.