Форматирование и вывод строк
Стр 1 из 2Следующая ⇒ Функции для работы с одиночными символами chr Синтаксис: Возвращает строку из одного символа с кодом $code. Эта функция полезна для вставки каких-либо непечатаемых символов в строку - например, кода нуля или символа прогона страницы, а также при работе с бинарными файлами. <? // Сначало создаем массив того, что мы собираемся выводить, // не заботясь о форматировании (дизайне) информации for($i=0, $x=0; $x<16; $x++) { for($y=0; $y<16; $y++) { $Chars[$x][$y]=array($i,chr($i)); $i++; } } // Теперь выводим накопленную информацию, используя идеологию // вставки участков кода в HTML-документ ?>
<table border=1 cellpadding=1 cellspacing=0> <?for($y=0; $y<16; $y++) {?> <tr> <?for($x=0; $x<16; $x++) {?> <td> <?=$Chars[$x][$y][0]?>: <b><tt><?=$Chars[$x][$y][1]?></tt></b> </td> <?}?> </tr> <?}?> </table> ord Синтаксис: Эта функция возвращает ASCII код первого символа строки str. Функции отрезания пробелов trim Синтаксис: Возвращает копию str, только с удаленными ведущими и концевыми пробельными символами. Под пробельными символами надо понимать "\n", "\r", "\t", "\v", "\0" и пробел. ltrim Синтаксис: То же, что и trim(), только удаляет исключительно начальные пробельные символы ("\n", "\r", "\t", "\v", "\0" и пробел), а концевые не трогает. rtrim
Синтаксис: То же, что и trim(), только удаляет исключительно конечные пробельные символы ("\n", "\r", "\t", "\v", "\0" и пробел), а начальные не трогает. chop Синтаксис: Удаляет только концевые пробелы, начальные не трогает. Поиск в тексте strchr Синтаксис: Данная функция работает идеентично функции strstr(). strstr Синтаксис: Функция strstr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца. $email = "mailname@mail.ru"; $domain = strstr($email, "@"); // или $domain = strstr($email, ord("@")) echo $domain; // выведет @mail.ru stristr Синтаксис: Функция stristr() возвращает участок строки, заданной в параметре haystack, начиная с первого фрагмента, указанного в параметре needle и до конца. strrchr Синтаксис: Функция strrchr() возвращает участок строки, заданной в параметре haystack, начиная с последнего фрагмента, указанного в параметре needle и до конца.
// получим последний каталог в $PATH $dir = substr(strrchr($PATH, ":"), 1); // а здесь получим все после последнего перевода строки $text = "text 1\nText2\nText3"; echo substr(strrchr($text, 10), 1); strpos Синтаксис: Функция strpos() пытается найти в строке were подстроку what и в случае успеха возвращает позицию (индекс) этой подстроки в строке. Первый символ строки имеет индекс 0. Необязательный параметр fromwhere можно задавать, если поиск нужно вести не с начало строки, а с какой-то другой позиции. В этом случае следует эту позицию передать в fromwhere. Если подстроку не удалось найти, функция возвращает false. if(strpos($text, "a")===false) echo "Не найдено!"; // Проверка: три знака равенства strrpos Синтаксис: Данная функция ищет в строке where последнюю позицию, в которой встречался символ what (если what - строка из нескольких символов, то выявляется только первый из них, остальные не играют никакой роли). substr_count Синтаксис: Функция substr_count() возвращает число фрагментов what, присутствующих в строке where. echo substr_count("www.spravkaweb.ru", "."); // Выведет 3 strspn Синтаксис: Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью из символов, которые есть в строке str2. echo strspn("www.spravkaweb.ru", "abc"); // Выведет 3 strcspn Синтаксис: Функция strspn() возвращает длину начального фрагмента строки str1, состоящего полностью не из символов, которые есть в строке str2. Функции сравнения strcmp Синтаксис: Эта функция сравнивает две строки посимвольно (точнее, побайтово) и возвращает:
strncmp Синтаксис: Эта функция отличается от strcmp() тем, что сравнивает не все слово целиком, а первые len байтов. В случае, если len меньше длины наименьшей из строк, то строки сравниваются целиком. strcasecmp Синтаксис: То же самое, что и strcmp(), только при работе не учитывается регистр букв. $str1 = "Привет!"; $str2 = "привет!"; if(!strcesecmp($str1, $str2)) echo "$str1 == $str2 при сравнении строк без учета регистра"; strncasecmp Синтаксис: Функция strncasecmp() является комбинацией функций strcasecmp() и strncmp(). strnatcmp Синтаксис: Данная функция имитирует сравнение строк, которое использовал бы человек. $arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png"); echo "Обычная сортировка\n"; usort($arr1, "strcmp"); print_r($arr1); echo "\nЕстенственная сортировка\n"; usort($arr2, "strnatcmp"); print_r($arr2); Данный скприпт выведет следующее: Обычная сортировка Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png )
Естественная сортировка Array ( [0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png ) strnatcasecmp Синтаксис: То же, что и strnatcmp(), только игнорирует регистр. similar_text Синтаксис: Функция similar_text() вычисляет схожесть двух строк по алгоритму, описанному Оливером (Oliver [1993]). Но вместо стека (как в псевдокоде Оливера) она использует рекурсивные вызовы.
levenshtein Синтаксис: "Различие Левенштейна" - это минимальное чило символов, которое требовалось бы заменить, вставить или удалить для того, чтобы превратить строку str1 в str2. Сложность алгоритма пропорциональна произведению длин строк str1 и str2, что делает функцию более быстродействующей, чем similar_text(). Первая форма функции возвращает число необходимых операций над символами строк для трансформации str1 в str2. Вторая форама имеет три дополнительных параметра: стоимость операции вставки, замены и удаления, что делает ее более адаптированной для вычисления, но при этом менее быстродействующей. Возвращается интегральный показатель сложности трансформации. Третий вариант позволяет указать функцию, используемую для расчета сложности трансформации. Функция cost вызывается со следующими аргументами: · применяемая операция (вставить, изменить, удалить): "I*quot;, "R", "D"; · фактический символ первой строки · фактический символ второй строки · позиция строки 1 · позиция строки 2 · оставшаяся длина строки 1 · оставшаяся длина строки 2 Вызываемая функция должна будет возвратить стоимость этой операции. Форматирование и вывод строк print Синтаксис: Функция print() выводит аргумент arg, в качестве которого может быть переменная или выражение. echo Синтаксис: Функция echo() выводит значения перечисленных параметров. echo "Перенос на следующую строку, имеющийся в коде, сохраняется и используется при выводе". "чтобы избежать этого используйте". "оператор конкатенации"; printf Синтаксис: Делает то же самое, что и sprintf(), только результирующая строка не возвращается, а направляется в браузер пользователя.
sprintf Синтаксис: sprintf($format [,args,...]) Эта функция возвращает строку, составленную на основе строки форматирования, содержащей некоторые специальные символы, которые будут впоследствии заменены на значения соответствующих переменных из списка аргументов. Строка форматирования $format может включать в себя команды форматирования, предваренные символом %. Все остальные символы копируются в выходную строку как есть. Каждый спецификатор формата (то есть, символ % и следующие за ним команды) соответствуют одному, и только одному параметру, указанному после параметра $format. Если же нужно поместить в текст % как обычный символ, необходимо его удвоить: echo sprintf("The percentage was %d%%",$percentage); Каждый спецификатор формата включает максимум пять элементов (в порядке их следования после символа %): · Необязательный спецификатор размера поля, который указывает, сколько символов будет отведено под выводимую величину. В качестве символов-заполнителей (если значение имеет меньший размер, чем размер поля для его вывода) может использоваться пробел или 0, по умолчанию подставляется пробел. Можно задать любой другой символ-наполнитьел, если указать его в строке форматирования, предварив фпострофом. · Опциональный спецификатор выравнивания, определяющий, будет результат выровнен по правому или по левому краю поля. По умолчанию производится выравнивание по правому краю, однако можно указать и левое выравнивание, задав символ - (минус). · Необязательное число, определяющее размер поля для вывода величины. Если результат не будет в поле помещаться, то он &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 Синтаксис: Функция 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\tLewis Carroll"; $n = sscan($auth,"%d\t%s %s", &$id, &$first, &$last); echo "<author id="$id"> <firstname>$first</firrstname> <surname>$last</surname> </author>\n";
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|