|
 |
CXXI. Функции обработки строк
Эти функции предназначены для выполнения различных манипуляций со
строками. Более специализированные функции см. в разделах, посвященных
регулярным выражениям и обработке URL.
Для получения общей информации о работе со строками, особенно об
использовании одиночных и двойных кавычек и экранировании символов,
смотрите главу "Строки"
в разделе "Типы" .
Эти функции всегда доступны. Для использования этих функций не требуется проведение установки,
поскольку они являются частью ядра PHP.
Перечисленные ниже константы определены данным расширением и могут быть
доступны только в том случае, если PHP был собран с
поддержкой этого расширения или же в том случае, если
данное расширение подгружается во время выполнения.
- Содержание
- addcslashes -- Экранирует спецсимволы в стиле языка C
- addslashes -- Экранирует спецсимволы в строке
- bin2hex --
Преобразует бинарные данные в шестнадцатиричное представление
- chop -- Псевдоним функции rtrim()
- chr -- Возвращает символ по его коду
- chunk_split -- Разбивает строку на фрагменты
- convert_cyr_string --
Преобразует строку из одной кириллической кодировки в другую
- convert_uudecode --
Decode a uuencoded string
- convert_uuencode --
Uuencode a string
- count_chars --
Возвращает информацию о символах, входящих в строку
- crc32 -- Вычисляет CRC32 для строки
- crypt -- Необратимое шифрование (хэширование)
- echo -- Выводит одну или более строк
- explode -- Разбивает строку на подстроки
- fprintf -- Записывает отформатированную строку в поток
- get_html_translation_table --
Возвращает таблицу преобразований, используемую функциями
htmlspecialchars() и
htmlentities()
- hebrev --
Преобразует текст на иврите из логической кодировки в визуальную.
- hebrevc --
Преобразует текст на иврите из логической кодировки в визуальную с
преобразованием перевода строки.
- html_entity_decode --
Преобразует HTML сущности в соответствующие символы
- htmlentities --
Преобразует символы в соответствующие HTML сущности.
- htmlspecialchars --
Преобразует специальные символы в HTML сущности
- implode -- Объединяет элементы массива в строку
- join -- Псевдоним функции implode()
- levenshtein --
Вычисляет расстояние Левенштейна между двумя строками
- localeconv -- Возвращает информацию о числовых форматах
- ltrim --
Удаляет пробелы из начала строки
- md5_file -- Возвращает MD5 хэш файла
- md5 -- Возвращает MD5 хэш строки
- metaphone -- Возвращает ключ metaphone для строки
- money_format -- Форматирует число как денежную величину
- nl_langinfo --
Возвращает информацию о языке и локали
- nl2br --
Вставляет HTML код разрыва строки перед каждым переводом строки
- number_format -- Форматирует число с разделением групп
- ord -- Возвращает ASCII код символа
- parse_str -- Разбирает строку в переменные
- print -- Выводит строку
- printf -- Выводит отформатированную строку
- quoted_printable_decode --
Раскодирует строку, закодированную методом quoted printable
- quotemeta -- Экранирует специальные символы
- rtrim --
Удаляет пробелы из конца строки
- setlocale -- Устанавливает локаль
- sha1_file -- Возвращает SHA1 хэш файла
- sha1 -- Возвращает SHA1 хэш строки
- similar_text --
Вычисляет степень похожести двух строк
- soundex -- Возвращает ключ soundex для строки
- sprintf -- Возвращает отформатированную строку
- sscanf --
Разбирает строку в соответствии с заданным форматом
- str_ireplace --
Регистро-независимый вариант функции
str_replace().
- str_pad --
Дополняет строку другой строкой до заданной длины
- str_repeat -- Возвращает повторяющуюся строку
- str_replace --
Заменяет строку поиска на строку замены
- str_rot13 -- Выполняет над строкой преобразование ROT13
- str_shuffle -- Переставляет символы в строке
- str_split --
Преобразует строку в массив
- str_word_count --
Возвращает информацию о словах, входящих в строку
- strcasecmp --
Сравнение строк без учета регистра, безопасное для данных в двоичной
форме
- strchr -- Псевдоним функции strstr()
- strcmp --
Сравнение строк, безопасное для данных в двоичной форме
- strcoll -- Сравнение строк с учетом текущей локали
- strcspn --
Возвращает длину участка в начале строки, не соответствующего маске
- strip_tags -- Удаляет HTML и PHP тэги из строки
- stripcslashes --
Удаляет экранирование символов, произведенное функцией
addcslashes()
- stripos --
Возвращает позицию первого вхождения подстроки без учета регистра
- stripslashes --
Удаляет экранирование символов, произведенное функцией
addslashes()
- stristr --
Регистро-независимый вариант функции strstr().
- strlen -- Возвращает длину строки
- strnatcasecmp --
Сравнение строк без учета регистра с использованием алгоритма
"естественного упорядочения"
- strnatcmp --
Сравнение строк с использованием алгоритма "естественного
упорядочения"
- strncasecmp --
Сравнение первых n символов строк без учета регистра, безопасное для
данных в двоичной форме
- strncmp --
Сравнение первых n символов строк без учета регистра, безопасное для данных в двоичной форме
- strpbrk --
Search a string for any of a set of characters
- strpos --
Возвращает позицию первого вхождения подстроки
- strrchr --
Находит последнее вхождение подстроки
- strrev -- Переворачивает строку
- strripos --
Возвращает позицию последнего вхождения подстроки без учета регистра
- strrpos --
Возвращает позицию последнего вхождения символа
- strspn --
Возвращает длину участка в начале строки, соответствующего маске
- strstr --
Находит первое вхождение подстроки
- strtok -- Разбивает строку
- strtolower -- Преобразует строку в нижний регистр
- strtoupper -- Преобразует строку в верхний регистр
- strtr -- Преобразует заданные символы
- substr_compare --
Безопасное для обработки данных в двоичной форме сравнение 2 строк со
смещением, с учетом или без учета регистра
- substr_count -- Возвращает число вхождений подстроки
- substr_replace -- Заменяет часть строки
- substr -- Возвращает подстроку
- trim --
Удаляет пробелы из начала и конца строки
- ucfirst --
Преобразует первый символ строки в верхний регистр
- ucwords --
Преобразует в верхний регистр первый символ каждого слова в строке
- vfprintf -- Write a formatted string to a stream
- vprintf -- Выводит отформатированную строку
- vsprintf -- Возвращает отформатированную строку
- wordwrap --
Выполняет перенос строки на данное количество символов с
использованием символа разрыва строки.
add a note
User Contributed Notes
Функции обработки строк
php at moechofe dot com
26-Apr-2005 09:34
<?php
function str_match( $str, $match )
{
$return = '';
if( eregi( '(.*)', $match, $class ) )
{
$match = '['.$regs[1].']';
for( $i=0; $i<strlen($str); $i++ )
if( ereg( '['.$class[1].']', $str[$i] ) )
$return .= $str{$i};
return $return;
}
else return false;
}
if( ! empty($_REQUEST['a']) )
$_REQUEST['a'] = str_match( $_REQUEST['a'], 'a-zA-Z0-9' );
else
$_REQUEST['a'] = 'default';
?>
Pommef
19-Mar-2005 04:15
Example: Give me everything up to the fourth occurance of '/'.
<?php
$haystack = "/home/username/www/index.php";
$needle = "/";
function strnpos($haystack, $needle, $occurance, $pos = 0) {
$res = implode($needle,$haystack);
$res = array_slice($res, $pos, $occurance);
return explode ($needle,$res);
}
?>
kristin at greenapple dot on dot ca
02-Jan-2005 11:32
I really searched for a function that would do this as I've seen it in other languages but I couldn't find it here. This is particularily useful when combined with substr() to take the first part of a string up to a certain point.
strnpos() - Find the nth position of needle in haystack.
<?php
function strnpos($haystack, $needle, $occurance, $pos = 0) {
for ($i = 1; $i <= $occurance; $i++) {
$pos = strpos($haystack, $needle, $pos) + 1;
}
return $pos - 1;
}
?>
Example: Give me everything up to the fourth occurance of '/'.
<?php
$haystack = "/home/username/www/index.php";
$needle = "/";
$root_dir = substr($haystack, 0, strnpos($haystack, $needle, 4));
echo $root_dir;
?>
Returns: /home/username/www
Use this example with the server variable $_SERVER['SCRIPT_NAME'] as the haystack and you can self-discover a document's root directory for the purposes of locating global files automatically!
20-Dec-2004 11:31
In response to hackajar <matt> yahoo <trot> com,
No string-to-array function exists because it is not needed. If you reference a string with an offset like you do with an array, the character at that offset will be return. This is documented in section III.11's "Strings" article under the "String access and modification by character" heading.
andy a t onesandzeros d o t biz
09-Nov-2004 05:54
I use these little doo-dads quite a bit. I just thought I'd share them and maybe save someone a little time. No biggy. :)
// returns true if $str begins with $sub
function beginsWith( $str, $sub ) {
return ( substr( $str, 0, strlen( $sub ) ) == $sub );
}
// return tru if $str ends with $sub
function endsWith( $str, $sub ) {
return ( substr( $str, strlen( $str ) - strlen( $sub ) ) == $sub );
}
// trims off x chars from the front of a string
// or the matching string in $off is trimmed off
function trimOffFront( $off, $str ) {
if( is_numeric( $off ) )
return substr( $str, $off );
else
return substr( $str, strlen( $off ) );
}
// trims off x chars from the end of a string
// or the matching string in $off is trimmed off
function trimOffEnd( $off, $str ) {
if( is_numeric( $off ) )
return substr( $str, 0, strlen( $str ) - $off );
else
return substr( $str, 0, strlen( $str ) - strlen( $off ) );
}
[tab!]
27-Oct-2004 03:29
//
// string strtrmvistl( string str, [int maxlen = 64],
// [bool right_justify = false],
// [string delimter = "<br>\n"])
//
// splits a long string into two chunks (a start and an end chunk)
// of a given maximum length and seperates them by a given delimeter.
// a second chunk can be right-justified within maxlen.
// may be used to 'spread' a string over two lines.
//
function strtrmvistl($str, $maxlen = 64, $right_justify = false, $delimter = "<br>\n") {
if(($len = strlen($str = chop($str))) > ($maxlen = max($maxlen, 12))) {
$newstr = substr($str, 0, $maxlen - 3);
if($len > ($maxlen - 3)) {
$endlen = min(($len - strlen($newstr)), $maxlen - 3);
$newstr .= "..." . $delimter;
if($right_justify)
$newstr .= str_pad('', $maxlen - $endlen - 3, ' ');
$newstr .= "..." . substr($str, $len - $endlen);
}
return($newstr);
}
return($str);
}
terry dot greenlaw at logicalshift dot com
12-Aug-2004 01:52
Here's a simpler "simplest" way to toggle through a set of 1..n colors for web backgrounds:
<?php
$colours = array('#000000', '#808080', '#A0A0A0', '#FFFFFF');
$color = next($colors) or $color = reset($colors);
?>
The code doesn't need to know anything about the number of elements being cycled through. That way you won't have to tracking down all the code when changing the number of colors or the color values.
| |