Avatar billede dennism Nybegynder
22. februar 2007 - 10:20 Der er 12 kommentarer og
2 løsninger

PHP: isValidUrl?

Er der nogen der kan hjælpe mig med en isValidUrl-funktion, som skal returnere true hvis den string der bliver givet med som argument er en gyldig url?
Avatar billede simplus Nybegynder
22. februar 2007 - 10:24 #1
<?php

$url = "DinURL";

if (preg_match('/^https?:\/\/[a-z0-9-]+(\.[a-z0-9-]+)+/i', $url)) {
    $valid == true;
}else{
    $valid == false;
}

echo "output: ".$valid;

?>
Avatar billede simplus Nybegynder
22. februar 2007 - 10:26 #2
Kan evt. uddybes med denne:

/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\//i

virker på http, https og ftp
Avatar billede dennism Nybegynder
22. februar 2007 - 10:52 #3
Jeg fik lavet denne funktion:


function isValidUrl($url) {

    if (preg_match('/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\//i', $url)) {
    return true;
    } else{
    return false;
    }
}

Men ved kald af f.eks. isValidUrl("http://www.test.dk") returnerer den false.
Avatar billede simplus Nybegynder
22. februar 2007 - 11:09 #4
Det er fordi du skal gøre således:

<?php

$url = "http://www.test.dk";

function isValidUrl($url) {

    if (preg_match('/^https?:\/\/[a-z0-9-]+(\.[a-z0-9-]+)+/i', $url)) {
        echo "true";
    }else{
        echo "false";
    }

}

isValidUrl($url);

?>
Avatar billede dennism Nybegynder
22. februar 2007 - 11:11 #5
Nej, jeg vil have returneret et boolean, da jeg skal teste i en if-sætning.

Er det min preg_match der er forkert?
Avatar billede mccookie Seniormester
22. februar 2007 - 15:13 #6
Avatar billede mccookie Seniormester
22. februar 2007 - 15:17 #7
Skal du bruge den til: www.demahost.dk

Thi, så tror jeg fint du kan bruge det script... ;)

///McCookie
Avatar billede Slettet bruger
22. februar 2007 - 16:32 #8
$data = parse_url($url);
return ($data['scheme']=='http'||$data['scheme']=='https')&&data['host']!="";
Avatar billede algizoft Nybegynder
22. februar 2007 - 21:04 #9
Hvis du har mulighed for det, så har PHP et filter modul (det hører til PECL)

http://www.php.net/filter

Denne kan bl.a. validere om en url er gyldig (FILTER_VALIDATE_URL) udfra nogle kriterier
FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED
Avatar billede mccookie Seniormester
23. februar 2007 - 22:52 #10
Halloa....er du der? ;)
Avatar billede dennism Nybegynder
24. februar 2007 - 12:46 #11
Er på ferie - beklager :)

Jeg skal bruge det til et system, hvor brugeren skal indtaste en url til deres website. Så ville jeg jo gerne kunne få systet til at sige til, hvis det er en ugyldig url. Tror det er noget som den preg_match vi skal have gang i - men den virkede bare ikke.
Avatar billede dennism Nybegynder
07. marts 2007 - 17:47 #12
Nogen der kan hjælpe mig?
Avatar billede mccookie Seniormester
07. marts 2007 - 19:32 #13
Melder pas.... desværre.

///McCookie
Avatar billede dennism Nybegynder
12. marts 2007 - 19:39 #14
Lad os lukke her!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester