Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/10/2023, 06:42
Avatar de zerpico_01
zerpico_01
 
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 4 meses
Puntos: 13
Respuesta: Detectar si una url externa existe

Cita:
Iniciado por schattenburg Ver Mensaje
Hola, estoy intentando detectar si existe una imagen de una url externa, he probado con file_exist, con is_file, con CURL, con file_get_contents, etcétera pero nada, no lo consigo.

El código básico sería algo así como:

$url = "https://otroservidor.com/imagen/img11.jpg";
if (file_exists($url)) {
echo "SI";
}
else {
echo "No";
}

¿Cómo conseguis vosotros saber si existe esa imagen?

Gracias por adelantado.
Hola, entre para ver si podía loguearme hace años que no ingreso, que nostalgia jajaja.
en fin lo que se me ocurre al azar pues vamos a ello,
Si lo que espera es una imagen, deberia saber si la url contine una imagen, pues puede contener cualquier head como respuesta., lo que se me ocurre es algo así:

Código PHP:

<?php

/** opcion 1 */
function imgExists($url) {
    if (
getimagesize($url)) {
        echo 
'es una imagen';
    } else {
        echo 
'no es imagen';
    }
}
imgExists('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png');

/** opcion 2 */

function imgExists($url) {
    if (
getimagesize($url)) {
        return 
'exite y es una imagen';
    } else {
        return 
'no existe o no es una imagen';
    }
}
echo 
imgExists('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png');

/** oopcion 3 */

function imgExists($url) {
    return 
getimagesize($url);
}

$file_img imgExists('https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png');

if (
$file_img) {
    echo 
'no es imagen';
} else {
    echo 
'no existe o no es imagen';
}

if (!
$file_img) {
    echo 
'no existe no es imagen';
} else {
    echo 
'es imagen';
}

/**
 * ma guena :D
 * puedes agregar mas funciones y jugar con todos los datos obtenidos
 * @getimagesize retorna un array de info
 * NOTE leeeeeeeeeeeeeeeeeeee!!!
 * @see https://www.php.net/manual/es/function.getimagesize.php
 * ponemos static para evitar estar haciendo new para llamar a la class...
 */

class decimeSiestas
{
    public static function 
estasOnoTas(string $url)
    {
        return 
getimagesize($url);
    }
}

$imgs decimeSiestas::estasOnoTas('https://www.google.com');

if (
$imgs) echo 'hola';

if (!
$imgs) echo 'no exite no es una imgen';

suerte
__________________
Es duro fracasar en algo, pero es mucho peor no haberlo intentado. - Si crees todo lo que lees, mejor no leas -