php驗證url是否合法的函數(shù)

字號:


    驗證url有兩種一種是利用正則表達(dá)式來驗證url是不是合適url規(guī)則了,另一個是利用函數(shù)來訪問指定url看看是否可正常訪問了,如果能正常訪問自然就是合法的url地址了。
    例子1
    代碼如下:
    <?php
    function isvalidurl($url) {
    $patern = '/^http[s]?:\/\/'.
    '(([0-9]{1,3}\.){3}[0-9]{1,3}'. // ip形式的url- 199.194.52.184
    '|'. // 允許ip和domain(域名)
    '([0-9a-z_!~*\'()-]+\.)*'. // 三級域驗證- www.
    '([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.'. // 二級域驗證
    '[a-z]{2,6})'. // 頂級域驗證.com or .museum
    '(:[0-9]{1,4})?'. // 端口- :80
    '((\/\?)|'. // 如果含有文件對文件部分進(jìn)行校驗
    '(\/[0-9a-za-z_!~\*\'\(\)\.;\?:@&=\+\$,%#-\/]*)?)$/';
    if(!preg_match($patern, $url)) {
    die( '您輸入的url格式有問題,請檢查!');
    }
    }
    例子2
    上面的例子只是驗證url是不是正常的不代表是否可以訪問了,我們可以使用如curl函數(shù)進(jìn)行方法
    代碼如下:
    $url = ;
    $curl = curl_init($url);
    curl_setopt($curl, curlopt_nobody, true);
    $result = curl_exec($curl);
    if ($result !== false)
    {
    $statuscode = curl_getinfo($curl, curlinfo_http_code);
    if ($statuscode == 404)
    {
    echo url not exists
    }
    else
    {
    echo url exists;
    }
    }
    else
    {
    echo url not exists;
    }
    除了這個函數(shù)還可以使用php的很多函數(shù)如 file、file_get_contents()、fopen函數(shù)來進(jìn)行檢測了。