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 10 år siden (23/04/2011 14:17:39)
Mike Laumann Bellika
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 10 år siden (24/05/2011 17:58:11)
Hej Tom. Har du testet funktionen af med forskellige headere ?
Cirka 10 å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 10 å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 10 år siden (06/07/2011 13:36:42)
Spdfs
Cirka 9 å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