2011-08-20 70 views
1

我得到一個鏈接,並在它有一個HREF ...我想知道如果它是一個我怎麼能知道,如果它是一個絕對的域名用PHP

http://[...].com/file.txt absolute domain name 

/file.txt 

沒有完整網址的鏈接。

我該怎麼用PHP做到這一點?

+0

我們其中一個人回答你的問題?你沒有接受任何答案? –

回答

3

使用parse_url並查看您是否得到方案和主機。例如,這樣的:

$url = 'http://username:[email protected]/path?arg=value#anchor'; 
$parts = parse_url($url); 
echo $url, "\n", $parts['scheme'], "\n", $parts['host'], "\n\n"; 

$url = '/path?arg=value#anchor'; 
$parts = parse_url($url); 
echo $url, "\n", $parts['scheme'], "\n", $parts['host'], "\n\n"; 

產地:

http://username:[email protected]/path?arg=value#anchor 
http 
hostname 

/path?arg=value#anchor 

活生生的例子:http://ideone.com/S9WR2

這也可以讓你檢查計劃,看它是否是你想要的東西(例如,你會經常要忽略mailto:網址)。

0

您可以使用preg_match和正則表達式來測試url字符串的格式。您需要根據需要修改$myurl,可能將其作爲變量傳入。

<?php 
$myurl = "http://asdf.com/file.txt"; // change this to meet your needs 

if (preg_match("/^http:/", $myurl)) { 
    // code to handle 
    echo 'http url'; 
} 
else if (preg_match("/^\\//", $myurl)) { 
    // code to handle 
    echo 'slash url'; 
} 
else { 
    // unexpected format 
    echo 'unexpected url'; 
} 

?> 
相關問題