Zadejte hledaný výraz...

Jak zkontrolovat řetězec, jestli je to URL

Petr Jeník
verified
rating uzivatele
(71 hodnocení)
20. 8. 2012 07:50:56
Zdravim
Jak mám zkontrolovat text, jestli je to URL adresa nebo není?
Na blogu jsem si udělal takový jednoduchý reklamní systém (viz povídání tady: http://owww.cz/inzerce-na-mem-blogu/ )
A lidi už tradičně nečtou a do kolonky URL mi dávají odkaz bez http://
Jak to mám zkotrolovat a poslat je zptáky to vyplnit správně?
Něco jako:
if (url není odkaz):
echo "nauč se číst. máš tam jasně napsáno, že odkaz se má vkládat i s http://";
endif;
20. 8. 2012 07:50:56
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798310
Naco chybovu hlasku ?
Staci osetrit ten formular tak, ze zadany retazec sa skontrluje a ak neobsahuje http:// tak sa to doplni.
20. 8. 2012 08:01:26
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798309
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
20. 8. 2012 08:05:50
ok - to je taky dobrej nápad
jak na to?
20. 8. 2012 08:05:50
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798308
Jan Kaiser
verified
rating uzivatele
(3 hodnocení)
20. 8. 2012 08:16:45
if(substr($hodnota_z_formulare, 0, 7) != "http://") { $hodnota_z_formulare = "http://".$hodnota_z_formulare; }
20. 8. 2012 08:16:45
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798307
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
20. 8. 2012 08:30:03
díkes
jen mě ještě napadlo - co když to začíná na https:// ?
nějaká finta ještě na tohle?
20. 8. 2012 08:30:03
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798306
Jan Kaiser
verified
rating uzivatele
(3 hodnocení)
20. 8. 2012 08:32:23
Myslíš jako ošetřit, aby to nepřidalo http:// před https:// ?
Pak by to bylo takhle:
if((substr($hodnota_z_formulare, 0, 7) != "http://") && (substr($hodnota_z_formulare, 0, 8) != "https://")) { $hodnota_z_formulare = "http://".$hodnota_z_formulare; }
20. 8. 2012 08:32:23
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798305
Petr Jeník
verified
rating uzivatele
(71 hodnocení)
20. 8. 2012 08:34:12
super
díky moc
20. 8. 2012 08:34:12
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798304
Jan Kaiser
verified
rating uzivatele
(3 hodnocení)
20. 8. 2012 08:34:56
np :)
20. 8. 2012 08:34:56
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798303
Luboš Lerch
verified
rating uzivatele
(38 hodnocení)
20. 8. 2012 08:47:29
Osobně ještě řeším ještě takto (kratší kód pro vícero protokolů):
function KompletniURL($url)
{
return (!preg_match("@^tt?ps?://@", $url)) ? 'http://' . $url : $url;
}
20. 8. 2012 08:47:29
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798302
Kontrolovat platnost URL není zcela triviální úkol.
Pokud ale chceš jen zjistit, jestli nechybí protokol na začátku, nezapomeň, že protokolů je celá řada
http://en.wikipedia.org/wiki/URI_scheme#Official_IANA-registered_schemes
A ne všechny jsou ukončené řetězcem
Z opomenutých např.
20. 8. 2012 10:40:56
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798301
Napsal Petr Jeník;833848
ok - to je taky dobrej nápad
jak na to?
1.) definuj si funkciu prep_url. Kod funkcie teba vlozit na vhodne miesto tak aby funkcia uz bola definovana v case jej volania. Idealne teda na zaciatok PHP suboru.
2.) Potom uz len staci tu funkciu zavolat na spravnom mieste v kode. Spravnym miestom sa rozumie cast kodu ktory sa vykona ihned po odoslani formularu. Cize pravdepodobne ...
Cize vo vysledku
Tu mas osetrene kompletne vsetko vratane protokolov :)
20. 8. 2012 10:41:47
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798300
rooticzek
verified
rating uzivatele
(3 hodnocení)
20. 8. 2012 13:20:10
Zkus http://www.php.net/manual/en/book.filter.php
a FILTER_VALIDATE_URL
dopredu odhaduji, ze pro URL s diakritikou bude potreba nejprve nahradit znaky
20. 8. 2012 13:20:10
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798299
Petr Zachrdla
verified
rating uzivatele
(1 hodnocení)
20. 8. 2012 14:14:14
doplň si protokoly, které poslal Martin Schlemmer.
vrací true, pokud v proměnné $text existuje adresa url.
20. 8. 2012 14:14:14
https://webtrh.cz/diskuse/jak-zkontrolovat-retezec-jestli-je-to-url/#reply798298
Pro odpověď se přihlašte.
Přihlásit