2016-05-09 68 views
0

如何檢查字符串是否有服務器取決於url是絕對還是相對?如何檢查字符串是否有服務器ih php

function hasServer($url){ 
    ... 
} 

如果返回true

hasServer('http://www.google.com/'); 

否則返回false

hasServer('/about-us/team/'); 
+1

你是什麼意思「如果字符串有服務器」? – Webeng

+0

你的意思是,如果'$ url'是一個在線活動的URL?請更正您的問題,以便更清楚。 – Webeng

+0

我的意思是說,如果有像www.google.com(是絕對網址)的子字符串或沒有「服務器」字符串(是相對的網址) – quakeglen

回答

1

我認爲這是你在找什麼:

$url = 'http://www.google.com/'; 
$hasServer = filter_var($url, FILTER_VALIDATE_URL); 
+0

你爲什麼去並將它改爲單引號[編輯](http: //stackoverflow.com/revisions/37120937/2)雙引號?我沒有看到在這裏的改善,如果應該有一個變量通過內部單引號和OP想通過,您的答案將失敗 –

+0

它工作得很好... – quakeglen

+0

@ Fred-ii-爲什麼你會用雙引號一個字符串文字?一般來說這是不好的做法,所以應該避免。如果OP將變量放在單引號內,那麼這就是他的錯誤,他又學到了一件事。 我不知道你的編輯會從歷史中消失,你是否失去了代表? –

0

實際上有從我的經驗中選擇一些選項。一種方法是使用headers()函數,然後分析在結果數組中獲得的信息。

$arrayResult = headers('http://www.google.com/'); 
foreach ($arrayResult as $value) 
{ 
    echo "-- ".$value."<br>"; 
} 

如果url實際存在,輸出應該會提供所有需要的信息。

在我看來,一個更簡單的解決方案就是檢查fopen()函數是否真正適用於URL!

if (fopen('http://www.google.com/', "r") 
{ 
    echo "the URL exists!<br>"; 
} 

您可以更好地選擇您需要哪一臺服務器。

+0

'標題('http://www.google.com/);'在這裏丟失東西。 (引用) –

+0

@ Fred-ii-謝謝 – Webeng

相關問題