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

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

>print_r($new_greet);

> //выводим полученный массив

>?>



В результате получим такой массив:


>Array (

>[0] => Доброе утро

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

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

>[3] => День добрый

>[4] => День добрый, товарищи

>[5] =>

>)



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


>

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

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

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

> // объект

>$search = array ("Привет","Здравствуйте");

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

>$replace = "День добрый";

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

>$new_greet = str_replace($search,

> $replace, $greeting); // делаем замену

>print_r($new_greet);

> //выводим полученный массив

>?>



Получим:


>Array (

>[0] => День добрый

>[1] => День добрый всем!

>[2] => День добрый, дорогая!

>[3] => День добрый

>[4] => День добрый, товарищи

>)



Функция str_replace() чувствительна к регистру, но существует ее регистронезависимый аналог – функция str_ireplace(). Однако эта функция поддерживается не во всех версиях PHP.


Еще один пример использования функции str_replace() – обработка шаблонов.


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


>

Введите описание статьи

>

>

>

>

>

>

>

>

Название

> type=text name=title >

Краткое содержание

> type=text name=description >

Автор

> type=text name=author >

Дата публикации

> type=text name=published >

Шаблон документа

> name=shablon >

>

>



Однако просто поля для ввода шаблона недостаточно. Один человек введет в него одно, другой – другое. Нужно договориться о том, как создавать шаблоны, что можно в них использовать, т.е. нужно придумать язык шаблонов. Например, мы договариваемся, что при создании шаблона можно задействовать любые html-теги, а набор спецсимволов вида определяет значение элемента с именем имя_элемента. Далее, как обрабатывать такого рода шаблоны? Можно использовать функцию str_replace():


>

>$tmpl = $_GET["shablon"];

>/* шаблон, введенный пользователем.

>Например, это может быть такая строка:

>"

>size=-1>

>align=right>

" */

>function Show(){

> // функция, которая производит замену

> // элемента шаблона на его значение

>global $tmpl;

>foreach($_GET as $k => $v) {

> $tmpl = str_replace("",$v,$tmpl);

>}

>echo $tmpl;

>}

>Show();

>?>



Как эти файлы выглядят для обычного пользователя? Если мы введем в форму такие данные как показано на рисунке 8.1, то в результате получим:


>Первая машина для переписи населения

>Идея наносить данные на перфокарты и затем

>считывать и обрабатывать их автоматически

>принадлежала Джону Биллингсу, а ее

>техническое решение осуществил Герман

>Холлерит. Перфокарта Холлерита оказалась

>настолько удачной, что без малейших изменений

>просуществовала до наших дней.

> А. М. Федотов

> 12.02.03




Рис. 8.1.  Форма для ввода описания документа «статья» и шаблона для его отображения

Функция substr_replace


Эта функция сочетает в себе свойства двух уже рассмотренных нами функций – функции str_replace() и substr(). Ее синтаксис таков:


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

> строка для замены,

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


Эта функция заменяет часть строки строкой, предназначенной для замены. Заменяется та часть строки (т.е. подстрока), которая начинается с позиции, указанной параметром позиция начального символа. С помощью дополнительного аргумента длина можно ограничить число заменяемых символов. То есть, фактически, мы не указываем конкретно строку, которую нужно заменить, мы только описываем, где она находится и, возможно, какую длину имеет. В этом отличие функции substr_replace() от str_replace().


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


>

>$text = "Меня зовут Вася.";

>echo "Исходная строка: $text


\n";

>/* Следующие две строки заменят всю

>исходную строку строкой 'А меня – Петя' */

>echo substr_replace($text, 'А меня – Петя',

> 0) . "
\n";

>echo substr_replace($text, 'А меня – Петя',

> 0, strlen($text)) . "
\n";

>// Следующая строка добавит слово 'Привет! '


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

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


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

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


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

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


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

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


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

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


фгос  ответы

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