Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / PHP / Руководство по РНР 3.0 / Справочник функций /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Строковые функции - Программирование от RIN.RU
Строковые функции

addslashes
chop
chr
chunk_split
convert_cyr_string
crypt
echo
explode
flush
get_meta_tags
htmlspecialchars
htmlentities
implode
join
ltrim
md5
nl2br
ord
parse_str
print
printf
quoted_printable_decode
quotemeta
rawurldecode
rawurlencode
setlocale
soundex
sprintf
strchr
strcmp
strcspn
stripslashes
strlen
strrpos
strpos
strrchr
strrev
strspn
strstr
strtok
strtolower
strtoupper
str_replace
strtr
substr
trim
ucfirst
ucwords



Все эти функции манипулируют строками различными способами. Некоторые более специализированные функции вы можете найти в разделах о регулярных выражениях и о функциях обработки URL.


AddSlashes


AddSlashes -- выделяет строку обратной чертой


Описание string addslashes(string str);


Возвращает строку с обратной чертой (/) перед символами, которые должны быть выделены в запросах к базам данных и т.п. Эти символы: ("), двойные кавычки ("), (\) и NUL (нулевой байт).


См. также stripslashes(), htmlspecialchars() и quotemeta().



Chop


Chop -- удаляет повторяющиеся пробелы


Описание string chop(string str);


Возвращает строку без повторяющихся пробелов.


Пример. chop()


$trimmed = Chop($line);


См. также trim().



Chr


Chr -- возвращает специалный символ


Описание string chr(int ascii);


Bозвращает односимвольную строку, содержащую символ, определенный кодом ascii.


Пример. chr()


$str .= chr(27); /* добавляет символ ESC в конец $str */


/* Часто это более полезно */
$str = sprintf("The string ends in escape: %c", 27);


Эта функция дополняет функцию ord(). См. также sprintf() с форматирующей строкой %c.



chunk_split


chunk_split -- разбивает строку на мелкие части


Описание string chunk_split(string string, int [chunklen] , string [end] );


Может быть использована для разбития строки на более меньшие части, например, при конвертировании результата функции base64_encode в формат RFC 2045. Функция вставляет каждый chunklen-ый (по умолчанию до 76) символ строку end (по умолчанию "\r\n"). Функция возвращает новую строку, оставляя исходную не тронутой.


Пример. chr_replace()


# format $data using RFC 2045 semantics


$new_string = chunk_split(base64_encode($data));


Эта функция значительно быстрее, чем ereg_replace().



convert_cyr_string


convert_cyr_string -- переводит из одной русской кодовой таблицы в другую


Описание string convert_cyr_string(string str, string from, string to);


Эта функция переводит указанную строку из одной русской кодовой таблицы в другую. Аргументы from и to являются одним символом, который определяет исходную и целевую кодовую таблицу. Поддерживаемые типы:


  • k - koi8-r

  • w - windows-1251

  • i - iso8859-5

  • a - x-cp866

  • d - x-cp866

  • m - x-mac-cyrillic




crypt


crypt -- шифрует строку методом DES


Описание string crypt(string str, string [salt]);


crypt() Зашифрует строку, используя стандартный метод шифрации UNIX DES. Аргументы являются строкой, которую нужно зашифровать, и дополнительная 2-символная строка salt, на которой будет основываться шифрование. См. документацию UNIX для дополнительной информации.


Если аргумент salt отсутствует, то он буде генерирован случайным образом.


Некоторые операционные системы поддерживают больше одного типа шифрования. В действительности, иногда метод шифрования DES заменятеся основанными на MD5 алгоритмами. Тип шифрования устанавливается аргументом salt. Во время установки PHP определяет возможности функций шифрации и будет поддерживать аргумент salt для других методов шифрации. Если параметр salt не установлен, то PHP автоматически сгенерирует стандартный 2-х символный ключ DES, если же в системе по умолчанию установлен тип шифрации MD5, то будет сгенерирован MD5-совместимый ключ.


Стандартная шифрация DES crypt() содержит ключ в двух первых символах потока вывода.


