// многие предпочитают передавать несколько
// параметров в echo с помощью конкатенации
echo 'Пришел ' . 'увидел ' . 'победил ';
// тоже выведет строку
// 'Пришел увидел победил'
echo ('Пришел ', 'увидел ', 'победил ');
// выдаст ошибку: unexpected ','
?>
Существует сокращенный синтаксис для команды echo:
<?=строка_для_вывода?>
Здесь параметр строка_для вывода содержит строку, заданную любым из известных способов, которая должна быть выведена на экран.
Например, такой скрипт выведет на экран красным цветом 'Меня зовут Вася':
<? $name='Вася' ?>
<font color=red>Меня зовут <?=$name?></font>
Кроме языковой конструкции echo существует ряд функций для вывода строк. Это в первую очередь функция print и ее разновидности printf, sprintf и т.п.
Функция print позволяет выводить на экран только одну строку и, как и echo, не может быть вызвана с помощью переменных функций, поскольку является языковой конструкцией.
Функция print_r не относится к строковым функциям, как можно было бы подумать. Она отображает информацию о переменной в форме, понятной пользователю.
Функции sprintf и printf обрабатывают переданную им строку в соответствии с заданным форматом. Но о них мы говорить не будем. А поговорим о том, как можно осуществлять поиск в тексте, представленном в виде строки.
Поиск элемента в строке
Для того чтобы определить, входит ли данная подстрока в состав строки, используется функция strpos (). Синтаксис strpos() такой:
strpos (исходная строка,строка для поиска
[,с какого символа искать])
Она возвращает позицию появления искомой строки в исходной строке или возвращает логическое false, если вхождение не найдено. Дополнительный аргумент позволяет задавать символ, начиная с которого будет производиться поиск. Кроме логического false эта функция может возвращать и другие значения, которые приводятся к false (например, 0 или ''). Поэтому для того, чтобы проверить, найдена ли искомая строка, рекомендуют использовать оператор эквивалентности «===».
<?
$str = 'Идея наносить данные на перфокарты
и затем считывать и обрабатывать их
автоматически принадлежала Джону Биллингсу,
а ее техническое решение осуществил Герман
Холлерит. Перфокарта Холлерита оказалась
настолько удачной, что без малейших изменений
просуществовала до наших дней.';
$pos = strpos($str,'Холлерит');
if ($pos !== false) echo 'Искомая строка
встречена в позиции номер $pos ';
else echo 'Искомая строка не найдена';
/* заметим, что мы проверяем значение
$pos на эквивалентность с false.
Иначе строка, находящаяся в первой позиции,
не была бы найдена, так как 0
интерпретируется как false. */
?>
Если значение параметра строка_для_поиска не является строкой, то оно преобразуется к целому типу и рассматривается как ASCII-код символа. Чтобы получить ASCII-код любого символа в PHP, можно воспользоваться функцией ord('символ')
Например, если мы напишем $pos = strpos($str,228); то интерпретатор будет считать, что мы ищем символ «д». Если добавить эту строчку в приведенный выше пример и вывести результат, то получим сообщение, что искомая строка найдена в позиции 1.
Функция, обратная по смыслу ord, – это chr (код символа). Она по ASCII-коду выводит символ, соответствующий этому коду.
С помощью функции strpos можно найти номер только первого появления строки в исходной строке. Естественно, есть функции, которые позволяют вычислить номер последнего появления строки в исходной строке. Это функция strrpos(). Ее синтаксис таков:
strrpos (исходная строка, символ для поиска)
В отличие от strpos() эта функция позволяет найти позицию последнего появления в строке указанного символа. Нельзя искать позицию строки, только символа.
Бывают ситуации, когда знать позицию, где находится искомая строка, необязательно, а нужно просто получить все символы, которые расположены после вхождения этой строки. Можно, конечно, воспользоваться и приведенными выше функциями strpos() и strrpos(), но можно сделать и проще – выделить подстроку с помощью предназначенных именно для этого функций.
Выделение подстроки
Говоря о выделении подстроки из искомой строки в языке PHP, в первую очередь стоит отметить функцию strstr():