preg_replace

(PHP 3>= 3.0.9, PHP 4 , PHP 5)

preg_replace -- бШОНКМЪЕР ОНХЯЙ Х ГЮЛЕМС ОН ПЕЦСКЪПМНЛС БШПЮФЕМХЧ

нОХЯЮМХЕ

mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])

бШОНКМЪЕР ОНХЯЙ Б ЯРПНЙЕ subject ЯНБОЮДЕМХИ Я ЬЮАКНМНЛ pattern Х ГЮЛЕМЪЕР ХУ МЮ replacement. б ЯКСВЮЕ, ЕЯКХ ОЮПЮЛЕРП limit СЙЮГЮМ, АСДЕР ОПНХГБЕДЕМЮ ГЮЛЕМЮ limit БУНФДЕМХИ ЬЮАКНМЮ; Б ЯКСВЮЕ, ЕЯКХ limit НОСЫЕМ КХАН ПЮБМЪЕРЯЪ -1, АСДСР ГЮЛЕМЕМШ БЯЕ БУНФДЕМХЪ ЬЮАКНМЮ.

Replacement ЛНФЕР ЯНДЕПФЮРЭ ЯЯШКЙХ БХДЮ \\n КХАН (МЮВХМЮЪ Я PHP 4.0.4) $n, ОПХВЕЛ ОНЯКЕДМХИ БЮПХЮМР ОПЕДОНВРХРЕКЭМЕИ. йЮФДЮЪ РЮЙЮЪ ЯЯШКЙЮ, АСДЕР ГЮЛЕМЕМЮ МЮ ОНДЯРПНЙС, ЯННРБЕРЯРБСЧЫСЧ n'ММНИ ГЮЙКЧВЕММНИ Б ЙПСЦКШЕ ЯЙНАЙХ ОНДЛЮЯЙЕ. n ЛНФЕР ОПХМХЛЮРЭ ГМЮВЕМХЪ НР 0 ДН 99, ОПХВЕЛ ЯЯШКЙЮ \\0 (КХАН $0) ЯННРБЕРЯРБСЕР БУНФДЕМХЧ БЯЕЦН ЬЮАКНМЮ. оНДЛЮЯЙХ МСЛЕПСЧРЯЪ ЯКЕБЮ МЮОПЮБН, МЮВХМЮЪ Я ЕДХМХЖШ.

оПХ ХЯОНКЭГНБЮМХХ ГЮЛЕМШ ОН ЬЮАКНМС Я ХЯОНКЭГНБЮМХЕЛ ЯЯШКНЙ МЮ ОНДЛЮЯЙХ ЛНФЕР БНГМХЙМСРЭ ЯХРСЮЖХЪ, ЙНЦДЮ МЕОНЯПЕДЯРБЕММН ГЮ ЛЮЯЙНИ ЯКЕДСЕР ЖХТПЮ. б РЮЙНЛ ЯКСВЮЕ МНРЮЖХЪ БХДЮ \\n ОПХБНДХР Й НЬХАЙЕ: ЯЯШКЙЮ МЮ ОЕПБСЧ ОНДЛЮЯЙС, ГЮ ЙНРНПНИ ЯКЕДСЕР ЖХТПЮ 1, ГЮОХЬЕРЯЪ ЙЮЙ \\11, ВРН АСДЕР ХМРЕПОПЕРХПНБЮМН ЙЮЙ ЯЯШКЙЮ МЮ НДХММЮДЖЮРСЧ ОНДЛЮЯЙС. щРН МЕДНПЮГСЛЕМХЕ ЛНФМН СЯРПЮМХРЭ, ЕЯКХ БНЯОНКЭГНБЮРЭЯЪ ЙНМЯРПСЙЖХЕИ \${1}1, СЙЮГШБЮЧЫЕИ МЮ ХГНКХПНБЮММСЧ ЯЯШКЙС МЮ ОЕПБСЧ ОНДЛЮЯЙС, Х ЯКЕДСЧЫСЧ ГЮ МЕИ ЖХТПС 1.

Пример 1. хЯОНКЭГНБЮМХЕ ОНДЛЮЯНЙ, ГЮ ЙНРНПШЛХ ЯКЕДСЕР ЖХТПЮ

<?php
$string
= "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo
preg_replace($pattern, $replacement, $string);
?>

пЕГСКЭРЮРНЛ ПЮАНРШ ЩРНЦН ОПХЛЕПЮ АСДЕР:

April1,2003

еЯКХ БН БПЕЛЪ БШОНКМЕМХЪ ТСМЙЖХХ АШКХ НАМЮПСФЕМШ ЯНБОЮДЕМХЪ Я ЬЮАКНМНЛ, АСДЕР БНГБПЮЫЕМН ХГЛЕМЕММНЕ ГМЮВЕМХЕ subject, Б ОПНРХБМНЛ ЯКСВЮЕ АСДЕР БНГБПЮЫЕМ ХЯУНДМШИ РЕЙЯР subject.

