【发布时间】:2016-07-04 18:24:11
【问题描述】:
我有以下函数显示来自 xml 文件的信息:
<?php
function adddata(){
$dir = plugin_dir_path(__FILE__);
$file = $dir.'visits.xml';
$xml = simplexml_load_file($file);
$data = $xml->xpath('/VISITORS/VISIT');
foreach($data as $visit){
echo '<tr>';
echo '<td>'. $visit->EMAIL.'</td>';
echo '<td>'. $visit->PHONE.'</td>';
echo '<td>'. $visit->IPADDRESS.'</td>';
echo '<td>'. $visit->HOSTNAME.'</td>';
echo '<td>'. $visit->BROWSER.'</td>';
echo '<td>'. $visit->CURRENTPAGE.'</td>';
echo '<td>'. $visit->REFERER.'</td>';
echo '<td>'. $visit->GPS.'</td>';
echo '<td>'. $visit->ISP.'</td>';
echo '<td>'. $visit->CITY.'</td>';
echo '<td>'. $visit->STATE.'</td>';
echo '<td>'. $visit->COUNTRY.'</td>';
echo '<td>'. $visit->TIME.'</td>';
echo '</tr>';
}
}
?>
这是xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<VISITORS>
<VISIT>
<IPADDRESS>173.16.185.54</IPADDRESS>
<EMAIL></EMAIL>
<PHONE>515-123-1234</PHONE>
<CURRENTPAGE>http://www.example.com/example.php</CURRENTPAGE>
<REFERER>http://www.google.com</REFERER>
<HOSTNAME>173-16-185-54.client.mchsi.com</HOSTNAME>
<BROWSER>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36</BROWSER>
<ISP>AS30036 Mediacom Communications Corp</ISP>
<GPS>37.2999,-93.3084</GPS>
<CITY>Springfield</CITY>
<STATE>Missouri</STATE>
<COUNTRY>US</COUNTRY>
<TIME>Thursday, June 30, 2016 16:14:43</TIME>
</VISIT>
<VISIT>
<IPADDRESS>173.16.185.54</IPADDRESS>
<EMAIL>example@example.com</EMAIL>
<PHONE>515-123-1234</PHONE>
<CURRENTPAGE>http://www.example.com/example2.php</CURRENTPAGE>
<REFERER>https://facebook.com/</REFERER>
<HOSTNAME>173-16-185-54.client.mchsi.com</HOSTNAME>
<BROWSER>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36</BROWSER>
<ISP>AS30036 Mediacom Communications Corp</ISP>
<GPS>37.2999,-93.3084</GPS>
<CITY>Springfield</CITY>
<STATE>Missouri</STATE>
<COUNTRY>US</COUNTRY>
<TIME>Thursday, June 30, 2016 16:17:33</TIME>
</VISIT>
<VISIT>
<IPADDRESS>202.46.13.63</IPADDRESS>
<EMAIL></EMAIL>
<PHONE></PHONE>
<CURRENTPAGE>http://www.example.com/example4.php</CURRENTPAGE>
<REFERER></REFERER>
<HOSTNAME>msnbot-202-46-13-63.search.msn.com</HOSTNAME>
<BROWSER>Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)</BROWSER>
<ISP>AS8075 Microsoft Corporation</ISP>
<GPS>41.8500,-87.6500</GPS>
<CITY>Chicago</CITY>
<STATE>Illinois</STATE>
<COUNTRY>US</COUNTRY>
<TIME>Thursday, June 30, 2016 16:17:36</TIME>
</VISIT>
<VISIT>
... More Visits ...
</VISIT>
<VISIT>
... More Visits ...
</VISIT>
</VISITORS>
请注意,前两次“访问”来自同一个 IP 地址,但只有第二次包含电子邮件地址,因为他们第一次访问该站点时,信息不可用。
如果他们来自同一个 IP 地址,我如何在包含该 IP 地址的所有表格行上显示该访问者的正确电子邮件? (我不用改xml文件,只输出数据,但我不反对改xml文件)
【问题讨论】: