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().


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