【发布时间】:2017-02-10 08:51:07
【问题描述】:
我尝试解析 iCal:
//打开文件 $calendar = file_get_contents('http://app.kigo.net/public/ics.php?c-7ca2eb67c1a7fa8b87b2434ed1096076-422-9871b35967bb29f999cd11ac72943011'); //调试目的 回声$日历; //解析字符串 preg_match_all('#^BEGIN\:VEVENT.*?END\:VEVENT$#sm',$calendar,$results,PREG_SET_ORDER); //输出:空! 打印_r($结果);它返回一个空数组。
无论如何,如果我将“$calendar”内容复制/粘贴到另一个变量上,并使用相同的正则表达式对其进行解析,它就可以正常工作。
为什么当我直接从 file_get_contents 调用 同一字符串 上的 preg_match_all 时,它会出错?
【问题讨论】:
-
URI 是否返回具有正确文件头的文件?甚至内容。尝试将内容回显到页面中。
-
首先 print_r 你的 $calandar 并检查是否为空或假
-
我得到类似 failed to open stream: php_network_getaddresses: getaddrinfo failed
-
file_get_contents()现在应该发出警告 -
我用所有代码编辑了消息。在我的电脑和服务器上,“内容”变量包含正确的内容(日历)。正则表达式返回一个空数组。相同的字符串,(复制/粘贴),相同的 regex = 数组包含日历的所有事件。
标签: php regex file-get-contents