Чтение онлайн

на главную - закладки

Жанры

Курс "Язык программирования PHP"

Савельева Нина Владимировна

Шрифт:

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

?>

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

Array (

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

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

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

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

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

[5] =>

)

Если

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

<?php

$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 – обработка шаблонов.

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

<h2>Введите описание статьи</h2>

<form action=sbl.php>

<table border=0>

<tr><td>Название </td><td><input

type=text name=title > </td></tr>

<tr><td>Краткое содержание </td><td><input

type=text name=description > </td></tr>

<tr><td>Автор </td><td><input

type=text name=author > </td></tr>

<tr><td>Дата
публикации </td><td><input

type=text name=published ></td></tr>

<tr><td>Шаблон документа </td><td><textarea

name=shablon ></textarea></td></tr>

</table>

<input type=submit value="Отправить">

</form>

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

<?php

$tmpl = $_GET["shablon"];

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

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

"<h1><!title></h1> <font

size=-1><!description></font><p

align=right><!author><br><!published>" */

function Show{

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

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

global $tmpl;

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

$tmpl = str_replace("<!$k>",$v,$tmpl);

}

echo $tmpl;

}

Show;

?>

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

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

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

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

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

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

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

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

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

А. М. Федотов

Поделиться:
Популярные книги

Газлайтер. Том 12

Володин Григорий Григорьевич
12. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 12

Идеальный мир для Демонолога 9

Сапфир Олег
9. Демонолог
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Демонолога 9

Император Пограничья 5

Астахов Евгений Евгеньевич
5. Император Пограничья
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 5

Излом

Осадчук Алексей Витальевич
10. Последняя жизнь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Излом

Кодекс Охотника. Книга XXIII

Винокуров Юрий
23. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXIII

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Двойник короля 16

Скабер Артемий
16. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 16

Надуй щеки! Том 3

Вишневский Сергей Викторович
3. Чеболь за партой
Фантастика:
попаданцы
дорама
5.00
рейтинг книги
Надуй щеки! Том 3

Кодекс Охотника. Книга II

Винокуров Юрий
2. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
юмористическое фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга II

Приказано выжить!

Малыгин Владимир
1. Другая Русь
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.09
рейтинг книги
Приказано выжить!

Чужак из ниоткуда

Евтушенко Алексей Анатольевич
1. Чужак из ниоткуда
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Чужак из ниоткуда

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Первый среди равных. Книга III

Бор Жорж
3. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
6.00
рейтинг книги
Первый среди равных. Книга III

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец