2012-08-09 99 views
-1

可能重複:
How to enable HTTPS stream wrappers通過https問題越來越XML內容使用SimpleXML和PHP

我用簡單的XML獲得來自API的內容。通常我沒有問題,但現在URL是HTTPS,它似乎不起作用。有沒有辦法解決?

示例XML(URL):

<?xml version="1.0"?> 
<calendars> 
    <calendar accommodation_id="1049165"> 
    <day date="2012-08-09" vacancy="false" minimum_nights="7" arrival_day="true"/> 
    <day date="2012-08-10" vacancy="false" minimum_nights="3" arrival_day="true"/> 
    <day date="2012-08-11" vacancy="false" minimum_nights="3" arrival_day="true"/> 
    <!-- ... --> 
    <day date="2014-01-31" vacancy="true" minimum_nights="3" arrival_day="true"/> 
    </calendar> 
</calendars> 

示例代碼:

$xml2 = file_get_contents(''); 
$availability = new SimpleXMLElement($xml2); 
+0

使用HTTPS無關用SimpleXML - 這完全取決於你的服務器及其配置。做'var_dump($ xml2);' - 如果沒有什麼東西,那麼你需要另一種檢索內容的方法,而不是'file_get_contents()'。 – nickb 2012-08-09 12:39:13

+0

根據[本頁](http://php.net/manual/en/wrappers.http.php#refsect1-wrappers.http-notes),您需要啓用openssl。你有它啓用? – 2012-08-09 14:11:56

+0

請不要重複提問(例如:http://stackoverflow.com/q/11885169/367456) - 改爲編輯此問題以改進它。 – hakre 2012-08-09 16:05:36

回答

0

您使用的是www.casapilot.com網站的XML API。

API是通過HTTPS,一個示例URI是:

https://www.casapilot.com/api/1/accommodations/calendar.xml?auth_token=hyXHjP8QdrRuX8q3FsbC&id=1049165 

對於HTTPS工作,PHP需要OpenSSL的擴展。給出的信息對相關Stream Wrapper Page

注:啓用HTTPS OpenSSL的擴展名時,才支持。

OpenSSL的擴展將用於所有HTTPS「文件」透明與流包裝器開始https://所有URI。

見以及重複的問題: