52568.fb2 Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 53

Курс "Язык программирования PHP" - читать онлайн бесплатно полную версию книги . Страница 53

if (!strstr($str, "Название"))

echo "Строка не найдена<br>";

else echo "<p><b>Полученная подстрока: </b>",

strstr($str, "Название");

?>

В результате получим:

Исходная строка: Автор: Иванов Иван

(написать письмо),

Название: 'Исследование языков

программирования'

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

'Исследование языков программирования'

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

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

Функция substr

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

substr (исходная строка,

позиция начального символа [, длина])

Эта функция возвращает часть строки длиной, заданной параметром длина, начиная с символа, указанного параметром позиция начального символа. Позиция, с которой начинается выделяемая подстрока, может быть как положительным целым числом, так и отрицательным. В последнем случае отсчет элементов производится с конца строки. Если параметр длина опущен, то substr() возвращает подстроку от указанного символа и до конца исходной строки. Длина выделяемой подстроки тоже может быть задана отрицательным числом. Это означает, что указанное число символов отбрасывается с конца строки.

Пример 8.5. Допустим, у нас есть фраза, выделенная жирным шрифтом с помощью тега <b> языка HTML. Мы хотим получить эту же фразу, но в обычном стиле. Напишем такую программу:

<?php

$word = "<b>Hello, world!</b>";

echo $word , "<br>";

$pure_str = substr($word, 3, -4);

/* выделяем подстроку,

начиная с 3-го символа,

не включая 4 символа с конца строки */

echo $pure_str;

?>

В результате работы этого скрипта получим:

Hello, world!

Hello, world!

На самом деле решить такую задачу можно гораздо проще, с помощью функции strip_tags:

strip_tags (строка [, допустимые теги])

Эта функция возвращает строку, из которой удалены все html и php-теги. С помощью дополнительного аргумента можно задать теги, которые не будут удалены из строки. Список из нескольких тегов вводится без каких-либо знаков разделителей. Функция выдает предупреждение, если встречает неправильные или неполные теги.

<?php

$string = "<b>Bold text</b>

<i>Italic text</i>";

$str = strip_tags($string);

// удаляем все теги из строки

$str1 = strip_tags($string, '<i>');

// удаляем все теги кроме тега <i>

$str2 = strip_tags($string, '<i><b>');

// удаляем все теги кроме тегов <i> и <b>

echo $str,"<br>",$str1,"<br>", $str2;

?>