I have the following code:
$comment_content = preg_replace_callback('/\[([^][]*)]\(([^()]*)\)|(\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|])/i',
create_function('$m','
if(isset($m[3])) {
return "<span><a href=\"".$m[3]."\" target=\"_blank\">آدرس بدون عنوان</a></span>";
} else {
return "<span><a href=\"".$m[2]."\" target=\"_blank\">".$m[1]."</a></span>";
}
'), $comment_content);
That was working well on PHP 7.2, but since I've changed my server to Ubuntu 22.04 and it uses PHP 8.1, now that code is broken.
Any idea how can I fix it?
$comment_content = preg_replace_callback('/\[([^][]*)]\(([^()]*)\)|(\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|])/i',
function ($m) {
if (isset($m[3])) {
return "<span><a href=\"".$m[3]."\" target=\"_blank\">آدرس بدون عنوان</a></span>";
} else {
return "<span><a href=\"".$m[2]."\" target=\"_blank\">".$m[1]."</a></span>";
}
},
$comment_content
);