Проблем с preg_match

Dizasterr

Registered
Здравейте! Имам проблем с функцията preg_match като грешката е в моя код, но немога да я открия. Става въпрос за защита на линковете. Ето какво написах:
Код:
        $url = $_POST['url'];
        if(!preg_match('/^http:\/\/www\.[a-zA-Z0-9\._\-]{1,20}+\.[a-z0-9\-]{1,6}+\/[a-zA-Z0-9а-яА-Я:\.]{0,50}$/', $url)) {
            die("Невалиден линк!");
        }
Но винаги ми показва Невалиден линк дори когато линкът е такъв: http://www.myimage.com/lajfasgasf. Ако може да ми обесните грешката без код аз сам да го оправя или по - точно да се помъча да го оправя.
 
<?php
//$url = $_POST['url'];
$url = "http://www.myimage.com/lajfasgasf";
if(!preg_match('/^http:\/\/(www)?\.[a-zA-Z0-9\._\-]{1,20}\.[a-z0-9\-]{1,6}\/[a-zA-Z0-9а-яА-Я:\.]{0,50}$/', $url)) {
die("Невалиден линк!");
}
?>
 
Код:
/^http:\/\/www\.[a-zA-Z0-9\._\-]+\.[a-z0-9\-]+\/[a-zA-Z0-9а-яА-Я:\.]{0,50}$/
Няма такова нещо като {1,6} и + след него. Използваш само едното, но има и друг вариант да ги слееш и двете и да получиш {1,}.
 
emagi каза:
<?php
//$url = $_POST['url'];
$url = "http://www.myimage.com/lajfasgasf";
if(!preg_match('/^http:\/\/(www)?\.[a-zA-Z0-9\._\-]{1,20}\.[a-z0-9\-]{1,6}\/[a-zA-Z0-9а-яА-Я:\.]{0,50}$/', $url)) {
die("Невалиден линк!");
}
?>
Благодаря много +1 :?: .
 

Back
Горе