假设您使用的是 PHP,并且 URL 存储在$url中:
if (!preg_match("@^https?\:\/\/@", $url)
{
$url = "http://$url";
}
if (preg_match("@\.(gif|jpe?g|png)$@", $url))
{
echo '<img src="' . $url . '" />"';
}
else
{
echo '<a href="' . $url . '" target="_blank">' . $url . </a>;
}
这不是一种精确的方法,因为某些图片可能会使用正确的 MIME 类型而不带有 gif、jpeg、jpg 或 png 扩展名。
这是检查链接是否指向图片的一种更好的方法,但它既费时又费带宽。因此,最好将结果同时存储在数据库中 $url ,以供以后重用:
if (!preg_match("@^https?\:\/\/@", $url)
{
$url = "http://$url";
}
$headers = get_headers($url, 1);
$mime_type = isset($headers["Content-Type"]) ? $headers["Content-Type"] : "";
if (preg_match("@\.(gif|jpe?g|png)$@", $url) || preg_match("@^image\/@", $mime_type))
{
$html = '<img src="' . $url . '" />"';
}
else
{
$html = '<a href="' . $url . '" target="_blank">' . $url . '</a>';
}