Сделай Сам Свою Работу на 5

Определение длины строки и преобразование символов/кодов





 

Strlen()

 

int strlen ( string string )

 

Возвращает длину строки, которую принимает в качестве аргумента (пример 4.7.3.1.1):

 

<?

$string = "Hello, world!!!";

$string_len = strlen($string);

echo ($string_len);

?>

 

 

Chr()

 

string chr ( int ascii )

 

Принимает в качестве аргумента ASCII код символа и возвращает соответствующий этому коду фактический символ (пример 4.7.3.2.1):

 

<?

$str = chr(36);

echo ($str); // возвращает символ "$"

?>

 

Ord()

 

int ord ( string string )

 

Выполняет действие, обратное функции chr() (пример 4.7.3.3.1):

 

<?

$str = ord('$');

echo($str); // возвращает 36

?>

 

Trim-функции

 

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

 

" " (ASCII 32 (0x20)), символ пробела.

"\t" (ASCII 9 (0x09)), символ табуляции.

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

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

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

"\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

 

 

Trim()

 

string trim ( string str [, string charlist] )

 

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



 

Пример (4.7.4.1.1):

 

<?

$string = trim(" Hello, world! ");

?>

 

<?

$str = " Hello, world! ";

$str1 = trim(" Hello, world! ");

$str_len = strlen($str);

$str1_len = strlen($str1);

echo(" размер исходной строки '$str' = $str_len, <br>

размер строки после удаления пробелов = $str1_len");

?>

 

Размер исходной строки 'Hello, world!' = 19,

размер строки поле удаления пробелов = 13

 

 

Ltrim(), rtrim() и chop()

 

Функция ltrim() удаляет из строки начальные пробельные символы (т.е., те, которые слева); rtrim() – конечные пробельные символы. Функция chop() является синонимом функции rtrim().

 

Функции форматного вывода printf(), sprintf() и ввода sscanf()

 

· int printf ( string format [, mixed args] ) - ыыводит строку, отформатированную в соответствии с аргументом format, описанном в документации функции sprintf(), возвращает длину выведенной строки

· string sprintf ( string format [, mixed args] ) - возвращает строку, созданную с использованием строки формата format.

· mixed sscanf ( string str, string format [, mixed & ...] ) - разбирает строку в соответствии с заданным форматом

 

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



 

Этими функциями можно пользоваться просто как функциями вывода (пример 4.7.5.1):

 

<?

printf("Hello!"); // выводит "Hello!"

sprintf("Hello!"); // сама по себе ничего не выводит,

$str = sprintf("Hello!"); // а просто возвращает строку,

printf($str); // которую затем можно вывести в выходной поток

?>

 

Строка формата состоит из директив: обычных символов (за исключением %), которые копируются в результирующую строку, и описатели преобразований, каждый из которых заменяется на один из параметров. Это относится также к fprintf(), sprintf() и printf().

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

· Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью '. См. примеры ниже.

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

· Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.

· Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Имеет смысл только для числовых данных типа float.



· Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:

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

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

- c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.

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

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

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

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

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

- s - аргумент трактуется как строка.

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

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

 

Начиная с PHP 4.0.6 в строке формата поддерживается нумерация и изменение порядка параметров.

 

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

 

<?

$format = "There are %d monkeys on the %s";

printf($format, $num, $location);

?>

 

Этот код выведет "There are 5 monkeys on the tree". Теперь представьте, что строка формата содержится в отдельном файле, который потом будет переведен на другой язык, и мы переписываем ее в таком виде:

 

Пример 4.7.5.2:

 

<?

$format = "The %s contains %d monkeys";

printf($format, $num, $location);

?>

 

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

 

Пример 4.7.5.3:

 

<?

$format = "The %2\$s contains %1\$d monkeys";

printf($format, $num, $location);

?>

 

Нумерация аргументов имеет еще одно применение: она позволят вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров. Пример 4. Изменение порядка параметров

 

Пример 4.7.5.4:

 

<?

$format = "The %2\$s contains %1\$d monkeys.

That's a nice %2\$s full of %1\$d monkeys.";

printf($format, $num, $location);

?>

 

 

Функция sscanf() похожа на функцию printf(), но используется не для вывода, а для ввода данных. sscanf() интерпретирует строку str в соответствии с форматом format. Если переданы только эти два аргумента, будет возвращен массив. В противном случае, считанные из строки значения будкт присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.

Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что например символ табуляци \t в строке формата соответствует символу пробела во входной строке.

 

Пример 4.7.5.5:

 

<?

// получаем серийный номер

list($serial) = sscanf("SN/2350001", "SN/%d");

// и дату изготовления

$mandate = "Январь 01 2000";

list($month, $day, $year) = sscanf($mandate, "%s %d %d");

echo "Узел $serial был изготовлен: $year-" . substr($month, 0, 3) . "-$day\n";

?>

 

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

 

Пример 4.7.5.6:

 

<?

// получить имя автора и сформировать запись в формате DocBook

$auth = "24\tLewis Carroll";

$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);

echo "<author id='$id'>

<firstname>$first</firstname>

<surname>$last</surname>

</author>\n";