оЕПБШЕ РПХ ОЮПЮЛЕРПЮ ТСМЙЖХХ preg_replace() ЛНЦСР АШРЭ НДМНЛЕПМШЛХ ЛЮЯЯХБЮЛХ. б ЯКСВЮЕ, ЕЯКХ ЛЮЯЯХБ ХЯОНКЭГСЕР ЙКЧВХ, ОПХ НАПЮАНРЙЕ ЛЮЯЯХБЮ НМХ АСДСР БГЪРШ Б РНЛ ОНПЪДЙЕ, Б ЙНРНПНЛ НМХ ПЮЯОНКНФЕМШ Б ЛЮЯЯХБЕ. сЙЮГЮМХЕ ЙКЧВЕИ Б ЛЮЯЯХБЕ ДКЪ pattern Х replacement МЕ ЪБКЪЕРЯЪ НАЪГЮРЕКЭМШЛ. еЯКХ БШ БЯЕ ФЕ ПЕЬХКХ ХЯОНКЭГНБЮРЭ ХМДЕЙЯШ, ДКЪ ЯНОНЯРЮБКЕМХЪ ЬЮАКНМНБ Х ЯРПНЙ, СВЮЯРБСЧЫХУ Б ГЮЛЕМЕ, ХЯОНКЭГСИРЕ ТСМЙЖХЧ ksort() ДКЪ ЙЮФДНЦН ХГ ЛЮЯЯХБНБ.

Пример 2. хЯОНКЭГНБЮМХЕ ЛЮЯЯХБНБ Я ВХЯКНБШЛХ ХМДЕЙЯЮЛХ Б ЙЮВЕЯРБЕ ЮПЦСЛЕМРНБ ТСМЙЖХХ preg_replace()

<?php
$string
= "The quick brown fox jumped over the lazy dog.";

$patterns[0] = "/quick/";
$patterns[1] = "/brown/";
$patterns[2] = "/fox/";

$replacements[2] = "bear";
$replacements[1] = "black";
$replacements[0] = "slow";

echo
preg_replace($patterns, $replacements, $string);
?>

пЕГСКЭРЮР:

The bear black slow jumped over the lazy dog.

хЯОНКЭГСЪ ksort(), ОНКСВЮЕЛ ФЕКЮЕЛШИ ПЕГСКЭРЮР:

<?php

ksort
($patterns);
ksort($replacements);

echo
preg_replace($patterns, $replacements, $string);

?>

пЕГСКЭРЮР:

The slow black bear jumped over the lazy dog.

б ЯКСВЮЕ, ЕЯКХ ОЮПЮЛЕРП subject ЪБКЪЕРЯЪ ЛЮЯЯХБНЛ, ОНХЯЙ Х ГЮЛЕМЮ ОН ЬЮАКНМС ОПНХГБНДЪРЯЪ ДКЪ ЙЮФДНЦН ХГ ЕЦН ЩКЕЛЕМРНБ. бНГБПЮЫЮЕЛШИ ПЕГСКЭРЮР РЮЙФЕ АСДЕР ЛЮЯЯХБНЛ.

б ЯКСВЮЕ, ЕЯКХ ОЮПЮЛЕРПШ pattern Х replacement ЪБКЪЧРЯЪ ЛЮЯЯХБЮЛХ, preg_replace() ОННВЕПЕДМН ХГБКЕЙЮЕР ХГ НАНХУ ЛЮЯЯХБНБ ОН ОЮПЕ ЩКЕЛЕМРНБ Х ХЯОНКЭГСЕР ХУ ДКЪ НОЕПЮЖХХ ОНХЯЙЮ Х ГЮЛЕМШ. еЯКХ ЛЮЯЯХБ replacement ЯНДЕПФХР АНКЭЬЕ ЩКЕЛЕМРНБ, ВЕЛ pattern, БЛЕЯРН МЕДНЯРЮЧЫХУ ЩКЕЛЕМРНБ ДКЪ ГЮЛЕМШ АСДСР БГЪРШ ОСЯРШЕ ЯРПНЙХ. б ЯКСВЮЕ, ЕЯКХ pattern ЪБКЪЕРЯЪ ЛЮЯЯХБНЛ, Ю replacement - ЯРПНЙНИ, ОН ЙЮФДНЛС ЩКЕЛЕМРС ЛЮЯЯХБЮ pattern АСДЕР НЯСЫЕЯБРКЕМ ОНХЯЙ Х ГЮЛЕМЮ МЮ pattern (ЬЮАКНМНЛ АСДСР ОННВЕПЕДМН БЯЕ ЩКЕЛЕМРШ ЛЮЯЯХБЮ, Б РН БПЕЛЪ ЙЮЙ ЯРПНЙЮ ГЮЛЕМШ НЯРЮЕРЯЪ ТХЙЯХПНБЮММНИ). бЮПХЮМР, ЙНЦДЮ pattern ЪБКЪЕРЯЪ ЯРПНЙНИ, Ю replacement - ЛЮЯЯХБНЛ, МЕ ХЛЕЕР ЯЛШЯКЮ.

