Hi I’m using the following code but I’m getting an “unexpected T_FUNCTION” syntax error for the second line. Any suggestions?
preg_replace_callback("/\\[LINK\=(.*?)\\\](.*?)\\[\/LINK\\]/is",
function (array $matches) {
if (filter_var($matches[1], FILTER_VALIDATE_URL))
return '<a href="'.
htmlspecialchars($matches[1], ENT_QUOTES).
'" target="_blank">'.
htmlspecialchars($matches[2])."</a>";
else
return "INVALID MARKUP";
}, $text);
That happens when your PHP is older than 5.3. Anonymous function support wasn’t available until 5.3, so PHP won’t recognize function signatures passed as parameters like that.
You’ll have to create a function the traditional way, and pass its name instead (I use
link_code()for example):Also,
array $matchesis not a problem because type hinting for arrays is supported in PHP 5.2.