我有以下代码:
$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);
这在 PHP 7.2 上运行良好,但由于我将服务器更改为 Ubuntu 22.04 并且它使用 PHP 8.1,现在代码已损坏。
知道如何修复它吗?
$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
);