лНДХТХЙЮРНП /e ЛЕМЪЕР ОНБЕДЕМХЕ ТСМЙЖХХ preg_replace() РЮЙХЛ НАПЮГНЛ, ВРН ОЮПЮЛЕРП replacement ОНЯКЕ БШОНКМЕМХЪ МЕНАУНДХЛШУ ОНДЯРЮМНБНЙ ХМРЕПОПЕРХПСЕРЯЪ ЙЮЙ PHP-ЙНД Х РНКЭЙН ОНЯКЕ ЩРНЦН ХЯОНКЭГСЕРЯЪ ДКЪ ГЮЛЕМШ. хЯОНКЭГСЪ ДЮММШИ ЛНДХТХЙЮРНП, АСДЭРЕ БМХЛЮРЕКЭМШ: ОЮПЮЛЕРП replacement ДНКФЕМ ЯНДЕПФЮРЭ ЙНППЕЙРМШИ PHP-ЙНД, Б ОПНРХБМНЛ ЯКСВЮЕ Б ЯРПНЙЕ, ЯНДЕПФЮЫЕИ БШГНБ ТСМЙЖХХ preg_replace(), БНГМХЙМЕР НЬХАЙЮ ЯХМРЮЙЯХЯЮ.

Пример 3. гЮЛЕМЮ ОН МЕЯЙНКЭЙХЛ ЬЮАКНМЮЛ

<?php
$patterns
= array ("/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/",
                   
"/^\s*{(\w+)}\s*=/");
$replace = array ("\\3/\\4/\\1\\2", "$\\1 =");
echo
preg_replace($patterns, $replace, "{startDate} = 1999-5-27");
?>

щРНР ОПХЛЕП БШБЕДЕР:

$startDate = 5/27/1999

Пример 4. хЯОНКЭГНБЮМХЕ ЛНДХТХЙЮРНПЮ /e

<?php
preg_replace
("/(<\/?)(\w+)([^>]*>)/e",
              
"'\\1'.strtoupper('\\2').'\\3'",
              
$html_body);
?>

оПЕНАПЮГСЕР БЯЕ HTML-РЕЦХ Й БЕПУМЕЛС ПЕЦХЯРПС

Пример 5. йНМБЕПРНП HTML Б РЕЙЯР

<?php
// $document МЮ БШУНДЕ ДНКФЕМ ЯНДЕПФЮРЭ HTML-ДНЙСЛЕМР.
// мЕНАУНДХЛН СДЮКХРЭ БЯЕ HTML-РЕЦХ, ЯЕЙЖХХ javascript,
// ОПНАЕКЭМШЕ ЯХЛБНКШ. рЮЙФЕ МЕНАУНДХЛН ГЮЛЕМХРЭ МЕЙНРНПШЕ
// HTML-ЯСЫМНЯРХ МЮ ХУ ЩЙБХБЮКЕМР.

$search = array ("'<script[^>]*?>.*?</script>'si",  // бШПЕГЮЕР javaScript
                 
"'<[\/\!]*?[^<>]*?>'si",           // бШПЕГЮЕР HTML-РЕЦХ
                 
"'([\r\n])[\s]+'",                 // бШПЕГЮЕР ОПНАЕКЭМШЕ ЯХЛБНКШ
                 
"'&(quot|#34);'i",                 // гЮЛЕМЪЕР HTML-ЯСЫМНЯРХ
                 
"'&(amp|#38);'i",
                 
"'&(lt|#60);'i",
                 
"'&(gt|#62);'i",
                 
"'&(nbsp|#160);'i",
                 
"'&(iexcl|#161);'i",
                 
"'&(cent|#162);'i",
                 
"'&(pound|#163);'i",
                 
"'&(copy|#169);'i",
                 
"'&#(\d+);'e");                    // ХМРЕПОПЕРХПНБЮРЭ ЙЮЙ php-ЙНД

$replace = array ("",
                  
"",
                  
"\\1",
                  
"\"",
                  
"&",
                  
"<",
                  
">",
                  
" ",
                  
chr(161),
                  
chr(162),
                  
chr(163),
                  
chr(169),
                  
"chr(\\1)");

$text = preg_replace($search, $replace, $document);
?>

Замечание: оЮПЮЛЕРП limit ДНЯРСОЕМ Б PHP 4.0.1pl2 Х БШЬЕ.

яЛНРПХРЕ РЮЙФЕ preg_match(), preg_match_all(), Х preg_split().


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