Нет других функций дешифрации, кроме crypt() использующей однопроходный алгоритм.



echo


echo -- выводит одно или более строк


Описание echo(string arg1, string [argn]...);


Выводит все параметры.


echo() в действительности не является функцией (это языковая конструкция), поэтому вам не обязательно использовать круглые скобки.


Пример. echo


echo "Hello World";


См. также: print() printf() flush()



explode


explode -- разбивает строку на строки


Описание array explode(string separator, string string);


Возвращает массив строк, содержащий в элементы, разделенные срокой separator.


Пример. explode()


$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);


См. также split() и implode().



flush


flush -- освобождает буферы вывода


Описание void flush(void);


Освобождает буферы вывода PHP и все остальные, использумые PHP (CGI, web-сарвер и т.д.). Это эффективная возможность выдать все накопленное в буферах в броузер пользователя.



get_meta_tags


get_meta_tags -- Извлекает все содержимое атрибутов тег meta из файла и возвращает в массиве


Описание array get_meta_tags(string filename, int [use_include_path]);


Открывает файл filename и обрабатывает его строка за строкой и извлекает теги <meta>.


Пример. Теги Meta


<meta name="author" content="name">
<meta name="tags" content="php3 documentation">
</head> <!-- parsing stops here -->


(обратите внимание на окончание строк - PHP3 использует интеллектуальную функцию для обработки входного потока, поэтому файлы MAC не будут работать на Unox).


Значение свойства name становится ключем, значение свойства content становится значением возвращаемого массива, поэтому вы можете легко использовать стандартные функции для его обработки или доступа к отдельным элементам. Специальные символы в значении свойства заменяются символом "_", остальные переводятся в нижний регистр.


Установка параметра use_include_path в 1 приведет к тому, что PHP3 будет пытаться открыть файл по стандартному include пути.



htmlspecialchars


htmlspecialchars -- Переводит специальные символы в коды HTML


Описание string htmlspecialchars(string string);


Определенные символы имеют особое значение в HTML и должны быть заменены кодами HTML, если они таковые имеют. Эта функция возвращает строки с произведенными такими изменениями.


Эта функция полезна для отчистки полученного от пользователя текста от разметки HTML (доски сообщений, гостевые книги).


В настоящее время осуществляются следующие замены:


  • "&" (амперсанд) становится "&"

  • """ (двойные кавычки) становится """

  • "<" (знак меньше) становится "<"

  • ">" (знак больше) становится ">"




Следует отметить, что эта функция не заменяет ничего, кроме указанного выше. Для полной обработки см. функцию htmlentities().


См. также htmlentities() и nl2br().



htmlentities


htmlentities -- Переводит все возможные символы в коды HTML.


Описание string htmlentities(string string);


Эта функция идентична htmlspecialchars() , кроме того, что все символы, которые имеют соответсвующий код HTML заменяются на этот HTML код.


В настоящее время применятеся кодовая таблица ISO-8859-1.


См. также htmlspecialchars() и nl2br().



implode


implode -- Объединяет массив элементов в строку


Описание string implode(array pieces, string glue);


Возвращает строку, содержащую совокупность всех элементов массива в том же порядке, со строкой glue между каждым элементом.


Пример. implode()


$colon_separated = implode($array, ":");


См. также explode(), join(), и split().



join


join -- Присоединяет элементы массива к строке


Описание string join(array pieces, string glue);


join() является псевдонимом функции implode(), и полностью ей идентична.



ltrim


ltrim -- Удаляет пробелы из начала строки.


Описание string ltrim(string str);


Эта функция удаляет пробелы из начала строки и возвращает обрезаную строку.


См. также chop() и trim().



md5


md5 -- Вычисляет значение md5 для строки


Описание string md5(string str);


Вычисляет значение MD5 для строки str используя алгоритм RSA Data Security, Inc. MD5 Message-Digest.



nl2br


nl2br -- Переводит символы новой строки в HTML-тег разрыва строки


Описание string nl2br(string string);


Возвращает string с "
" вставляемыми перед каждой новой строкой.


См. также htmlspecialchars() и htmlentities().



