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

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

Жанры

Курс "Язык программирования 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;

?>

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

Bold text Italic text

Bold text Italic text

Bold text Italic text

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

<?php

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

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

$no_hello = substr($text, 8);

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

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

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

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

echo $text, "<br>", $no_hello,

"<br>", $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 любой аргумент этой функции может быть массивом.

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

<?php

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

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

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

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

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

print_r($new_greet);

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

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

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

?>

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

<?php

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

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

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

// объект

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

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

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

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

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

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

$new_greet = str_replace($search, $replace,

$greeting);

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

print_r($new_greet);

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

Кодекс Императора II

Сапфир Олег
2. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Императора II

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Темные тропы и светлые дела

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

Его звали Тони. Книга 5

Кронос Александр
5. Щенки косуль
Фантастика:
городское фэнтези
технофэнтези
попаданцы
7.00
рейтинг книги
Его звали Тони. Книга 5

Дворянин

Злотников Роман Валерьевич
2. Император и трубочист
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Дворянин

Поводырь

Щепетнов Евгений Владимирович
3. Ботаник
Фантастика:
фэнтези
6.17
рейтинг книги
Поводырь

Пламя

Сокол Лена
3. ПОЖАРНАЯ ЧАСТЬ 17
Любовные романы:
современные любовные романы
прочие любовные романы
остросюжетные любовные романы
5.00
рейтинг книги
Пламя

Бастард Императора. Том 6

Орлов Андрей Юрьевич
6. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 6

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

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

Эпоха Опустошителя. Том VII

Павлов Вел
7. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VII

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

Винокуров Юрий
30. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга ХХХ

Родословная. Том 4

Ткачев Андрей Юрьевич
4. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 4

Сирийский рубеж 2

Дорин Михаил
6. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж 2

На границе империй. Том 10. Часть 7

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 7