КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Функция 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]=>Доброе утро, дорогая!) */?>Пример 8.7. Использование функции str_replace() (html, txt) Если искомое значение и значение для замены – массивы, то берется по одному значению из каждого массива и производится их поиск и замена в объекте. Если значений для замены меньше, чем значений для поиска, то в качестве новых значений используется пустая строка. <?php$greeting = array("Привет", "Привет всем!", "Привет, дорогая!","Здравствуйте", "Здравствуйте, товарищи", "Hi"); // объект$search = array ("Привет", "Здравствуйте", "Hi"); // значения, которые будем заменять$replace = array ("Доброе утро", "День добрый"); // значения, которыми будем заменять$new_greet = str_replace($search, $replace, $greeting); // делаем заменуprint_r($new_greet); //выводим полученный массив?>Пример 8.8. Использование функции str_replace(). Вариант 2 (html, txt) В результате получим такой массив: Array ([0] => Доброе утро[1] => Доброе утро всем![2] => Доброе утро, дорогая![3] => День добрый[4] => День добрый, товарищи[5] =>)Если значения для поиска – массив, а значение для замены – строка, то эта строка будет использована для замены всех найденных значений. Функция str_replace() чувствительна к регистру, но существует ее регистронезависимый аналог – функция str_ireplace(). Однако эта функция поддерживается не во всех версиях PHP. Еще один пример использования функции str_replace() – обработка шаблонов. Обратимся в очередной раз к описанию какого-либо документа, например статьи. Много раз мы уже создавали форму для ввода подобного описания и даже отображали данные, введенные пользователем в такого рода форму. Но как отображать эти данные, мы описывали непосредственно в коде нашей программы. Теперь мы хотим, чтобы способ отображения данных задавал сам пользователь. Для этого добавим в нашу форму еще один элемент для ввода шаблона. Однако просто поля для ввода шаблона недостаточно. Один человек введет в него одно, другой – другое. Нужно договориться о том, как создавать шаблоны, что можно в них использовать, т.е. нужно придумать язык шаблонов. Например, мы договариваемся, что при создании шаблона можно задействовать любые html-теги, а набор спецсимволов вида <!имя_элемента> определяет значение элемента с именем имя_элемента. Далее, как обрабатывать такого рода шаблоны? Можно использовать функцию str_replace(): <?php$tmpl = $_GET["shablon"]; /* шаблон, введенный пользователем. Например, это может быть такая строка:"<h1><!title></h1> <p><font size=-1><!description></font></p><p align=right><!author><br><!published></p>" */function Show(){ // функция, которая производит замену // элемента шаблона на его значениеglobal $tmpl;foreach($_GET as $k => $v) { $tmpl = str_replace("<!$k>",$v,$tmpl);}echo $tmpl;}Show();?>Как эти файлы выглядят для обычного пользователя? Если мы введем в форму такие данные как показано на рисунке 8.1, то в результате получим: Первая машина для переписи населенияИдея наносить данные на перфокарты и затемсчитывать и обрабатывать их автоматически принадлежала Джону Биллингсу, а ее техническое решение осуществил ГерманХоллерит. Перфокарта Холлерита оказалась настолько удачной, что без малейших измененийпросуществовала до наших дней. А. М. Федотов 12.02.03
Дата добавления: 2014-01-06; Просмотров: 337; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |