PHP-Fusion
v.7.01
AP-Fusion
v7.02.05
Pimped-Fusion-AP
v0.09.03
November 25 2024 19:44:46
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Мини-чат
Вы должны авторизироваться, чтобы добавить сообщение.

lom
06/04/2018 14:03
Мы рады, ждем девятку. Очень хочется пощупать

Alipapa
27/03/2018 22:16
Всем привет, все неисправности устранили, всё у нас работает

mukaton
30/10/2015 02:37
Не получается ничего скачать. Ошибка Not Found

Alipapa
06/10/2015 23:00
9-я версия php-fusion на подходе, следите за новостями

Alipapa
10/11/2014 11:24
Заметь, я дважды ответил через 3 минуты после вопроса, могли бы уже решить

Последние статьи
· О стабилизаторах нап...
· СМС и Вебмани
· TinyMCE для пользова...
· PCRE (Perl Compatibl...
· PCRE (Perl Compatibl...
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
PHP-Fusion 7 Bogatyr - бесп...
Моды, плагины
7742 1 Vveb--ws
08-10-2018 16:47
Php-Fusion v9. Первые впеча...
Вопросы по работе
5028 3 Vveb--ws
25-07-2018 13:46
Появился хэлп по PHP-Fusion...
Вопросы по работе
7190 7 Vveb--ws
25-07-2018 13:42
prestashop&ap-fusion
Вопросы по работе
18311 61 Alipapa
26-08-2014 10:29
Плагин магазина Ap-Shop
Моды, плагины
15372 70 Alipapa
18-08-2014 18:14
TinyMCE
Вопросы по работе
21935 55 Alipapa
27-07-2013 21:57
HTML-5
Моды, плагины
5790 1 Alipapa
15-06-2013 19:47
Мультиязычность в Pimped-Fu...
Ошибки, баги, глюки
6678 4 Papich
16-04-2013 12:39
Pimped-Fusion. Первые впеча...
Ошибки, баги, глюки
23360 127 Alipapa
18-12-2012 10:59
Ищу мод для расстановки код...
Моды, плагины
15626 55 Alipapa
17-09-2012 14:00
Как присоединить файл к лич...
Моды, плагины
8550 3 lom
27-05-2012 18:12
Что мне не нравится в после...
Вопросы по работе
7152 4 Alipapa
27-05-2012 18:08
Проблемы с добавлением кате...
Вопросы по работе
8120 5 Alipapa
27-05-2012 18:06

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5)

preg_replace_callback -- Выполняет поиск по регулярному выражению и замену с использованием функции обратного вызова

Описание

mixed preg_replace_callback ( mixed pattern, callback callback, mixed subject [, int limit] )

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

Пример 1. preg_replace_callback() пример

<?php
  
// Этот текст был использован в 2002 году
  // мы хотим обновить даты к 2003 году
  
$text = "April fools day is 04/01/2002\n" ;
  
$text .= "Last christmas was 12/24/2001\n" ;

  
// функция обратного вызова
  
function next_year ( $matches )
  {
    
// как обычно: $matches[0] -  полное вхождение шаблона
    // $matches[1] - вхождение первой подмаски,
    // заключенной в круглые скобки, и так далее...
    
return $matches [ 1 ].( $matches [ 2 ]+ 1 );
  }

  echo
preg_replace_callback (
              
"|(\d{2}/\d{2}/)(\d{4})|" ,
              
"next_year" ,
              
$text );

  
// результат:
  // April fools day is 04/01/2003
  // Last christmas was 12/24/2002
?>

Достаточно часто callback функция, кроме как в вызове preg_replace_callback(), ни в чем больше не участвует. Исходя из этих соображений, можно использовать create_function() для создания безымянной функции обратного вызова непосредственно в вызове preg_replace_callback(). Если вы используете такой подход, вся информация, связанная с заменой по регулярному выражению, будет собрана в одном месте, и пространство имен функций не будет загромождаться неиспользуемыми записями.

Пример 2. preg_replace_callback() и create_function()

<?php
  
/* фильтр, подобный тому, что используется в системах Unix
   * для преобразования в заглавные начальных букв параграфа */

  
$fp = fopen ( "php://stdin" , "r" ) or die( "can't read stdin" );
  while (!
feof ( $fp )) {
      
$line = fgets ( $fp );
      
$line = preg_replace_callback (
          
'|<p>\s*\w|' ,
          
create_function (
              
// Использование одиночных кавычек в данном случае принципиально,
              // альтернатива - экранировать все символы '$'
              
'$matches' ,
              
'return strtolower($matches[0]);'
          
),
          
$line
      
);
      echo
$line ;
  }
  
fclose ( $fp );
?>

Смотрите также preg_replace() и create_function().

Все функции PHP:
Навигация
· Новости
· Статьи
· Скачать
· Форум
· Ссылки
· Категории новостей
· Обратная связь
· Галерея
· Поиск
· CMS AP-Fusion. Отличия от PHP-Fusion
· Javascript справочник
· Техника
Сейчас на сайте
· Гостей: 20

· Пользователей: 0

· Всего пользователей: 453
· Новый пользователь: ZDA
Информеры
Загрузка файлов  +  -
10,247,083 уникальных посетителей Iceberg by Harly