驗(yàn)證URL有兩種一種是利用正則表達(dá)式來(lái)驗(yàn)證URL是不是合適url規(guī)則了,另一個(gè)是利用函數(shù)來(lái)訪問(wèn)指定url看看是否可正常訪問(wèn)了,如果能正常訪問(wèn)自然就是合法的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_!~*\'()-]+\.)*'. // 三級(jí)域驗(yàn)證- www.
'([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.'. // 二級(jí)域驗(yàn)證
'[a-z]{2,6})'. // 頂級(jí)域驗(yàn)證.com or .museum
'(:[0-9]{1,4})?'. // 端口- :80
'((\/\?)|'. // 如果含有文件對(duì)文件部分進(jìn)行校驗(yàn)
'(\/[0-9a-zA-Z_!~\*\'\(\)\.;\?:@&=\+\$,%#-\/]*)?)$/';
if(!preg_match($patern, $url)) {
die( '您輸入的URL格式有問(wèn)題,請(qǐng)檢查!');
}
}
例子2
上面的例子只是驗(yàn)證url是不是正常的不代表是否可以訪問(wèn)了,我們可以使用如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";
}
除了這個(gè)函數(shù)還可以使用php的很多函數(shù)如 file、file_get_contents()、fopen函數(shù)來(lái)進(jìn)行檢測(cè)了。
更多信息請(qǐng)查看IT技術(shù)專欄