2013-03-19 27 views
0


我目前正在編寫一個PHP腳本,它接收用戶輸入的URL,它指向用戶服務器上的文件。我目前這樣做基本上使用cURL庫和$url = $_POST['url']作爲變量url。但是在我的研究,我發現,我要的類型網址的使用捲曲時可能會出現問題:PHP確定客戶端URL類型

  • 網址是SSL或TSL:目前我正在匹配$urlhttps://趕上這一點。
  • 網址是用戶名/密碼保護:我可以通過匹配:後跟@

我的問題是但是,是否有可能趕上這一點,使用PHP來確定URL是SSL和/或密碼保護如果提交的網址只是讀取www.something.com?在這種情況下,我需要提醒用戶需要更多信息,並且他們需要提供.pem文件和/或用戶名+密碼。
我想捕捉cURL拋出的錯誤,但我不太確定哪個。

問候

+0

_「我正在考慮發現cURL拋出的錯誤,但我不太確定哪個錯誤。」_ - 如何爲每個場景設置測試頁並查看您得到的響應/錯誤? – CBroe 2013-03-19 10:47:53

+1

稍微OT,但你真的應該使用PHP的parse_url,以及,解析網址 - > http://php.net/manual/en/function.parse-url.php – Crisp 2013-03-19 10:54:07

+0

@Crisp真的更有效率! – 2013-03-19 11:19:12

回答

1

如果URL是SSL,然後下載certification bundlehttp://curl.haxx.se/ca/cacert.pem)文件在捲曲的網站,並將其保存在服務器上,然後將其包含在你的PHP捲曲腳本,

curl_setopt($ch, CURLOPT_SSLCERT, 'cacert.pem'); 

用戶沒有按不必提供.pem文件。 cert.pem將處理SSL。

+0

這很有趣!這將作爲每一個可以想象的證書的立場嗎? – 2013-03-19 11:16:59

+0

是的,我認爲是。在一段時間內,您可能需要更新最新版本的cacert.pem(可能有更新的認證)。你可以在這裏查看,http://curl.haxx.se/ca/ – 2013-03-19 11:21:48

+0

非常好,那就是SSL解決了:) – 2013-03-19 11:22:30