Ord


Ord -- Возвращает ASCII-значение символа


Описание int ord(string string);


Возвращает ASCII-значение первого символа строки string. Эта функция дополняет функцию chr().


Пример. ord()


if (ord($str) == 10) {
echo("The first character of \$str is a line feed.\n");
}




См. также chr().



parse_str


parse_str -- Разбирает строку на переменные


Описание void parse_str(string str);


Разбирает строку str , как если бы она была URL-строкой запроса, и устанавливает переменные текущей среды.


Пример. Using parse_str()


$str = "first=value&second[]=this+works&second[]=another";
parse_str($str);
echo $first; /* prints "value" */
echo $second[0]; /* prints "this works" */
echo $second[1]; /* prints "another" */



print


print -- выводит строку


Описание print(string arg);


Выводит строку arg.


См. также: echo() printf() flush()



printf


printf -- выводит форматированную строку


Описание int printf(string format, mixed [args]...);


Осуществляет вывод в соответствии с параметром format, который расписан в описании функции sprintf().


См. также: print(), sprintf(), и flush().



quoted_printable_decode


quoted_printable_decode -- переводит строку в кавычках в 8-битную строку


Описание string quoted_printable_decode(string str);


Эта функция возвращает 8-битную строку, соответствующую декодированной сроке в кавычках. Эта функция аналогична imap_qprint(), за исключением того, что она не требует IMAP модуль для работы.



QuoteMeta


QuoteMeta -- выделяет meta символы


Описание int quotemeta(string str);


Возвращает обработанную str с символами (\) перед каждым из следующих символов:


. \\ + * ? [ ^ ] ( $ )


См. также addslashes(), htmlentities(), htmlspecialchars(), nl2br(), и stripslashes().



rawurldecode


rawurldecode -- декодирует URL-кодированную строку


Описание string rawurldecode(string str);


Возвращает строку, в которой последовательность из символа процента (%) с последующих 2-х шестнадцатиричных цифр заменяется соответствующим буквенным символом. Например, строку


foo%20bar%40baz


будет заменена на


foo bar@baz


См. также rawurlencode().



rawurlencode


rawurlencode -- URL-кодирует строку в соответствии с RFC1738


Описание string rawurlencode(string str);


Возвращает строку, в которой все не буквенно-цифровые символы, кроме - _ . заменяются на знак (%) с последующими двумя шестнадцатиричными цифрами. Это кодирование, описанное в RFC1738, применяется для защиты символов от интерпритации их как особых разделителей URL, и для защиты URL от искажения системами передачи данных с переводом символов (как некоторые e-mail системы). Например, если вы хотите включить пароль в ftp URL:


Пример. rawurlencode()


|
echo "<A HREF="ftp://user:", rawurlencode ("foo @+%/"),
"@ftp.my.com/x.txt">";
|


Или, если передаете информацию в качестве части URL:


Пример. rawurlencode()


|
echo "<A HREF="http://x.com/department_list_script/",
rawurlencode ("sales и marketing/Miami"), "">";
|


См. также rawurldecode().



setlocale


setlocale -- Устанавливает локальную информацию


Описание string setlocale(string category, string locale);


category является строкой, определяющей категорию функций, изменяемую строкой locale:


  • LC_ALL для всех нижеследующих

  • LC_COLLATE для сравнения строк - в данное время не обрабатывается PHP

  • LC_CTYPE для классификации и перевода символов, например: strtoupper()

  • LC_MONETARY для localeconv() - в данное время не обрабатывается PHP

  • LC_NUMERIC для десятичного разделителя

  • LC_TIME для даты и времени, форматируемых функцией strftime()


Если locale является пустой строкой "", то локальные имена будут установлены из значений переменных окружения с теми же именами, как у вышеописанных категорий, или из "LANG".


Если locale равна нулю или "0", то местные установки не изменяются, возвращаются текущие установки.


Setlocale возвращает новое текущее locale, или false, если locale функционально не поддерживается текущей платформой, указанный locale не существует или категории неверное. Неверное имя категории также вызывает предупреждающее сообщение.



