�����г��˵�ǰ���õ� PCRE ���η����������ᵽ�������� PCRE �ڲ���Щ���η������ơ� ģʽ���η��еĿո��з��ᱻ���ԣ������ַ��ᵼ�´���
- i (PCRE_CASELESS)
- ���������������η���ģʽ�е���ĸ����д�Сд������ƥ�䡣
- m (PCRE_MULTILINE)
- Ĭ������£�PCRE ��ΪĿ���ַ������ɵ����ַ���ɵ�(Ȼ��ʵ���������ܻ��������)�� "����"Ԫ�ַ� (^) ��ƥ���ַ����Ŀ�ʼλ�ã� ��"��ĩ"Ԫ�ַ� ($) ��ƥ���ַ���ĩβ�� �������Ļ��з�(���������� D ���η�)�������Ϊ�� perl ��ͬ�� ��������η�����֮��"����"��"��ĩ"�ͻ�ƥ��Ŀ���ַ���������з�֮ǰ��֮�����⣬ ���ֱ�ƥ��Ŀ���ַ������ʼ����ĩβλ�á����ͬ�� perl �� /m ���η������Ŀ���ַ��� ��û�� "\n" �ַ�������ģʽ��û�г��� ^ �� $������������η��������κ�Ӱ�졣
- s (PCRE_DOTALL)
- ���������������η���ģʽ�еĵ��Ԫ�ַ�ƥ�������ַ����������з������û����� ���η�����Ų�ƥ�任�з���������η���ͬ�� perl �е�/s���η��� һ��ȡ���ַ������ [^a] ����ƥ�任�з�������������������η������á�
- x (PCRE_EXTENDED)
- ���������������η���ģʽ�е�û�о���ת��Ļ����ַ����еĿհ������ַ��ܻᱻ���ԣ� ����λ��һ��δת����ַ����ⲿ��#�ַ�����һ�����з�֮����ַ�Ҳ�����ԡ� ������η� ��ͬ�� perl �е� /x ���η���ʹ������ģʽ�п�����ע�͡� ע�⣺������������ַ��� �հ��ַ� ���Dz�����ģʽ�������ַ������г��֣��������� (?( ������һ����������(��ע: ���������� �����ַ�������������ֿհ��ַ��ᵼ�±������ ����(?(�ͻᵼ�´���)��
- e (PREG_REPLACE_EVAL)
Warning�����������������õ����η��� preg_replace() �ڽ����˶��滻�ַ����� ���������滻֮��, ���滻����ַ�����Ϊphp ��������ִ��(eval ������ʽ)����ʹ��ִ�н�� ��Ϊʵ�ʲ����滻���ַ����������š�˫���š���б��(\)�� NULL �ַ��� ���������滻ʱ�ᱻ�÷�б��ת��.This feature was DEPRECATED in PHP 5.5.0, and REMOVED as of PHP 7.0.0.
CautionThe 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
);����ʾ�������ܹ����������ַ������ã� <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)
- ���������������η���ģʽ��ǿ��Ϊ"ê��"ģʽ��Ҳ����˵Լ��ƥ��ʹ����� Ŀ���ַ����Ŀ�ʼλ�����������Ч��ͬ������ʹ���ʵ���ģʽ������������� ��Ҳ�� perl ��ʵ������ģʽ��Ψһ;����
- D (PCRE_DOLLAR_ENDONLY)
- ���������η������ã�ģʽ�е�Ԫ�ַ���Ԫ���Ž���ƥ��Ŀ���ַ�����ĩβ�����������η� û�����ã����ַ�����һ�����з���βʱ�� ��Ԫ���Ż���ƥ��û��з�(������ƥ��֮ǰ���κλ��з�)�� ������������η�m��������η�������. �� perl ��û��������η���ͬ�����η���
- S
- ��һ��ģʽ��Ҫ���ʹ�õ�ʱ��Ϊ�˵õ�ƥ���ٶȵ�������ֵ�û���һЩʱ�� �������һЩ����ķ��������������������η����������ķ����ͻ�ִ�С���ǰ�� ���ֶ�һ��ģʽ�ķ������������ڷ�ê��ģʽ��ƥ��(��û�е����Ĺ̶���ʼ�ַ�)��
- U (PCRE_UNGREEDY)
- ������η���ת�����ʵ�"̰��"ģʽ�� ʹ����Ĭ��Ϊ��̰���ģ�ͨ�����ʺ����? �ķ�ʽ����ʹ���Ϊ̰���ġ���� perl �Dz����ݵġ� ��ͬ������ʹ�� ģʽ�����η����� (?U)�������ã� ���������ʺ����ʺű�����̰��(����.*?)��
Note:
�ڷ�̰��ģʽ��ͨ������ƥ�䳬�� pcre.backtrack_limit ���ַ���
- X (PCRE_EXTRA)
- ������η����� PCRE �� perl �����ݵĸ������ܡ�ģʽ�е����ⷴб�ߺ�� ingen һ�� û�����⺬����ַ����ᵼ��һ�������Դ˱�����Щ�ַ��Ա�֤�������ԡ� Ĭ������£��� perl �У���б�߽���һ��û�����⺬����ַ�����Ϊ�Ǹ��ַ���ԭ�ġ� ��ǰû������������������η����ơ�
- J (PCRE_INFO_JCHANGED)
- �ڲ�ѡ������(?J)�ı��ص�PCRE_DUPNAMESѡ��������������� (��ע��ֻ��ͨ���ڲ�ѡ�����ã��ⲿ�� /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��