?>

 

 

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

 

string convert_cyr_string ( string str, string from, string to )

 

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

 

- k - koi8-r

- w - windows-1251

- i - iso8859-5

- a - x-cp866

- d - x-cp866

- m - x-mac-cyrillic

 

 

Функции работы с блоками текста

 

Wordwrap()

 

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

 

Функция wordwrap() разбивает исходный текст на строки с определенными завершающими символами. Согласно синтаксису, эта функция разбивает блок текста str на несколько строк, которые завершаеются символами break, так, чтобы в одной строке было не более width букв. Поскольку разбиение происходит по границам слов, текст остается вполне читаемым.

 

Пример (4.7.7.1.1):

 

<?

$str = "Вставай, страна огромная";

$mod_str = wordwrap($str,5,"\t");

echo($mod_str);

?>

Str_replace()

 

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

 

Эта функция возвращает строку или массив subject, в котором все вхождения search заменены на replace. Если не нужны сложные правила поиска/замены, использование этой функции предпочтительнее ereg_replace() или preg_replace().

 

Пример 4.7.7.2.1:

 

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

 

 

Substr_replace()

 

string substr_replace ( string string, string replacement, int start [, int length] )

 

Заменяет часть строки string, начинающуюся с символа с порядковым номером start и длиной length, строкой replacement и возвращает результат.

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

Если start - отрицательное число, замена начинается с символа с порядковым номером start, считая от конца строки.

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

 

Пример 7.7.3.1:

 

<?

$var = 'ABCDEFGH:/MNRPQR/';

echo "Оригинал: $var<hr />\n";

 

/* Обе следующих строки заменяют всю строку $var на 'bob'. */

echo substr_replace($var, 'bob', 0) . "<br />\n";

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

 

/* Вставляет 'bob' в начало $var. */

echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

 

/* Обе следующих строки заменяют 'MNRPQR' in $var на 'bob'. */

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

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

 

/* Удаляет 'MNRPQR' из $var. */

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

?>

 

 

Strtr()

 

string strtr ( string str, string from, string to )

string strtr ( string str, array replace_pairs )

 

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

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

 

Пример 4.7.7.4.1:

 

<?

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

?>

 

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

 

Пример 4.7.7.4.2:

 

<?

$trans = array("hello" => "hi", "hi" => "hello");

echo strtr("hi all, I said hello", $trans);

?>

 

Этот код выведет:

 

hello all, I said hi

 

 

Stripslashes()

 

string stripslashes ( string str )

 

 

Удаляет экранирующие бэкслэши. (\' преобразуется в ', и т.д.). Двойные бэкслэши (\\) преобразуется в одиночные(\).

stripslashes() используется, например, когда директива конфигурации magic_quotes_gpc включена (она включена по умолчанию), и экранирование символов не требуется. Например, данные не вставляются в базу данных, а просто выводятся в браузер.

 

Пример 4.7.7.5.1:

 

<?

$str = "Is your name O\'reilly?";

 

// выводит: Is your name O'reilly?

echo stripslashes($str);

?>

 

 

Addslashes()

 

string addslashes ( string str )

 

Возвращает сроку str, в которой перед каждым спецсимволом добавлен обратный слэш (\), например для последующего использования этой строки в запросе к базе данных. Экранируются одиночная кавычка ('), дойная кавычка ("), обратный слэш (\) и NUL (байт NULL).

Функция addslashes() часто применяется при записи в базу данных. Предположим, если нужно внести в базу данных имя O'reilly, то символ ' должен быть экранирован. В большинстве баз данных для этого используется \, строка будет выглядеть как O\'reilly. Заметьте, что сам символ \ в базу данных записан не будет. Если директива конфигурации magic_quotes_sybase имеет значение on, то символ ' будет экранироваться добавлением еще одного ' вместо \.

Директива конфигурации magic_quotes_gpc по умолчанию имеет значение on, при этом функция addslashes() автоматически применяется ко всем данным GET, POST, и COOKIE. Не используйте addslashes() для данных, обработанных magic_quotes_gpc, чтобы избежать двойного экранирования. Для проверки состояния этой директивы используется get_magic_quotes_gpc().

 

Пример 4.7.7.6.1:

 

<?

$str = "Is your name O'reilly?";

 

// выводит: Is your name O\'reilly?

echo addslashes($str);

?>

 

 

Stripcslashes()

 

string stripcslashes(string str)

 

Преобразует спецсимволы в их двоичное представление – возвращает строку, в которой закомментированные обратным слешем спецсимволы, (с целью визуального отображения), преобразуются в их двоичное представление. Функция распознает C-подобные записи (восьмеричные и шестнадцатеричные последовательности \n, \r и т.д.).

 

 

Addcslashes()

 

string addcslashes(string str, string charlist)

 

Функция добавление слешей перед специальными символами строки. Возвращает строку str, в которую вставлены символы обратного слеша перед перечисленными в списке charlist символами. Это позволяет преобразовывать символы, которые не печатаются в их визуальное С-представление.

 

Quotemeta()

 

string quotemeta(string str)

 

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

 

Strrev()

 

string strrev(string str)

 

Производит реверс строки.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.