soundex


soundex -- вычисляет soundex ключ для строки


Описание string soundex(string str);


Вычисляет soundex ключ для str.


Ключ soundex имеет такое свойство, что слова, произносимые одинакого, имеют одинаковый soundex ключ, и это может быть использовано в поиске в базах данных, когда вы знаете произношение и не занете написание. Эта soundex функция возвращает строку длиной 4 символа, начинающуюся буквой.


Эта функция описана Дональдом Кнутом в книге "The Art Of Computer Programming, vol. 3: Sorting и Searching", Addison-Wesley (1973), pp. 391-392.


Пример. Soundex


soundex("Euler") == soundex("Ellery") == "E460";
soundex("Gauss") == soundex("Ghosh") == "G200";
soundex("Knuth") == soundex("Kant") == "H416";
soundex("Lloyd") == soundex("Ladd") == "L300";
soundex("Lukasiewicz") == soundex("Lissajous") == "L222";



sprintf


sprintf -- возвращает форматированную строку


Описание sprintf(string format, mixed [args]...);


Возвращает строку, обрабатываемую в соответствии с форматирующей строкой format.


Форматирующая строка, содержащая ноль или более директив: обычные символы (кроме %) которые копируются прямо в результат, и that are copied directly to the result, и описания изменений, каждое из которых выполняет определенные действия. Это применительно и к sprintf() и к printf()


Каждое описание изменений состоит из следующих элементов, в порядке:


Дополнительный описатель заполнения, который говорит, какие символы будут использоваться для заполнения результата до правильног размера строки. Это могут быть пробелы или 0 (символ нуля). По умолчанию заполняется пробелами. Алтернативный символ заполнения может быть определен одинарной кавычкой ("). См. примеры ниже.


Дополнительный описатель выравнивания , который говорит, что результат должен быть выравнен по левому или по правому краю. По умолчанию выравнивание происходит по правому краю; символ - приведет к вырвниванию по левому краю.


Дополнительный описатель ширины, который говорит, с каким количеством символов (минимум) пожет производится данная замена.


Дополнительный описатель точности, который говорит, сколько десятичных знаков следует отображать для чисел с плавающей точкой. Этот описатель не действует на остальные типы, кроме double. (другая полезная функция для форматирования чисел это number_format().)


Описатель типа, который говорит о том, как тип данных аргумента должен трактоваться. Возможные типы:


  • % - символ процента. Аргумент не требуется.

  • b - аргумент трактуется как integer и представляется как двоичное число.

  • c - аргумент трактуется как integer и представляется как символ с ASCII значением.

  • d - аргумент трактуется как integer и представляется как десятичное число.

  • f - аргумент трактуется как double и представляется как число с плавающей точкой.

  • o - аргумент трактуется как integer и представляется как восьмиричное число.

  • s - аргумент трактуется и представляется как строка.

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

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




См. также: printf(), number_format()


Примеры


Пример 1. sprintf: числа с нулями


$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);


Пример. sprintf: форматирование денежной еденицы


$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money will output "123.1";
$formatted = sprintf ("%01.2f", $money);
// echo $formatted will output "123.10"



strchr


strchr -- Находит первое появление символа.


Описание string strchr(string haystack, string needle);


Эта функция является псевдонимом для функции strstr(), и полностью ей идентична.



strcmp


strcmp -- Двоичное сравнение строк (безопасное)


Описание int strcmp(string str1, string str2);


Возвращает < 0 если str1 меньше чем str2; > 0 если str1 больше чем str2, и 0 если они равны.


Следует отметить, что это сравнение чуствительно к регистру.


См. также ereg(), substr(), и strstr().



strcspn


strcspn -- находит длину нечального сегмента, не совпадающего с маской


Описание int strcspn(string str1, string str2);


Возвращает длину начального сегмента str1, который не содержит любые символы в str2.


См. также strrev
strspn().



StripSlashes


StripSlashes -- удаляет символы \ из строки


Описание string stripslashes(string str);


Возвращает строку с вырезанными символами \. (\" заменяется на " и так далее). Двойные \\ заменяются на \.


