i have a question about preg_match. I have a textfield, where users can fill in random text. However when they type:
[IMG]image url here[/IMG]
i want everything between [IMG][/IMG] to be put in a variable.
What i have now:
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.";
}
}
When i post something in the form and press submit. i get the result i just filled in. (done by echo $string).
But. i always get this result:
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.
As you can see. The first line is me result from $string.
Then i get an error (line is at if(preg_match))
And then it goes to the else statement.
However in my result, you can see that i used [IMG][/IMG] and i expect the result to be: an image
Can someone tell me what i'm doing wrong?
EDIT:
people downvoting and saying it is a duplicate.
I looked at other peoples questions about this, but still did not know how to solve my problem.
People downvoting. Please tell me why... The question is clear enough i think.
You need to escape your regex in order for it to work.
preg_match('/[IMG](.*?)[/IMG]/', $string, $display)
becomes
preg_match('/\[IMG\](.*?)\[\/IMG\]/', $string, $display)
you can also easily try your regex on different inputs here: http://www.phpliveregex.com/