Validering af URL i PHP...


Hvordan validerer man at en URL er korrekt i PHP?

Der er mange måder at gøre det på.


Nedenstående er en simpel måde at validere en URL på i PHP - nemlig ved at tilgå den.. Metoden er som sådan ganske simpel - du sender en $url til funktionen, som så åbner URL med fopen - og giver denne en 200 HTTP code, så vil dette script returnere true - hvis ikke returnerer det false.

Så kan man let kalde den som sådan

<?php
$url = "http://www.phptips.dk/";
if (validateURL2($url)) {
    echo "URL er valid";
} else {
    echo "URL virker ikke";
}
?>

I ovenstående tilfælde vil den returnere "URL er valid". Men kalder jeg den med en forkert URL - som eksempelvis:

<?php
$url = "http://www.phptips.dk/det_er_en_ikke_eksisterende_side.php";
if (validateURL2($url)) {
    echo "URL er valid";
} else {
    echo "URL virker ikke";
}
?>

Vil den returnere "URL virker ikke".

Selve funktionen er her nedenfor

<?php

function validateURL2($url) {
    if(strlen($url)) {
        $file = @fopen ($url, "r");
        if ($file) {
        return true;
        }
        else return false;
        exit;
    }
    else return false;
}

?>

De synes godt om dette · Tom Frank Christensen
Kommentarer:
Et sted hvor denne kan bruges, er f.eks. hvis man bygger et script der skal checke ens linktrades.
Cirka 13 år siden (23/04/2011 14:17:39)
Ser rimlig godt ud, men er den helt sikker? Hvis en bruger fx skriver et link med ondsindet kode, vil det så kunne påvirke hjemmesiden?
Cirka 13 år siden (24/05/2011 17:58:11)
Hej Tom. Har du testet funktionen af med forskellige headere ?
Cirka 13 år siden (06/07/2011 12:27:07)
Hej Casper - nej det har jeg ikke, men finder du nogle problemer vil jeg gerne vide det :)
Cirka 13 år siden (06/07/2011 13:36:04)
Hej Mike - Nej den checker egentlig bare at URL eksisterer - at den ikke bliver omdirigeret eller er "Ikke fundet"
Cirka 13 år siden (06/07/2011 13:36:42)
Spdfs
Cirka 12 år siden (22/12/2011 13:30:37)
Du skal være logget ind for at bruge denne funktion.
Brugernavn
Kodeord


Det er gratis at oprette en bruger
Hop til toppen