我正在我正在工作的站点上创建ics文件解析器,无论我尝试写什么以检查$icsEvent['LOCATION']
索引是否为空,它都会一直保持其值的状态。我正在尝试获取一个在ics事件中输入的地址,并将其分解为位置名称,位置街道,位置城市,位置状态和位置邮政编码。 ics文件中的第一个事件有一个地址,而第二个则没有。当它到达第二个事件时,它仍然表现为好像第二个事件不为空,并导致它为未定义的偏移量引发错误。
183 /* Getting the name of event */
184 $eventName = $icsEvent['SUMMARY'];
185 /* Getting the description of event */
186 $eventDesc = $icsEvent['DESCRIPTION'];
187 /* Getting the location of event */
188 $eventLoc = $icsEvent['LOCATION'];
189 if($eventLoc != ""){
190 $parts = explode("\, ",$eventLoc);
191 $locName = $parts[0];
192 $locStreet = $parts[1];
193 $locCity = $parts[2];
194 $locStateZ = $parts[3];
195 $parts = explode(" ",$locStateZ);
196 $locState = $parts[0];
197 $navState = convertState($locState);
198 $locZIP = $parts[1];
199 }else{
200 $locName = "My Location";
201 $locStreet = "5200 Lake Shore Parkway";
202 $locCity = "Anytown";
203 $locState = "MN";
204 $navState = "Minnesota";
205 $locZIP = "80134";
206 }
207 $find = " ";
208 $replace = "+";
209 $navStreet = str_replace($find,$replace,$locStreet);
注意:未定义偏移:1 in/home/user/mysite.com/components/data/icsparse.php在线192
注意:未定义偏移:2 in/home/user/mysite.com/components/data/icsparse.php在线193
注意:未定义偏移:3 in/home/user/mysite.com/components/data/icsparse.php在线194
注意:未定义偏移:1 in/home/user/mysite.com/components/data/icsparse.php在线198
ics calendar file这是ics
文件的前几个条目:
BEGIN:VEVENT
DTSTART:20191123T013000Z
DTEND:20191123T023000Z
DTSTAMP:20191122T205609Z
UID:7mg6p2bj83hadlununj7d9ov40@google.com
创建:20191122T064508Z
说明:
上次修改时间:20191122T064508Z
位置:阿拉斯加太平洋大学\,4101大学博士\,安克雷奇\,AK 99508 \,美国
SEQUENCE:0
状态:已确认
摘要:篮球vs伯奇伍德·克里斯蒂安
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART; VALUE = DATE:20190624
DTEND; VALUE = DATE:20190629
RRULE:FREQ = YEARLY; WKST = SU; COUNT = 1; INTERVAL = 1
DTSTAMP:20191122T205609Z
UID:002fe82nhfs3qhfn8i84qe2dm5@google.com
创建:20181218T234159Z
说明:
上次修改时间:20191122T060518Z
位置:
SEQUENCE:1
状态:已确认
摘要:足球训练营(6年级以下)
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART; VALUE = DATE:20190617
DTEND; VALUE = DATE:20190622
RRULE:FREQ = YEARLY; WKST = SU; COUNT = 1; INTERVAL = 1
DTSTAMP:20191122T205609Z
UID:4e27isqv5puk2ctc2r2pa6vuc9@google.com
创建:20181218T234147Z
说明:
上次修改时间:20191122T060517Z
位置:
SEQUENCE:1
状态:已确认
摘要:STEM训练营(K-8)
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20191124T010000Z
DTEND:20191124T040000Z
DTSTAMP:20191122T205609Z
UID:4gi5mcte11iefak3rhba9l05sk@google.com
创建:20191119T232703Z
说明:
上次修改时间:20191119T232703Z
位置:
SEQUENCE:0
状态:已确认
摘要:父母之夜
TRANSP:OPAQUE
END:VEVENT
为什么这样做?
由于缺少部分,因此在访问索引数组时需要检查是否存在。
$locStreet = isset($parts[1]) ? $parts[1] : '';