2013-09-30 79 views
1

首先,我想爲我的糟糕英語感到抱歉。在表格中顯示XML內容+使用php輕鬆搜索

我不贊成在PHP/HTML/XML中。

我有xml文件 「bans.xml」 與用戶(例如1個用戶):

` 
<ban> 
<datetime>30/09/2013 08:20:33 GMT Standard Time</datetime> 
<nick>Player 1</nick> 
<method>Key</method> 
<period>Perm</period> 
<address>IP ADRESS</address> 
<profileid>PROFILE ID</profileid> 
<cdkeyhash>871358843</cdkeyhash> 
<by>21 from IP name='Im Admin 1'</by> 
<reason>Reason 1</reason> 
<whenBanned>0001-01-01T00:00:00</whenBanned> 
</ban> 
` 

而且我想在HTML或PHP顯示此。如果有人喜歡它可以通過與MySQL基地。

我需要這個簡單的表格,可以搜索每個暱稱。

隨着顯示:

尼克/通過(如果可能唯一的名字=「缺口」)/日期(如果可能的話沒有這個「GMT斯坦達特時間」)/原因

如果它可能就會自動排序「日期」(新 - >舊)在默認列表中?

例子:

` 
Search: 
[write here your nickname] [[Button Search]] 
_______________________________________ 
# | NICKNAME | Admin | Date | Reason | 
________________________________________ 
1.| Player x | Im Admin 1 | 30/09/2013 08:21:56 | Reason 1 
2.| Player y | Im Admin 2 | 30/09/2013 08:20:30 | Test 

` 

如果有人寫的綽號,他是名單顯示它只是他的數據。 如果他不在名單上,它會顯示類似「你不被禁止」的東西。

非常感謝有人幫助:) 最佳Regrads。

+4

你已經嘗試過什麼結果? –

+0

用PHP做這件事是很有可能的,但正如喬蘭所說,你到目前爲止做了什麼? – plvdmeer

+0

當然可以。我給你我所做的一切,但我必須等待,因爲我無法回答。我收到錯誤消息:「聲譽低於10的用戶在詢問後8小時內無法回答自己的問題。」 – Maciej

回答

0

只引導到有你自己的想法;-)不生產服務器上使用 - 只有引導

  1. 讀取XML
  2. 解析XML
  3. 輸出XML轉換爲HTML表
  4. 應用jquery數據表

提示* 讓你自己的功能在提取日期時間,清理代碼,這是骯髒的!想想看,如果超過PHP

DEMO

http://www.cdn.houba.info/xml/

樣品編號

<html> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
    <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css"> 
    <link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables_themeroller.css"> 
    <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js"></script> 
    <script type="text/javascript" charset="utf8" src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js"></script> 
    </head> 
    </body> 

    <table id="example"> 

    <thead> 
     <tr>   
     <th>Nick</th> 
     <th>Admin</th> 
     <th>Date/Time</th> 
     <th>Reason</th> 
     </tr> 
    </thead> 

    <tbody> 

    <?php 

    // XXXXXXX - local source, 
    // ex.. 'ban.xml' 

    $url = ('XXXXXXX'); 
    $xml = simplexml_load_file(urlencode($url), null, true); 


    ?> 

    <?php foreach ($xml->ban as $b) :?> 
     <tr>   
     <td><?php echo $b->nick; ?></td> 
     <td><?php echo $b->by; ?></td> 
     <!-- THIS IS DIRTY, JUST FOR EXAMPLE --> 
     <td><?php echo mb_substr($b->datetime, 0, 19); ?></td> 
     <td><?php echo $b->reason; ?></td> 
     </tr> 
    <?php endforeach; ?> 

    </tbody> 
    </table> 

<script type="text/javascript" charset="utf-8"> 
    $(document).ready(function() { 
     $('#example').dataTable({ 
      "sScrollY": 200, 
      "bJQueryUI": true, 
      "sPaginationType": "full_numbers" 
     }); 
    }); 
</script> 


</body> 
</html> 
+0

非常感謝你,它比我的夢想更好。我嘗試使用你的代碼。我在幾個小時內給你回答了我的代碼,因爲現在我得到了錯誤:「聲譽低於10的用戶在詢問後8小時內無法回答自己的問題。」 – Maciej

0

謝謝大家存在XML文件,並正與文件進行快速reaply。我不是那種不做任何事情的人,在「幫助」後寫到任何地方,等待有人爲他做所有的工作。

我忘了問題得到我的代碼我做了什麼(不是我的工作 - 谷歌的一切找到答案和紅色的一些tutroials)。

' 
<?php 
$xml = simplexml_load_file("ban.xml"); 
?> 
<?php 
/* pobieramy datę ostatniej modyfikacji pliku ban.xml */ 
$ostatnio_mod = filemtime("ban.xml"); 
/* Wyświetlamy wynik */ 
print("Generated: "); 
print(date("j-m-y h:i:s", $ostatnio_mod)); 
?> 
<table> 
<thead> 
<tr> 
<th>Nickname</th> 
<th>Admin</th> 
<th>Date</th> 
<th>Reason</th> 
</tr> 

<?php foreach ($xml->ban as $ban) :?> 
<tr> 
<td><?php echo $ban->nick; ?></td> 
<td><?php echo $ban->by; ?></td> 
<td><?php echo $ban->datetime; ?></td> 
<td><?php echo $ban->reason; ?></td> 
</tr> 
<?php endforeach; ?> 
</tbody> 
</table> 
<br> 
<br> 
<?php 
echo "TOP Admins"; 
echo "<br>"; 
$getText = file_get_contents("ban.xml", true); 
$Test = substr_count($getText ,"Test"); 

$Im_Admin = substr_count($getText ,"Im Admin"); 
$All_Admins = substr_count($getText ,"Im Admin","Test"); 
$getAdmins = $Test - $Im_Admin ; 
echo "Test =". $getAdmins; 

echo "<br>"; 
echo "Im_Admin =". $Im_Admin ; 
echo "<br>"; 
echo "All Admins BANs:". $All_Admins ; 
?> 
' 

但是,如果你看不到我所能做的一切。我有「搜索」 - 這是最糟糕的:我不知道如何:1)在Admin - 21中從62.247.128中刪除。108名稱='測試',只顯示「測試」2)在日期 - 剪出「格林威治標準時間」

但我看到Honza.M做的就是我所做的。我試着用你的代碼工作,因爲在html中對我來說是最好的選擇,但php仍然有可能。

如果有人可以(或你Honza)升級你的代碼,它會很酷。我嘗試了一件事來做你的代碼的移動版本。喜歡的東西:

' 
[Search] 
Nickname 1 
Nickname 2 
Nickname 3 
' 

當有人寫他在[查詢]暱稱和顯示他,他可以按自己的暱稱和得到充分的頁面信息:

' 
You Are Banned 
Your Nickname: Nickname 1 
Banned by Admin: Test 
Date of ban: 1/01/2013 8:08:00 

Reason: Cheating 
' 

好吧,我看到許多事情要做,所以我回去工作:),如果有人有任何建議或可以幫助請寫:)這將是非常有益的。

非常感謝Honza.M和大家。