См. также addslashes().



strlen


strlen -- Возвращает длину строки


Описание int strlen(string str);


Возвращает длину строки string.



strrpos


strrpos -- Находит позицию последего появления символа в строке


Описание int strrpos(string haystack, char needle);


Возвращает номер позиции последнего появления символа needle в строке haystack. Следует отметить, что needle в этом случае может быть только единственным символом. Если в качестве параметра needle указывается строка, то только первый символ будет использован.


Если needle не найден, то возвращается false.


Если параметр needle не является строкой, то он переводится в десятичное число и рассматривается как числовое значение символа.


См. также strpos(), strrchr(), substr(), и strstr().



strpos


strpos -- Находит позицию первого появления строки.


Описание int strpos(string haystack, string needle, int [offset]);


Возвращает номер позиции первого появления строки needle в строке haystack. В отличии от strrpos(), эта функция может рассматривать целую строку в качестве параметра needle и целая строка будет использоваться.


Если параметр needle не найден, то возвращается false.


Если параметр needle не является строкой, то он переводится в целое число и рассматривается как числовое значение символа.


Дополнительный параметр offset позволяет вам пределять, с какого символа в строке haystack начинать поиск. Позиция возвращается все равно относительно начала строки haystack.


См. также strrpos(), strrchr(), substr(), и strstr().



strrchr


strrchr -- Находит последнее появление символа в строке


Описание string strrchr(string haystack, string needle);


Эта функция возвращает позицию haystack, с которой начинается последнее появление needle и продолжается до конца haystack.


Возвращает false если needle не найдена.


Если параметрneedle содержит более чем один символ, то используется первый символ.


Если параметр needle не является строкой, то он переводится в целое число и рассматривается как числовое значение символа.


Пример. strrchr()


// получение последней директории в $PATH
$dir = substr( strrchr( $PATH, ":" ), 1 );


// получение всего после последней новой строки
$text = "Line 1\nLine 2\nLine 3";
$last = substr( strrchr( $text, 10 ), 1 );


См. также substr() и strstr().



strrev


strrev -- Переворачивает строку


Описание string strrev(string string);


Возвращает перевернутую строку string.



strspn


strspn -- Находит длину начального сегмента, отвечающего маске


Описание int strspn(string str1, string str2);


Возвращает длину начального сегмента строки str1, который содержит все символы из str2.


См. также strcspn().



strstr


strstr -- Находит первое появление строки


Описание string strstr(string haystack, string needle);


Возвращает все haystack с первого появления строкиneedle и до конца.


Если параметр needle не найден, то возвращается false.


Если параметр needle не является строкой, то он переводится в целое число и рассматривается как числовое значение символа.


См. также strrchr(), substr(), и ereg().



strtok


strtok -- Разбивает строку


Описание string strtok(string arg1, string arg2);


strtok() используется для разбития строки. Это значит, что если вы имеете строку типа "This is an example string", то вы можете разбить эту строку на отдельные слова используя пробел в качестве разделителя.


Пример. strtok()




$string = "This is an example string";
$tok = strtok($string," ");
while($tok) {
echo "Word=$tok<br>";
$tok = strtok(" ");
}



Следует отметить, что только первый вызов функции strtok использует строковый аргумент. Для каждого последующего вызова функции strtok необходим только разделитель, так как это позволяет контролировать положение в текущей строке. Для начала заново или для разбития новой строки вам необходимо просто вызвать strtok с параметром строки опять для ее инициализации. Вы можете вставлять несколько разделителей в параметр разделителя. Строка будет разделяться при обнаружении любого из указанных символов.


Также будьте внимательны к разделителям равным "0". Это может вызвать ошибку в определенных выражених.


См. также split() и explode().



strtolower


strtolower -- Переводит строку в нижний регистр


Описание string strtolower(string str);


Возвращает сроку string со всеми буквенными символами, переведенными в нижний регистр.


Помните, что буквенные символы определяются текущими локальными установками.


См. также strtoupper() и ucfirst().



strtoupper


strtoupper -- Переводит строку в верхний регистр


