Autor Zpráva
PetraMachova
Profil *
Potřebovala bych script, který by mě řekl ... ano jedná se o externí URL s použitím http nebo www NEBO .... ne nejedná v případě, že to bude odkaz typu: ../slozka/obrazek.jpg
Neznáte něco takového?
ShiraNai7
Profil
No jediná "validní" externí adresa je taková, co začíná schématem (http://, https:// a tak dále). Takže si můžeš udělat například takovouto funkci:
function isAbsoluteUrl($url)
{
    return null !== parse_url($url, PHP_URL_SCHEME);
}

Nebo použít regulární výrazy (zde si můžeš taky vybrat, jaké schémata chceš podporovat):
function isAbsoluteUrl($url)
{
    return 0 !== preg_match('~^(http|https|ftp)://~', $url);
}

Regulárem můžeš taky přijmout jakékoliv schéma (stejně jako první funkce), pokud chceš:
function isAbsoluteUrl($url)
{
    return 0 !== preg_match('~^[a-z]+://~', $url);
}

---

Ukázky použití:

<?php

var_dump(isAbsoluteUrl('http://example.com/')); // true
var_dump(isAbsoluteUrl('image.jpg')); // false
var_dump(isAbsoluteUrl('../file.dat')); // false
var_dump(isAbsoluteUrl('www.seznam.cz')); // false (! - to je spravne, nejedna se o "externi" a absolutni url)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: