12

我不断收到此错误:

警告:preg_match() [function.preg-match]:第 235 行 D:\xampp\htdocs\administrator\components\com_smms\functions\plugin.php 中的未知修饰符 't'

在:

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

我在 $result->module_pregmatch 上做了一个 var_dump,得到以下信息:

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)

有人可以告诉我我做错了什么吗?我已经被这个错误困住太久了......

4

1 回答 1

39

您正在使用正斜杠作为正则表达式模式分隔符,因此/<title>(.*)</title>/Ui'将不起作用(</title>有正斜杠)。

您应该能够转义正斜杠或使用不包含在模式中的不同分隔符,例如

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

或者

'~<title>(.*)</title>~Ui' //different delimiter
于 2009-06-22T10:08:32.083 回答