模式锟斤拷锟轿凤拷

锟斤拷锟斤拷锟叫筹拷锟剿碉拷前锟斤拷锟矫碉拷 PCRE 锟斤拷锟轿凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟结到锟斤拷锟斤拷锟斤拷锟斤拷 PCRE 锟节诧拷锟斤拷些锟斤拷锟轿凤拷锟斤拷锟斤拷锟狡★拷 模式锟斤拷锟轿凤拷锟叫的空格,伙拷锟叫凤拷锟结被锟斤拷锟皆o拷锟斤拷锟斤拷锟街凤拷锟结导锟铰达拷锟斤拷

i (PCRE_CASELESS)
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷模式锟叫碉拷锟斤拷母锟斤拷锟斤拷写锟叫⌒达拷锟斤拷锟斤拷锟狡ワ拷洹�
m (PCRE_MULTILINE)
默锟斤拷锟斤拷锟斤拷拢锟絇CRE 锟斤拷为目锟斤拷锟街凤拷锟斤拷锟斤拷锟缴碉拷锟斤拷锟街凤拷锟斤拷傻锟�(然锟斤拷实锟斤拷锟斤拷锟斤拷锟斤拷锟杰伙拷锟斤拷锟斤拷锟斤拷锟�)锟斤拷 "锟斤拷锟斤拷"元锟街凤拷 (^) 锟斤拷匹锟斤拷锟街凤拷锟斤拷锟侥匡拷始位锟矫o拷 锟斤拷"锟斤拷末"元锟街凤拷 ($) 锟斤拷匹锟斤拷锟街凤拷锟斤拷末尾锟斤拷 锟斤拷锟斤拷锟斤拷锟侥伙拷锟叫凤拷(锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 D 锟斤拷锟轿凤拷)锟斤拷锟斤拷锟斤拷锟轿拷锟� perl 锟斤拷同锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷畏锟斤拷锟斤拷锟街拷锟�"锟斤拷锟斤拷"锟斤拷"锟斤拷末"锟酵伙拷匹锟斤拷目锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟解换锟叫凤拷之前锟斤拷之锟斤拷锟斤拷锟解, 锟斤拷锟街憋拷匹锟斤拷目锟斤拷锟街凤拷锟斤拷锟斤拷锟筋开始锟斤拷锟斤拷末尾位锟矫★拷锟斤拷锟酵拷锟� perl 锟斤拷 /m 锟斤拷锟轿凤拷锟斤拷锟斤拷锟侥匡拷锟斤拷址锟斤拷锟� 锟斤拷没锟斤拷 "\n" 锟街凤拷锟斤拷锟斤拷锟斤拷模式锟斤拷没锟叫筹拷锟斤拷 ^ 锟斤拷 $锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷畏锟斤拷锟斤拷锟斤拷锟斤拷魏锟接帮拷臁�
s (PCRE_DOTALL)
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷模式锟叫的碉拷锟皆拷址锟狡ワ拷锟斤拷锟斤拷锟斤拷址锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷蟹锟斤拷锟斤拷锟斤拷没锟斤拷锟斤拷锟� 锟斤拷锟轿凤拷锟斤拷锟斤拷挪锟狡ワ拷浠伙拷蟹锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷同锟斤拷 perl 锟叫碉拷/s锟斤拷锟轿凤拷锟斤拷 一锟斤拷取锟斤拷锟街凤拷锟斤拷锟斤拷锟� [^a] 锟斤拷锟斤拷匹锟戒换锟叫凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷畏锟斤拷锟斤拷锟斤拷谩锟�
x (PCRE_EXTENDED)
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷模式锟叫碉拷没锟叫撅拷锟斤拷转锟斤拷幕锟斤拷锟斤拷址锟斤拷锟斤拷械目瞻锟斤拷锟斤拷锟斤拷址锟斤拷芑岜伙拷锟斤拷裕锟� 锟斤拷锟斤拷位锟斤拷一锟斤拷未转锟斤拷锟斤拷址锟斤拷锟斤拷獠匡拷锟�#锟街凤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟叫凤拷之锟斤拷锟斤拷址锟揭诧拷锟斤拷锟斤拷浴锟� 锟斤拷锟斤拷锟斤拷畏锟� 锟斤拷同锟斤拷 perl 锟叫碉拷 /x 锟斤拷锟轿凤拷锟斤拷使锟斤拷锟斤拷锟斤拷模式锟叫匡拷锟皆帮拷锟斤拷注锟酵★拷 注锟解:锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷址锟斤拷锟� 锟秸帮拷锟街凤拷 锟斤拷锟角诧拷锟斤拷锟斤拷模式锟斤拷锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟叫筹拷锟街o拷锟斤拷锟斤拷锟斤拷锟斤拷 (?( 锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷(锟斤拷注: 锟斤拷锟斤拷锟斤法锟斤拷锟斤拷锟� 锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷挚瞻锟斤拷址锟斤拷岬硷拷卤锟斤拷锟斤拷锟斤拷 锟斤拷锟斤拷(?(锟酵会导锟铰达拷锟斤拷)锟斤拷
e (PREG_REPLACE_EVAL)
Warning

