Это две функции, которые работают должным образом и протестированы мной.
function isImage($url) {
if (substr($url, 0, 7) == 'http://') {
$i = str_ireplace('http://', '', $url); // delete first part
$i = explode('/', $i); // divide link into parts
$end = end($i); // get the last part
$ex = explode('.', $end); // get the extension if exists so for 'image.jpg' $ex = jpg
if (count($ex) === 2) {
$allowed = array('jpg', 'jpeg', 'png', 'gif'); // allowed image extensions
foreach ($allowed as $a) {
if ($ex = $a) {
# Is an image
return true;
}
}
} else {
# It's an url
return false;
}
} else {
# It's not even a link
return false;
}
}
function isLink($url) {
if (substr($url, 0, 7) == 'http://') {
$i = str_ireplace('http://', '', $url); // delete first part
$i = explode('/', $url); // divide link into parts
$end = end($i); // get the last part
$ex = explode('.', $end); // get the extension if exists so for 'image.jpg' $ex = jpg
return (count($ex) == 0) ? true : false;
} else {
# It's not even a link
return false;
}
}
$image = isImage($input); // true
$link = isLink($input); // false
var_dump($image, $link);
Примеры (isLink()
):
Примеры (isImage()
):
(*) = Это потому, что он проверяет, имеет ли ссылка префикс http://
.Если вы не хотите, чтобы это произошло, вот функции:
function isImage($url) {
$i = explode('/', $i); // divide link into parts
$end = end($i); // get the last part
$ex = explode('.', $end); // get the extension if exists so for 'image.jpg' $ex = jpg
if (count($ex) === 2) {
$allowed = array('jpg', 'jpeg', 'png', 'gif'); // allowed image extensions
foreach ($allowed as $a) {
if ($ex = $a) {
# Is an image
return true;
}
}
} else {
# It's an url
return false;
}
}
function isLink($url) {
$i = explode('/', $url); // divide link into parts
$end = end($i); // get the last part
$ex = explode('.', $end); // get the extension if exists so for 'image.jpg' $ex = jpg
return (count($ex) == 0) ? true : false;
}
И затем вы можете использовать его как:
if (isLink($url)) { echo "<a href=\"$url\">$url</a>"; }
if (isImage($url)) { echo "<img src=\"$url\" alt=\"image\">"; }