Wiki-учебник по веб-технологиям: PHP/Строки ...

Главная | |

Строки PHP


Оглавление документа

1. Введение


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

В PHP строковый литерал можно представлять тремя способами.

строки в одиночных кавычках
строки в двойных кавычках
строки в синтаксисе heredoc

В этом учебнике представлено использование строк в одиночных и двойных кавычках. Синтаксис heredoc не рассматривается. Подробная информация об этом синтаксисе имеется в документации PHP.

2. Строки в одиночных кавычках


Одиночные кавычки предоставляют самый простой метод для работы со строками. При использовании этого метода строки заключаются в одиночные кавычки (''). Если одиночные кавычки требуются как часть строки, они должны быть экранированы символом обратной косой черты ("\"). Хотя одиночные кавычки предоставляют простой способ работы со строками, одиночные кавычки не поддерживают применение интерполяции (см. раздел 3–1, Скалярные переменные). Примеры ниже иллюстрируют использование одиночных кавычек.

<?php
//A literal string displayed in the browser window
echo 'PHP was developed in 1994 by Rasmus Lerdorf';
//A literal string assigned to a variable
$string 'Since its development, PHP has become a popular scripting
language.'
;
echo 
$string;
//escaping single quotes
echo 'The array contains the values \'2,5,3,4\'.';
//invalid attempt to expand a variable inside of a single quote string
$name 'John Smith';
echo 
'The user's name is $name';
?>


PHP was developed in 1994 by Rasmus Lerdorf
Since its development, PHP has become a popular scripting language.
The array contains the values '2,5,3,4'.
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

Первая строка вывода является результатом работы оператора echo, который выводит литеральную строку в одиночных кавычках в окне браузера. Вторая строка выводится после присваивания строки в одиночных кавычках переменной.

Переменная затем выводится с помощью оператора echo. Следующая строка вывода демонстрирует использование экранирующего символа. Строка в одиночных кавычках содержит множество одиночных кавычек, используемых для выделения элементов массива.

Наконец, порождается ошибка синтаксического анализа, когда внутри строки в одиночных кавычках кодируется переменная.

3. Строки в двойных кавычках


Строки PHP можно выводить также с помощью двойных кавычек (""). Если строки PHP помещаются в двойные кавычки, то можно применять интерполяцию. Для строк в двойных кавычках PHP поддерживает также больше экранированных символов. Эти символы представлены в таблице ниже.

Символ Описание
\n перенос строки
\r возврат каретки
\t горизонтальная табуляция
\\ обратная косая черта
\$ знак доллара
\" двойная кавычка

<?php
echo "PHP is supported by many operating systems including Windows and
Linux."
;
$name "John";
echo 
"The user's name is $name.";
$fruits = array('grapes''peaches''strawberries');
echo 
"My favorite fruit is $fruits[0].";
?>


PHP is supported by many operating systems including Windows and Linux.
The user's name is John.
My favorite fruit is grapes.

Первая строка выводит строку в двойных кавычках с помощью оператора echo.

Вторая – создается строкой с включенной переменной. Переменная расширяется, и ее содержимое выводится вместе со строкой. Затем расширяется переменная массива и выводится вместе со строкой.

4. Функции для работы со строками


Система PHP содержит ряд функций для работы со строками. Следующий список содержит некоторые из наиболее распространенных строковых функций.

strlen(string) – определяет длину строки string.
ltrim(string) – удаляет символы разделители в начале строки string.
rtrim(string) – удаляет символы разделители в конце строки string.
strpbrk(string, char) – ищет в строке string символ char. Возвращает false или строку, начинающуюся с найденного символа.
strtoupper(string) – преобразует строку в верхний регистр.
strtolower(string) – преобразует строку в нижний регистр.
strrev(string) – возвращает строку string в обратном порядке.
eregi(pattern, subject) – выполняет независимое от регистра символов сравнение с выражением. В строке subject происходит поиск регулярного выражения, заданного строкой pattern.

Следующий блок кода демонстрирует, как использовать строковые функции PHP.

<?php
$string 
"Hello World";
$another_string "Welcome to PHP";
echo 
strlen($string);
echo 
strtoupper($another_string);
echo 
strrev($another_string);
echo 
strpbrk($string"W");
?>


11
WELCOME TO PHP
PHP ot emocleW
World

Первая строка выводит длину строки “Hello World”, равную 11. Затем строка “Welcome to PHP” преобразуется в верхний регистр и выводится в окне браузера.

Эта строка используется также с функцией strrev для изменения порядка символов строки на обратный. Наконец, в строке происходит поиск символа “W”.

Так как первое появление символа происходит в тексте “World”, выводится эта строка.

5. Функции даты и времени


Базовые функции PHP для даты и времени позволяют форматировать отметку времени для применения в запросах базы данных или просто для вывода даты и времени в окне браузера. PHP включает следующие функции даты и времени:

date(format) – возвращает текущее время сервера, форматированное согласно заданному множеству параметров format.
checkdate(month, day, year) – проверяет заданную дату. Успешная проверка означает, что год year находится между 0 и 32767, месяц month – между 1 и 12, и
правильное количество дней каждого месяца.
time() – возвращает текущее время сервера, измеренное в секундах начиная с 1 января 1970 г.

Следующая таблица содержит допустимые форматы date():

a выводит “am” или “pm”
A выводит “AM” или “PM”
h часы в 12-часовом формате (01 – 12)
H часы в 24-часовом формате (00 – 23)
g часы в 12-часовом формате без ведущего нуля (1 – 12)
G часы в 24-часовом формате без ведущего нуля (0 – 23)
i минуты (00 – 59)
s секунды (00 – 59)
d день месяца двумя цифрами (01 – 31)
D день недели текстом (Mon – Sun)
l день недели длинным текстом (Monday – Sunday)
F месяц длинным текстом (January – December)
n месяц двумя цифрами (1 – 12)
Y год четырьмя цифрами (2005)
y год двумя цифрами (05)
s порядковые английский суффиксы (th, nd, st)

Следующая страница использует функцию PHP date() для определения и вывода текущего времени сервера и даты:

<?php
echo "<span style='font:10pt arial'>Today is date('lFjY')</span>";
echo 
"<br/>";
echo 
"<span style='font:10pt arial'>The current time is: date('g:i:s
a')</span>"
;
?>


Формат даты/времени, выводимый с помощью функции date(), зависит от типов параметров формата, подставленных в функцию.

Параметры функции date() можно объединять, разделяя запятой “,", двоеточием “:" или другими знаками пунктуации, в зависимости от желаемого формата вывода. Все параметры, однако, должны быть заключены в одиночные кавычки. В примере выше время выводится с помощью параметров формата времени g, i, s, и a. Двоеточия и пробелы также вставляют для разделения часов, минут, секунд и признаков am/pm.

Функции checkdate() и time() обычно используются в процессах принятия решений.

Поэтому они подробнее будут рассмотрены в дальнейшем.

6. Оператор If


При создании кода часто требуется выполнять различные действия на основе некоторого выбора. В PHP это можно делать с помощью условных операторов – оператора if, оператора if … else и оператора elseif.
if – этот оператор используется для выполнения блока кода, когда выполняется условие (true).
if...else – этот оператор используется для выполнения блока кода, когда условие выполняется (true), или для выполнения другого блока кода, когда условие не выполняется (false).
elseif – комбинация if и else. Оператор расширяет оператор if, чтобы выполнялся другой оператор в случае, если исходное выражение if оценивается как FALSE. В отличие от else он будет выполнять альтернативное выражение, только если условное выражение elseif оценивается как TRUE.

В том случае, когда необходимо выполнить блок кода, если выполняется некоторое условие (true), можно использовать оператор if.

Ниже представлен синтаксис оператора if:
if (условие) {
// выполняемый код
}

Строки кода оператора if заключаются в фигурные скобки ({}). Эти скобки определяют начало (открывающая скобка {) и конец (закрывающая скобка }) оператора If.

Следующий пример демонстрирует использование оператора if.

<?php
$number 
5;
if (
$number <= 10)
{
echo 
"Число меньше или равно 10.";
}
?>


Число меньше или равно 10.

В приведенном выше примере число 5 присваивается переменной $number. Затем сценарий PHP использует оператор сравнения "<=" (меньше или равно) для сравнения значения $number с числом 10. Если значение меньше или равно 10, оператор echo выводит сообщение " Число меньше или равно 10" в окне браузера.

Можно видеть, что скобки применяются для ограничения блока оператора if.

Открывающая скобка { появляется сразу после оператора условия, а закрывающая скобка } — в конце оператора if.

Вспомните, что все операторы PHP должны завершаться с помощью терминатора инструкции (;): echo «Число меньше или равно 10.»;

В некоторых случаях может понадобиться предоставить альтернативное сообщение. В приведенном выше примере предположим, что переменная $number содержит число 15, которое больше 10. Альтернативное сообщение должно выводиться, чтобы пользователь знал: число больше 10. Это можно выполнить с помощью оператора if … else.

<?php
$number 
15;
if (
$number <= 10) {
echo 
"Число меньше или равно 10.";
}
else {
echo 
"Число больше 10";
}
?>

Число больше 10.

В приведенном выше примере число 15 присваивается переменной $number.

Затем сценарий PHP использует оператор сравнения "<=" (меньше или равно) для сравнения значения $number с числом 10. Если это значение меньше или равно 10, оператор echo выводит сообщение «Число меньше или равно 10" в окне браузера. Теперь в код добавлен оператор else, чтобы выводить альтернативное сообщение, если условие в операторе if не выполняется. Альтернативное сообщение «Число больше 10" выводится в окне браузера, если оператор условия возвращает false. Здесь также используются скобки для ограничения блока оператора if. Открывающая скобка { появляется сразу после оператора условия, а закрывающая скобка } — в конце оператора if. Скобки также используются для ограничения альтернативного блока оператора else.

Третий тип условного оператора является структурой elseif. Оператор elseif является комбинацией if и else. Подобно else он расширяет оператор if, чтобы выполнить другой оператор, если условное выражение исходного if оценивается как FALSE. Однако в отличие от else он будет выполнять это альтернативное выражение, только если условное выражение в elseif оценивается как TRUE. В одном операторе if может быть несколько структур elseif. Первое выражение elseif (если такое имеется), которое оценивается как TRUE, будет выполнено.

<?php
$number 
15;
if (
$number 10) {
echo 
"Число меньше 10.";
}
elseif (
$number == 10) {
echo 
"Число равно 10.";
}
else {
echo 
"Число больше 10.";
}
?>


Число больше 10.

В этом примере числовое значение переменной $number сравнивается с 10.

Сперва оператор if проверяет, что $number меньше 10. Если этот оператор выполняется (true), выводится сообщение «Число меньше 10".

Затем оператор elseif используется для проверки, что $number равно 10. Если этот оператор оценивается как true, выводится сообщение «Число равно 10". Оператор elseif выполняется, ТОЛЬКО если оператор if возвращает FALSE. Наконец, если операторы if и elseif возвращают FALSE, выполняется оператор else и выводится сообщение «Число больше 10". В то время как оператор elseif позволяет проверить только одно условие, структуру if можно применять для проверки множества условий.

Следующий пример использует функцию checkdate(), функцию explode() и оператор if … else для проверки правильности строки даты.

<?php
$orig_date 
"09/19/2005";
$date explode("/""$orig_date");
$month $date[0];
$day $date[1];
$year $date[2];
$result checkdate($month$day$year);
if (
$result == true)
{
echo 
"Правильная дата";
}
else
{
echo 
"Неправильная дата!";
}
?>


Правильная дата

Операторы if можно использовать «в одиночку» либо как часть оператора if...else или if...elseif...else. В любом случае вы обнаружите, что эта структура будет важным элементом в любой программе.