This feature was DEPRECATED in PHP 5.5.0, and REMOVED as of PHP 7.0.0.

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟矫碉拷锟斤拷锟轿凤拷锟斤拷 preg_replace() 锟节斤拷锟斤拷锟剿讹拷锟芥换锟街凤拷锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟芥换之锟斤拷, 锟斤拷锟芥换锟斤拷锟斤拷址锟斤拷锟斤拷锟轿猵hp 锟斤拷锟斤拷锟斤拷锟斤拷执锟斤拷(eval 锟斤拷锟斤拷锟斤拷式)锟斤拷锟斤拷使锟斤拷执锟叫斤拷锟� 锟斤拷为实锟绞诧拷锟斤拷锟芥换锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟脚★拷双锟斤拷锟脚★拷锟斤拷斜锟斤拷(\)锟斤拷 NULL 锟街凤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟芥换时锟结被锟矫凤拷斜锟斤拷转锟斤拷.
Caution

The addslashes() function is run on each matched backreference before the substitution takes place. As such, when the backreference is used as a quoted string, escaped characters will be converted to literals. However, characters which are escaped, which would normally not be converted, will retain their slashes. This makes use of this modifier very complicated.

Caution

锟斤拷确锟斤拷 replacement 锟斤拷锟斤拷锟缴合凤拷 php 锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷桑锟斤拷锟斤拷锟� php 锟斤拷锟斤拷 锟斤拷preg_replace() 锟斤拷锟矫碉拷锟斤拷锟较诧拷锟斤拷一锟斤拷锟斤拷锟酵达拷锟斤拷

Caution

锟斤拷锟斤拷锟斤拷使锟矫达拷锟斤拷锟轿凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟阶诧拷锟斤拷锟斤拷全漏锟斤拷锟斤拷

<?php
$html 
$_POST['html'];

// uppercase headings
$html preg_replace(
    
'(<h([1-6])>(.*?)</h\1>)e',
    
'"<h$1>" . strtoupper("$2") . "</h$1>"',
    
$html
);

锟斤拷锟斤拷示锟斤拷锟斤拷锟斤拷锟杰癸拷锟斤拷锟斤拷锟斤拷锟斤拷锟街凤拷锟斤拷锟斤拷锟矫o拷 <h1>{${eval($_GET[php_code])}}</h1>锟斤拷 锟斤拷锟斤拷锟矫癸拷锟斤拷锟斤拷执锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷 PHP 锟斤拷锟诫,锟斤拷锟斤拷锟斤拷全锟斤拷透锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷

为锟斤拷锟斤拷止锟斤拷锟斤拷远锟教达拷锟斤拷执锟叫癸拷锟斤拷锟斤拷锟斤拷锟斤拷使锟斤拷 preg_replace_callback() 锟斤拷锟斤拷锟�

<?php
$html 
$_POST['html'];

// uppercase headings
$html preg_replace_callback(
    
'(<h([1-6])>(.*?)</h\1>)',
    function (
$m) {
        return 
"<h$m[1]>" strtoupper($m[2]) . "</h$m[1]>";
    },
    
$html
);

Note:

锟斤拷 preg_replace() 使锟矫达拷锟斤拷锟轿凤拷锟斤拷锟斤拷锟斤拷 PCRE 锟斤拷锟斤拷锟斤拷锟皆达拷锟斤拷锟轿凤拷锟斤拷

