Лицензионные программные продукты

PHP. Функции форматирования текста.

wordwrap()

Синтаксис: string wordwrap(string stroka [, int width [, string break]])

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

ПримерОтображение
<?php
$stroka="Функция wordwrap() разбивает исходный текст на строки";
$rezult=wordwrap($stroka,20,"<br>");
echo $rezult;
?>
Функция wordwrap()
разбивает исходный
текст на строки

sprintf()

Синтаксис: string sprintf(string format [, mixed args])

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

Спецификация определяется символом "%", за которым может следовать до пяти спецификаторов в следующем порядке:

  1. Спецификатор заполнения
    Устанавливает символ, которым строка заполняется до заданного размера. По умолчанию используется пробел. Спецификатор заполнения действует только при наличии спецификатора минимальной ширины
  2. Спецификатор выравнивания
    По умолчанию дополнение строки до минимальной ширины производится с левого края (т.е., строка выравнивается по правому краю). Если добавлен символ дефиса, то строка выравнивается по левому краю
  3. Спецификатор минимальной ширины
    Представляет собой целое число, задающее минимальный размер форматированной строки. Если переданная строка меньше, то она дополняется символами, указанными в спецификаторе заполнения
  4. Спецификатор точности
    Предназначен для указания количества десятичных знаков в представлении чисел с плавающей точкой. При применении этого спецификатора для форматирования строк, он определяет максимальное количество символов, которое нужно взять из переданной строки
  5. Спецификатор типа
    Этот спецификатор предназначен для указания типа данных, которые переданы в качестве аргумента. Спецификатор может принимать одно из следующих значений:
  • b – целое число, представляемое в двоичном виде;
  • с – целое число, представляемое в виде символа с тем же ASCII кодом;
  • d – целое число, представляемое в десятичном виде;
  • f – число с плавающей точкой, представляемое в виде десятичной дроби;
  • o – целое число, представляемое в восьмеричном виде;
  • s – строка;
  • x – целое число, представляемое в шестнадцатеричном виде в нижнем регистре;
  • X – целое число, представляемое в шестнадцатеричном виде в верхнем регистре
  • ПримерОтображение
    <?php
    $day = 25;
    $month = 1;
    $year = 6;
    $summa = 31.888;
    $rezult = sprintf("Остаток на счету по состоянию
    на %02d.%02d.200%1d: %10.2f руб.", $day, $month, $year, $summa);
    echo $rezult;
    ?>
    Остаток на счету по состоянию
    на 25.01.2006: 31.89 руб.

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

    printf()

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

    sscanf()

    Синтаксис: mixed sscanf(string stroka string format [, string var ...])

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

    ПримерОтображение
    <?php
    $tekst = "Red Yellow Green";
    list($svet1, $svet2, $svet3) = sscanf($tekst, "%s %s %s");
    echo $svet1."<br>";
    echo $svet2."<br>";
    echo $svet3;
    ?>
    Red
    Yellow
    Green
    или
    ПримерОтображение
    <?php
    $tekst = "Red Yellow Green";
    sscanf($tekst, "%s %s %s",$svet1, $svet2, $svet3);
    echo $svet1."<br>";
    echo $svet2."<br>";
    echo $svet3;
    ?>
    Red
    Yellow
    Green
    или в массив
    ПримерОтображение
    <?php
    $tekst = "25/01/1963 year.";
    $var = sscanf($tekst,"%2d/%2s/%4d %s");
    echo ("Число: $var[0] <br>");
    echo ("Месяц: $var[1] <br>");
    echo ("Год: $var[2] <br>");
    echo ("Хвостик: $var[3]");
    ?>
    Число: 25
    Месяц: 01
    Год: 1963
    Хвостик: year.

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


    PHP



    © Copyright 2005 www.e-inform.ru
    |