Смекни!
smekni.com

Учебник php (стр. 9 из 26)

· Опциональный спецификатор выравнивания, определяющий, будет результат выровнен по правому или по левому краю поля. По умолчанию производится выравнивание по правому краю, однако можно указать и левое выравнивание, задав символ - (минус).

· Необязательное число, определяющее размер поля для вывода величины. Если результат не будет в поле помещаться, то он &quo;вылезет" за края этого поля, но не будет усечен.

· Необязательное число, предваренное точкой ".", предписывающее, сколько знаков после запятой будет в результирующей строке. Этот спецификатор учитывается только в том случае, если происходит вывод числа с плавающей точкой, в противном случае он игнорируется.

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

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

· c - выводится символ с указанным в аргументе кодом

· d - целое число

· f - число с плавающей точкой

· o - восьмеричное целое число

· s - строка символов

· x - шестнадцатиричное целое число с маленькими буквами a-z

· X - шестнадцатиричное целое число с большими буквами A-Z

Вот как можно указать точность представления чисел с плавающей точкой:

$money1 = 68.75;$money2 = 54.35;$money = $money1 + $money2;// echo $money выведет "123.1"...$formatted = sprintf ("%01.2f", $money);// echo $formatted выведет "123.10"!

Вот пример вывода целого числа, предваренного нужным количеством нулей:

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

sscanf
Производит интерпретацию строки согласно формату и занесение значений в переменные.

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

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

// получение серийного номера$serial = sscanf("SN/235-0001", "SN/%3d-%4d");echo $serial[0]*10000+$serial[1]; // выводит: 2350001// и даты изготовления$date = "January 01 2000";list($month, $day, $year) = sscanf($date, "%s %d %d");echo "Дата: $year-".substr($month,0,3)."-$day\n";// выводит: 2000-Jan-01

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

// гененируем XML записть из строки$auth = "765&bsol;tLewis Carroll";$n = sscan($auth,"%d&bsol;t%s %s", &$id, &$first, &$last);echo "<author id="$id"> <firstname>$first</firrstname> <surname>$last</surname></author>&bsol;n";

Составление/разбиение строк

substr
Возвращает участок строки с определенной длиной.

Синтаксис :
string substr(string str, int start [,int length])

Возвращает участок строки str, начиная с позиции start и длиной length. Если length не задана, то подразумевается подстрока от start до конца строки str. Если start больше, чем длина строки, или же значение length равно нулю, то возвращается пустая подстрока.

Однако эта функция может делать и еще довольно полезные вещи. К примеру, если мы передадим в start отрицательное число, то будет считаться, что это число является индексом подстроки, но только отсчитываемым от конца str (например, -1 означает "начинается с последнего символа строки").
Параметр length, если он задан, тоже может быть отрицательным. В этом случае последним символом возвращаемой подстроки будет символ из str с индексом length, определяемым от конца строки.

$str = substr("abcdef", 1); // возвратит "bcdef"$str = substr("abcdef", 1, 3); // возвратит "bcd"$str = substr("abcdef", -1); // возвратит "f"$str = substr("abcdef", -2); // возвратит "ef"$str = substr("abcdef", -3, 1); // возвратит "d"$str = substr("abcdef", 1, -1); // возвратит "bcde"

str_repeat
Повторяет строку определенное количество раз.

Синтаксис :
string str_repeat(string str, int number)

Функция "повторяет" строку str number раз и возвращает объединенный результат.

echo str_repeat("test!",3); // выводит test!test!test!

str_pad
Дополняет строку другой строкой до определенной длины.

Синтаксис :
string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])

Аргументinputзадаетисходнуюстроку. Аргумент pad_length задает длину возвращаемой строки. Если он имеет значение меньше, чем исходная строка, то никакого добавления не производится.
При помощи необязательного аргумента pad_string можно указать, какую строку использовать в качестве заполнителя (по умолчанию - пробелы).
При помощи необязательного аргумента pad_type можно указать, с какой стороны следует дополнять строку: справо, слево или с обеих сторон.
Этот аргумент может принимать следующие значения:

· STR_PAD_RIGHT (по умолчанию)

· STR_PAD_LEFT

· STR_PAD_BOTH