A (PCRE_ANCHORED)
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷模式锟斤拷强锟斤拷为"锚锟斤拷"模式锟斤拷也锟斤拷锟斤拷说约锟斤拷匹锟斤拷使锟斤拷锟斤拷锟� 目锟斤拷锟街凤拷锟斤拷锟侥匡拷始位锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫э拷锟酵拷锟斤拷锟斤拷锟绞癸拷锟斤拷实锟斤拷锟侥J斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 锟斤拷也锟斤拷 perl 锟斤拷实锟斤拷锟斤拷锟斤拷模式锟斤拷唯一途锟斤拷锟斤拷
D (PCRE_DOLLAR_ENDONLY)
锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷锟斤拷锟矫o拷模式锟叫碉拷元锟街凤拷锟斤拷元锟斤拷锟脚斤拷锟斤拷匹锟斤拷目锟斤拷锟街凤拷锟斤拷锟斤拷末尾锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷 没锟斤拷锟斤拷锟矫o拷锟斤拷锟街凤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟叫凤拷锟斤拷尾时锟斤拷 锟斤拷元锟斤拷锟脚伙拷锟斤拷匹锟斤拷没锟斤拷蟹锟�(锟斤拷锟斤拷锟斤拷匹锟斤拷之前锟斤拷锟轿何伙拷锟叫凤拷)锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷畏锟�m锟斤拷锟斤拷锟斤拷锟斤拷畏锟斤拷锟斤拷锟斤拷锟�. 锟斤拷 perl 锟斤拷没锟斤拷锟斤拷锟斤拷锟斤拷畏锟斤拷锟酵拷锟斤拷锟斤拷畏锟斤拷锟�
S
锟斤拷一锟斤拷模式锟斤拷要锟斤拷锟绞癸拷玫锟绞憋拷锟轿拷说玫锟狡ワ拷锟斤拷俣鹊锟斤拷锟斤拷锟斤拷锟街碉拷没锟斤拷锟揭恍┦憋拷锟� 锟斤拷锟斤拷锟斤拷锟揭恍╋拷锟斤拷锟侥凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟轿凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥凤拷锟斤拷锟酵伙拷执锟叫★拷锟斤拷前锟斤拷 锟斤拷锟街讹拷一锟斤拷模式锟侥凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟节凤拷锚锟斤拷模式锟斤拷匹锟斤拷(锟斤拷没锟叫碉拷锟斤拷锟侥固讹拷锟斤拷始锟街凤拷)锟斤拷
U (PCRE_UNGREEDY)
锟斤拷锟斤拷锟斤拷畏锟斤拷锟阶拷锟斤拷锟斤拷实锟�"贪锟斤拷"模式锟斤拷 使锟斤拷锟斤拷默锟斤拷为锟斤拷贪锟斤拷锟侥o拷通锟斤拷锟斤拷锟绞猴拷锟斤拷锟�? 锟侥凤拷式锟斤拷锟斤拷使锟斤拷锟轿帮拷锟斤拷摹锟斤拷锟斤拷 perl 锟角诧拷锟斤拷锟捷的★拷 锟斤拷同锟斤拷锟斤拷锟斤拷使锟斤拷 模式锟斤拷锟斤拷锟轿凤拷锟斤拷锟斤拷 (?U)锟斤拷锟斤拷锟斤拷锟矫o拷 锟斤拷锟斤拷锟斤拷锟斤拷锟绞猴拷锟斤拷锟绞号憋拷锟斤拷锟斤拷贪锟斤拷(锟斤拷锟斤拷.*?)锟斤拷

Note:

锟节凤拷贪锟斤拷模式锟斤拷通锟斤拷锟斤拷锟斤拷匹锟戒超锟斤拷 pcre.backtrack_limit 锟斤拷锟街凤拷锟斤拷

X (PCRE_EXTRA)
锟斤拷锟斤拷锟斤拷畏锟斤拷锟斤拷锟� PCRE 锟斤拷 perl 锟斤拷锟斤拷锟捷的革拷锟斤拷锟斤拷锟杰★拷模式锟叫碉拷锟斤拷锟解反斜锟竭猴拷锟� ingen 一锟斤拷 没锟斤拷锟斤拷锟解含锟斤拷锟斤拷址锟斤拷锟斤拷岬硷拷锟揭伙拷锟斤拷锟斤拷锟斤拷源吮锟斤拷锟斤拷锟叫╋拷址锟斤拷员锟街わ拷锟斤拷锟斤拷锟斤拷浴锟� 默锟斤拷锟斤拷锟斤拷拢锟斤拷锟� perl 锟叫o拷锟斤拷斜锟竭斤拷锟斤拷一锟斤拷没锟斤拷锟斤拷锟解含锟斤拷锟斤拷址锟斤拷锟斤拷锟轿拷歉锟斤拷址锟斤拷锟皆拷摹锟� 锟斤拷前没锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷畏锟斤拷锟斤拷啤锟�
J (PCRE_INFO_JCHANGED)
锟节诧拷选锟斤拷锟斤拷锟斤拷(?J)锟睫改憋拷锟截碉拷PCRE_DUPNAMES选锟筋。锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 (锟斤拷注锟斤拷只锟斤拷通锟斤拷锟节诧拷选锟斤拷锟斤拷锟矫o拷锟解部锟斤拷 /J 锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷锟�)
u (PCRE_UTF8)
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷 perl 锟斤拷锟斤拷锟捷的革拷锟接癸拷锟杰★拷 模式锟斤拷目锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷为锟斤拷 utf-8 锟侥★拷 锟斤拷效锟斤拷目锟斤拷锟街凤拷锟斤拷锟结导锟斤拷 preg_* 锟斤拷锟斤拷什么锟斤拷匹锟戒不锟斤拷锟斤拷 锟斤拷效锟斤拷模式锟街凤拷锟斤拷锟结导锟斤拷 E_WARNING 锟斤拷锟斤拷拇锟斤拷锟� PHP 5.3.4 锟斤拷5锟街节猴拷6锟街节碉拷 UTF-8 锟街凤拷锟斤拷锟叫憋拷锟斤拷锟斤拷为锟斤拷效锟斤拷resp. PCRE 7.3 2007-08-28锟斤拷锟斤拷 锟斤拷前锟酵憋拷锟斤拷为锟斤拷锟斤拷效锟斤拷 UTF-8锟斤拷