Язык программирования PHP - [37]

Шрифт
Интервал


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


>

>$word = "Hello, world!";

>echo $word , "
";

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

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

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

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

>echo $pure_str;

>?>



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


>Hello, world!

>Hello, world!



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


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


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


>

>$string = "Bold text

> Italic text";

>$str = strip_tags($string);

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

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

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

>$str2 = strip_tags($string, '');

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

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

>?>



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


>Bold text Italic text

>Bold text Italic text

>Bold text Italic text



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


>

>$text = "Привет! Сегодня мы изучаем работу

> со строками. Автор.";

>$no_hello = substr($text, 8);

> // убираем приветствие

>$content = substr($text, 8, 39);

> // то же самое, что substr($text, 8, -6).

> // Убираем подпись.

>echo $text, "
", $no_hello,

> "
", $content;

>?>



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


>Привет! Сегодня мы изучаем работу

> со строками. Автор.

>Сегодня мы изучаем работу со строками. Автор.

>Сегодня мы изучаем работу со строками.



Если нам нужно получить один конкретный символ из строки, зная его порядковый номер, то не следует задействовать функции типа substr. Можно воспользоваться более простым синтаксисом – записывая номер символа в фигурных скобках после имени строковой переменной. В контексте предыдущего примера букву «р», расположенную второй по счету, можно получить так:


>echo $text{1}; // выведет символ "р"


Заметим, что номером этого символа является число один, а не два, так как нумерация символов строки производится начиная с нуля.


Раз уж мы начали говорить о символах в строке и их нумерации, то невольно возникает вопрос, сколько всего символов в строке и как это вычислить. Число символов в строке – это длина строки. Вычислить длину строки можно с помощью функции strlen (строка). Например, длина строки «Разработка информационной модели» вычисляется с помощью команды: strlen("Разработка информационной модели"); и равна 32 символам.


Итак, как выделять и находить подстроки, мы рассмотрели. Теперь научимся заменять строку, входящую в состав исходной строки, на другую строку по нашему выбору.


Замена вхождения подстроки


Функция str_replace


Для замены вхождения подстроки можно использовать функцию str_replace(). Это простая и удобная функция, позволяющая решать множество задач, не требующих особых тонкостей при выборе заменяемой подстроки. Для того чтобы производить замены с более сложными условиями, используют механизм регулярных выражений и соответствующие функции ereg_replace() и preg_replace(). Синтаксис функции str_replace() такой:


>str_replace(искомое значение,

> значение для замены, объект)


Функция str_replace() ищет в рассматриваемом объекте значение и заменяет его значением, предназначенным для замены. Почему мы говорим здесь не про строки для поиска и замены и исходную строку, а про значения и объект, в котором происходит замена? Дело в том, что начиная с PHP 4.0.5 любой аргумент этой функции может быть массивом.


Если объект, в котором производится поиск и замена, является массивом, то эти действия выполняются для каждого элемента массива и в результате возвращается новый массив.


>

>$greeting = array("Привет", "Привет всем!",

> "Привет, дорогая!"); // объект

>$new_greet = str_replace("Привет",

> "Доброе утро", $greeting);

> // делаем замену

>print_r($new_greet);

>/* получим: Array ([0]=>Доброе утро

> [1]=>Доброе утро всем!

> [2]=>Доброе утро, дорогая!) */

>?>



Если искомое значение и значение для замены – массивы, то берется по одному значению из каждого массива и производится их поиск и замена в объекте. Если значений для замены меньше, чем значений для поиска, то в качестве новых значений используется пустая строка.


>

>$greeting = array("Привет", "Привет всем!",

> "Привет, дорогая!","Здравствуйте",

> "Здравствуйте, товарищи", "Hi");

> // объект

>$search = array ("Привет",

> "Здравствуйте", "Hi");

> // значения, которые будем заменять

>$replace = array ("Доброе утро",

> "День добрый");

> // значения, которыми будем заменять

>$new_greet = str_replace($search, $replace,

> $greeting);

> // делаем замену


Рекомендуем почитать
Сочинения гр. А. К. Толстого как педагогический материал. Часть 2. Эпические мотивы

«Лирика обладает одним несомненным преимуществом перед другими родами поэзии: она лучше всего освещает нам личный мир поэта, ту сферу, которую выделяет для него в широком Божьем мире его темперамент, обстановка, симпатии, верования; она показывает степень отзывчивости поэта; т.е. его способности переживать разнородные душевные состояния: она часто открывает нам уголки поэтической деятельности, где живут не оформившиеся еще образы, задатки для определенных фигур эпоса и драмы. В эпосе и драме образы становятся разнообразнее и пестрее, но вместе с тем славятся объективнее, особенно в драме…».


Уголовное право. Особенная часть

В книге кратко изложены ответы на основные вопросы темы «Уголовное право. Особенная часть». Издание поможет систематизировать знания, полученные на лекциях и семинарах, подготовиться к сдаче экзамена или зачета.Пособие адресовано студентам высших и средних образовательных учреждений, а также всем интересующимся данной тематикой.


Самоучитель Adobe After Effects 6.0

Обучение созданию профессиональных видеофильмов и обработки их на компьютере представлено в виде 12 уроков. Рассматривается, как с помощью программы Adobe After Effects можно редактировать и рисовать последовательность кадров, добавлять титры и заголовки, применять различные видеоэффекты, редактировать звуковое сопровождение фильма. Описывается процесс настройки прозрачности и наложения слоев видео для последующего экспорта фильма в различных форматах. Показываются способы создания анимации при масштабировании, поворотах и в движении с наложением титров и спецэффектов.


Финансовое право

В учебном пособии в краткой и доступной форме рассмотрены все основные вопросы, предусмотренные государственным образовательным стандартом и учебной программой по дисциплине «Финансовое право».Книга позволит быстро получить основные знания по предмету, а также качественно подготовиться к зачету и экзамену.Рекомендуется студентам, аспирантам и преподавателям по юридическим, экономическим и управленческим специальностям, а также сотрудникам банков.Автор книги, Шевчук Денис Александрович, имеет опыт преподавания различных дисциплин в ведущих ВУЗах Москвы (экономические, юридические, технические, гуманитарные), два высших образования (экономическое и юридическое), более 30 публикаций (статьи и книги), Член Союза Юристов Москвы, Член Союза Журналистов России, Член Союза Журналистов Москвы, Стипендиат Правительства РФ, опыт работы в банках, коммерческих и государственных структурах (в т.ч.


Следственные действия: психология, тактика, технология

Книга посвящена правовым, психологическим и криминалистическим основам следственных действий как процессуальных способов доказывания по уголовным делам. Рассмотрены общая характеристика следственного действия, психологические условия и приёмы повышения их эффективности, даны рекомендации по подготовке и проведению отдельных видов основных следственных действий, регламентируемых ныне действующим УПК РФ.Для работников правоохранительных органов, студентов, аспирантов, докторантов, профессорско-преподавательского состава юридических учебных заведений.


фгос  ответы

Содержащиеся в пособии контрольно-измерительные материалы (КИМы) для 5 класса, аналогичные материалам ЕГЭ, составлены в соответствии с программой общеобразовательных учреждений по русскому языку и учитывают возрастные особенности учащихся. В конце пособия даны ответы на все варианты тестов, предложены диктанты различных типов.Пособие адресовано учителям, ученикам, их родителям и всем, кому необходимо закрепить и систематизировать знания перед ЕГЭ.