$str = "Aaaaa";echo str_pad($str, 10);// возвратит "Aaaaa"echo str_pad($str, 10, "-=", STR_PAD_LEFT);// возвратит "-=-=-Aaaaa"echo str_pad($str, 10, "_", STR_PAD_BOTH)// возвратит "_Aaaa_"

chunk_split
Возвращает фрагмент строки.

Синтаксис :
string chunk_split(string str [, int chunklen [, string end]])

Функция chunk_split() возвращает строку, в которой между каждым блоком строки str длиной chunklen (по умолчанию 76) вставляется последовательность разделителей end (по умолчанию: "&bsol;r&bsol;n").
Данная функция может быть полезна при конвертировании в формат "base64" для соответствия правилам RFC 2045.

// отформатируем $data, используя семантику RFC 2045$str = chunk_split(base64_encode($data));

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

strtok
Возвращает строку по частям.

Синтаксис :
string strtok(string arg1, string arg2)

Фунция возвращает часть строки arg1 до разделителя arg2. При последующих вызовах возвращается следующая часть до следующего разделителя, и так до конца строки. При первом вызове функция принимате два аргумента: исходную строку arg1 и разделитель arg2. При каждом последующем вызове аргумент arg1 указываеть не надо, иначе будет возвращаться первая часть строки. Когда возвращать больше нечего, функция вернет false. Если часть строки состоит из 0 или из пустой строки, то функция также вернет false.

$str="This is an example№string№ Aaa";$tok = strtok($str, " ");while($tok) { echo "$tok"; $tok = strtok(" №");};// выведет: "This" "is" "an" "example" "string"

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

explode
Производит разделение строки в массив.

Синтаксис :
array explode(string seperator, string str [, int limit])

Функция explode() возвращает массив строк, каждая из которых соответствует фрагменту исходной строки str, находящемуся между разделителями, указанными аргументом separator.
Необязательный параметр limit указывает максимальное количество элементов в массиве. Оставшаяся неразделенная часть будет содержаться в последнем элементе.

$str = "Path1 Path2 Path3 Path4";$str_exp = explode(" ", $str);// теперь $str_exp = array([0] => Path1, [1] => Path2,// [2] => Path3, [3] => '', [4] => Path4)

implode
Производит объединение массива в строку.

Синтаксис :
string implode(string glue, array pieces)

Функция implode() возвращает строку, которая содержит последовательно все элементы массива, заданного в параметре pieces, между которыми вставляется значение, указанное в параметре glue.

$str = implode(":", $arr);

join
Производит объединение массива в строку.

Синтаксис :
string join(string glue, array pieces)

Тоже, чтоиimplode().

Работа с блоками текста

str_replace
Заменяет в исходной строке одни подстроки на другие.

Синтаксис :
string str_replace(string from, string to, string str)

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

substr_replace
Заменяет в исходной строке одни подстроки на другие.

Синтаксис :
string substr_replace(string str, string replacement, int start [, int lemgth])

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

Если значение start положительно, отсчет производится от начала строки str, иначе - от конца (-1 - последний символ строки).

Если значение length неотрицательно, тогда оно указывает длину заменяемого фрагмента. Если оно отрицательно, то это число символов от конца строки str до последнего символа заменяемого фрагмента (со знаком минус).

wordwrap
Разбивает исходный текст на строки с определенными завершающими символами.

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

Эта функция разбивает блок текста str на несколько строк, завершаемых символами break, так, чтобы на одной строке было не более width букв. Разбиение происходит по границе слова, так что текст остается читаемым.

strtr
Комплексная замена в строке.

Синтаксис :
string strtr(string str, string from, string to)
string strtr(string str, array from)

В первом случае функция strtr() возвращает строку str, у которой каждый символ, присутствующий в строку from, заменяется на корреспондирующий из строки to. В случае, если строки from и to различной длины, то лишние конечные символы длинной строки игнорируются.

Во втором случае функция strtr() возвращает строку, в которой фрагменты строки str заменяются на соответствующие индексам значения элементов массива from. При этом функция пытается заменить сначало наибольшие фрагменты исходной строки и не выполняет замену в уже модифицированных частях строки. Таким бразом, теперь мы можем выполнить несколько замен сразу: