preg_match不显示/未知修饰符'我'

时间:2016-09-20 09:27:30

标签: php html preg-match

我对preg_match有疑问。 我有一个文本字段,用户可以在其中填写随机文本。但是当他们输入时:

  

[IMG]图片网址[/ IMG]

我希望[IMG] [/ IMG]之间的所有内容都放在一个变量中。

我现在拥有的:

if(isset($_POST['edit_signature_table'])){
    $string = $_POST['thread_message'];
    echo $string;

    if (preg_match('/[IMG](.*?)[/IMG]/', $string, $display)) {
        print_r($display);
    }else{
        echo "[IMG][/IMG] was not used.";   
    }
}

当我在表单中发布内容并按提交时。我得到了刚刚填写的结果。(由echo $ string完成)。

但是。我总是得到这个结果:

This is typed in the textfield. and contains [IMG]an image[/IMG] 
Warning: preg_match(): Unknown modifier 'I' in C:\xampp\htdocs\Proeven\Forum\profile.php on line 124 
[IMG][/IMG] was not used.

如你所见。第一行是$ string的结果。

然后我得到一个错误(行在if(preg_match))

然后转到else语句。

然而,在我的结果中,您可以看到我使用[IMG] [/ IMG],我希望结果为:图像

有人可以告诉我我做错了吗?

编辑:

人们贬低并说它是重复的。

我看了其他人的问题,但仍然不知道如何解决我的问题。

人们贬低。请告诉我为什么......我认为问题很清楚。

1 个答案:

答案 0 :(得分:1)

您需要逃避正则表达式才能使其正常工作。

preg_match('/[IMG](.*?)[/IMG]/', $string, $display)

变为

preg_match('/\[IMG\](.*?)\[\/IMG\]/', $string, $display)

您还可以在此处轻松尝试不同输入的正则表达式:http://www.phpliveregex.com/