
Първи стъпки в PHP — функции за текст
PHP е лесен език заради множеството функции, които представя.
Винаги можете да си дефинирате собствени функции, с които да постигнете търсен резултат. Почти винаги обаче е по-добре първо да потърсите. Току-виж съществува функция, която да ви върши работа. Ако е вградена в PHP вероятно ще е по-оптимизирана и ще работи по-бързо. Освен това тя вероятно е тествана по-добре и няма да се издъни в някой частен случай.
За да можем да ползваме правилните функции обаче, трябва да знаем за самите тях. В този урок ще разгледаме някои функции за работа със string-ове.
В официалната документация на PHP можете да намерите един доста подробен списък с такива функции: http://bg2.php.net/manual/en/ref.strings.php.
explode(string $delimiter, string $string[, int $limit ])
Връща масив от string-ове. Всеки от тях е част от аргумента $string
, разделен на части от аргумента $delimiter
.
Третият аргумент $limit
ограничава броя на елементите във върнатия масив. При достигане на бройката, следващите елементи се връщат като един string.
Ако стойността на $limit
е отрицателна, масивът ще съдържа всички елементи освен последните -$limit
.
implode([string $glue ,] array $pieces)
Функцията връща string, който се състои от елементите на масива $pieces
, слепени с друг string — $glue
.
Функцията изглежда малко странно, тъй като незадължителният аргумент е първият. Просто самата функция проверява дали аргументът е string. Ако не е, свързва елементите един до друг, все едно, че $glue = ''
.
htmlspecialchars(string $string)
Първо трябва да отбележа, че има и други (незадължителни) аргументи. В момента, обаче, ще разгледаме само първия.
Някои знаци (като >
, <
, "
и други) имат специално значение за браузърите. Това е основно заради HTML. Ако искате да ги включите в съдържанието трябва да използвате съответстващите им HTML entities. Тази функция прави това за вас автоматично.
htmlentities(string $string)
Тази функция е подобна на htmlcpecialchars
. Различава се по това, че конвертира не само символите, които със сигурност биха счупили HTML-а ви. Тя конвертира и други знаци, които могат да се използват директно (с правилна кодировка на файла и <meta />
декларация. Стига знаците да имат съответстващо HTML entity. Пример за такъв е знакът copyright — © (©
).
htmlspecialchars_decode($string)
Обръща действието на htmlspecialchars
.
html_entity_decode($string)
Обръща действието на htmlentities
.
lcfirst(string $string)
Променя първата буква от $string
да бъде малка.
ucfirst(string $string)
Обратното — променя първият знак да е главна буква.
strtolower(string $string)
Връща версия на $string
, където всички букви са направени малки.
strtoupper(string $string)
Обратното — прави всичи букви главни.
ucwords(string $string)
Прави главна първата буква от всяка дума, съдържаща се в $string
.
trim(string $str [, string $character_mask = " \t\n\r\0\x0B" ])
По подразбиране функцията премахва всякакъв whitespace (интервали, табове, нов ред) от началото и края на аргумента $string
. Вторият аргумент на функцията може да изброи кои знаци да бъдат премахвани, ако искате да отрежете друго, а не whitespace.
ltrim(string $string)
Подобно на trim()
, но само за началото (left trim).
rtrim(string $string)
Аналогично, но за края на $string
.
nl2br(string $string [, bool $is_xhtml = true ])
Връща текст, където след знаци за нов ред (като \n
) се добавя HTML таг за нов ред (<br />
).
number_format(float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = ",")
Функцията работи с 1, 2 или 4 аргумента, но не и с 3.
Ако е подаден само 1 ($number
) в числото ще се сложат запетая, отделящи хиляди, милиони и т.н.
Ако има и втори аргумент, ще бъде добавена и десетична точка след цялата част от числото и ще бъдат изписани $decimals
цифри след нея.
Подавайки трети и четвърти аргумент може да се използват други знаци за отделяне на хиляди и десетична точка.
str_replace(mixed $search , mixed $replace , mixed $subject [, int &$count ])
Функцията връща string или масив, където $search
се заменя с $replace
в $subject
.
str_ireplace(mixed $search , mixed $replace , mixed $subject [, int &$count ])
Разликата с предната функция е, че тази не взема предвид малки и главни букви.
str_repeat(string $input , int $multiplier)
Връща string, който повтаря $input
$multiplier
пъти.
str_shuffle(string $str)
Разбърква буквите в $str
.
str_split(string $string [, int $split_length = 1 ])
Разделя буквите от $string
в елементи на масив. По подразбиране всеки елемент съдържа по 1 буква. Възможно е да се подаде втори аргумент, който да укаже да се използват string-ове от по няколко букви в елемент на масива.
strip_tags(string $str [, string $allowable_tags ])
Премахва HTML тагове от $str
, така че да остане само “чист” текст. Възможно е да се подаде като втори аргумент string, който съдържа позволени тагове, изредени със запетаи без ъгловите скоби. Например "a,strong,span,em"
.
strpos(string $haystack , mixed $needle [, int $offset = 0 ])
Връща позицията на първия път където се среща $needle
в $haystack
.
Ако се подаде $offset
ще се престочат първите букви с такъв брой.
strripos(string $haystack , string $needle [, int $offset = 0 ])
Сащото, но без да се взимат предвид малки и главни букви.
strrpos()
Връща позицията на последния път където се среща $needle
в $haystack
.
stripos(string $haystack , string $needle [, int $offset = 0 ])
Същото като strpos
, но не взема предвид малки и главни букви при търсенето.
strstr(string $haystack , mixed $needle [, bool $before_needle = false ])
Връща част от $haystack
, започваща от $needle
до края на string-а.
Ако $before_needle
се подаде като TRUE
се връща останалата част от $haystack
— от началото до (и без) $needle
.
stristr(string $haystack , mixed $needle [, bool $before_needle = false ])
Същото, но без да се взимат предвид главни и малки букви.
strlen(string $string)
Връща броя букви в $string
.
strrev(string $string)
Обръща буквите в $string
наобратно.
substr(string $string , int $start [, int $length ])
Връща част от $string
започваща от $start
и с дължина $length
.
[…] Действието на функцията str_replace би трябвало да е познато от урока Първи стъпки в PHP – функции за текст […]
[…] Взимане на буква от string може да стане чрез функцията substr() (би трябвало вече да е позната от урока функции за текст). […]
[…] преди сте се чудели за какво ви е бил урокът Първи стъпки в PHP – функции за текст – сега вече се надявам, че е […]