Andi: URL richtig testen -> Lösung

Beitrag lesen

Ich durchlaufe einfach zweimal ein preg_match, und wenn http fehlt, schreibe ich es in den String vorher dazu. Ich denke die Lösung funktioniert. Vieleicht sollte man anschliessend zur sicherheit nochmals mit

filter_var($string, FILTER_VALIDATE_URL);

testen

$string = 'example.com';

if (preg_match('/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $string))	
	{
	echo'ok';
	}
elseif (preg_match('/^([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $string))	
	{
	$string ='http://'.$string;
	echo'ok';
	}
else
	{
	echo'NO';
	}