2009-06-22 35 views
12

tôi tiếp tục nhận được lỗi này:Tại sao preg_replace lại ném cho tôi lỗi "Sửa đổi không xác định"?

Warning: preg_match() [function.preg-match]: Unknown modifier 't' in D:\xampp\htdocs\administrator\components\com_smms\functions\plugin.php on line 235

trên:

$PageContent = preg_replace($result->module_pregmatch, '', $PageContent); 

tôi làm một var_dump trên $ result-> module_pregmatch và tôi nhận được như sau:

string '/<title>(.*)</title>/Ui' (length=23) 

string '/<meta[^>]*name=["|\']description["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=77) 

string '/<meta[^>]*name=["|\']keywords["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=74) 

string '/<meta[^>]*name=["|\']author["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=72) 

string '/<meta[^>]*name=["|\']copyright["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=75) 

string '/<meta[^>]*name=["|\']robots["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=72) 

string '/<meta[^>]*http=equiv=["|\']content-language["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=88) 
string '/<meta[^>]*http-equiv=["|\']content-type["|\'][^>]*content=["|\'](.*)["|\']\s*\/>/Ui' (length=84) 

string '/<link[^>]*href=["|\'](.*)["|\'][^>]*rel=["|\']shortcut[^>]*icon["|\'][^>]*type=["|\']image\/x-icon["|\']\s*\/>/Ui' (length=114) 

string '/<link[^>]*href=["|\'](.*)["|\'][^>]*rel=["|\']alternate["|\'][^>]*type=["|\']application\/rss\+xml["|\'][^>]*title=["|\'](.*)["|\'][^>]\/>/Ui' (length=142) 

string '/<link[^>]*href=["|\'](.*)["|\'][^>]*rel=["|\']alternate["|\'][^>]*type=["|\']application\/atom\+xml["|\'][^>]*title=["|\'](.*)["|\'][^>]\/>/Ui' (length=143) 

Có thể ai đó hãy cho tôi biết tôi đang làm gì sai? Tôi đã bị kẹt lỗi này quá lâu ...

Trả lời

37

Bạn đang sử dụng dấu gạch chéo chuyển tiếp làm mẫu phân cách regex, vì vậy /<title>(.*)</title>/Ui' sẽ không hoạt động (</title> có dấu gạch chéo).

Bạn sẽ có thể thoát khỏi dấu gạch chéo hoặc sử dụng một delimiter khác nhau mà không được chứa trong các mô hình, ví dụ

'/<title>(.*)<\/title>/Ui' //(esacaping) 

hoặc

'~<title>(.*)</title>~Ui' //different delimiter 
Các vấn đề liên quan