Описание string strtoupper(string string);


Возвращает строку string со всеми буквенными символами, переведенными в верхний регистр.


Следует отметить, что буквенные символы определяются текущими локальными установками.


См. также strtolower() и ucfirst().



str_replace


str_replace -- Заменяет все вхождения строки на указанную строку


Описание string str_replace(string needle, string str, string haystack);


Эта функция заменяет все вхождения строки needle в строке haystack на указанную строку str. Если вам не требуются причудливые правила замены, то вам следует всегда использовать эту функцию вместо ereg_replace().


Пример. str_replace()


$bodytag = str_replace("%body%", "black", "<body text=%body%>");


Эта функция двоично-безопасная.


См. также ereg_replace().



strtr


strtr -- Переводит определенные символы


Описание string strtr(string str, string from, string to);


Эта функция обрабатывает строку str, заменяя все появления каждого символа из строки from на соответствующие символы в строке to, и возвращает результат.


Если строки from и to имеют различную длину, то дополнительные символы более длинной из строк игнорируются.


Пример. strtr()


$addr = strtr($addr, "дец", "aao");


См. также ereg_replace().



substr


substr -- Возвращает часть строки


Описание string substr(string string, int start, int [length]);


Эта функция возвращает часть строки string, определяемую параметрами start (начало) и length (длина).


Если параметр start положительный, то возвращаемая строка будет начинаться с start-ого символа строки string.


Примеры:


$rest = substr("abcdef", 1); // вернет "bcdef"
$rest = substr("abcdef", 1, 3); // вернет "bcd"


Если параметр start отрицательный, то возвращаемая строка будет начинаться start-ого символа от конца строкиstring. Примеры:


$rest = substr("abcdef", -1); // вернет "f"
$rest = substr("abcdef", -2); // вернет "ef"
$rest = substr("abcdef", -3, 1); // вернет "d"


Если параметр length указан и он положительный, то возвращаемая строка закончится за length символов от начала start. Это приведет к строке с отрицательной длиной (потому что начало будет за концом строки), поэтому возвращаемая строка будет содержать один символ от начала строки start.


Если length указан и он отрицательный, то возвращаемая строка закончится за length от конца строки string. Это приведет к строке с отрицательной длиной, поэтому возвращаемая строка будет содержать один символ от начала строки start. Примеры:


$rest = substr("abcdef", -1, -1); // вернет "bcde"


См. также strchr() и ereg().



trim


trim -- Обрезает пробелы с начала и с конца строки


Описание string trim(string str);


Эта функция обрезает пробеды с начала и с конца строки и возвращает обрезанную строку.


См. также chop() и ltrim().



ucfirst


ucfirst -- Переводит первый символ строки в верхний регистр


Описание string ucfirst(string str);


Делает заглавным первый символ строки str, если этот символ буквенный.


Следует напомнить, что "буквенные" символы определяются текущими настройками.


См. также strtoupper() и strtolower().



ucwords


ucwords -- Переводит в верхний регистр первые символы каждого слова в строке


Описание string ucwords(string str);


Делает заглавным первый символ каждого слова в строке str, если этот символ буквенный.


См. также strtoupper(), strtolower() и ucfirst().



 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Adabas D функции

Специфичные функции Apache

Функции обработки массивов

Математические BC (произвольной точности) функции

Календарные Функции

Функции Даты/Времени

dBase функции

Функции dbm

Функции для работы с каталогами

Функции запуска программ

Функции работы с filePro

Функции файловой системы

Функции, связанные с HTTP

Функции работы с Hyperwave

Функции работы с изображениями

Функции IMAP

PHP опции и информация

Функции работы с Informix

LDAP Функции

Почтовые функции

Математические функции

Дополнительные функции

Функции mSQL

Функции MySQL

Функции для работы с Sybase

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

Функции ODBC

Функции Oracle

Функции PDF

Функции PostgreSQL

Функции регулярных выражений

Функции семафоров и разделяемой памяти

Solid (надежные) функции

Функции SNMP

Функции URL

Функции переменных

Функции Vmailmgr

Функции Gz-файлов

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь