2012-08-09 55 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。

见以及重复的问题: