首页博客网络编程
文件和各种数据库对于存储数据很有用,但随着它们变大,它们也可能变得更容易迷失在其中。手动查找在某些特定时刻必须使用的信息可能需要很长时间。问题是,当你需要某样东西时,你通常会很快需要它。
使 PHP 读取 XML 文件可以帮助您快速检索数据。XML 是保存数据字符串的最常见格式之一。如果您也喜欢它,可以使用 AJAX 读取 XML 文件。换句话说,AJAX 可以帮助您连接保存信息的 XML 文档并快速查找确切的数据。
通过使用 AJAX,您可以与 XML 文档进行交互通信,并使 PHP 读取 XML 文件。
本教程中的示例将向您展示如何使用 AJAX、XML 和 PHP 快速获取 XML 数据。
在学习如何使PHP读取XML文件时,让我们坚持使用CD列表作为数据的想法。要为读取 XML 的 PHP 创建一个 Web 应用程序,我们首先需要创建接口。它将包括一个下拉列表和一个表格容器:这是显示有关所选相册的信息的位置。
从下拉列表中选择 CD 后,将调用函数。没有它,我们的PHP就没有机会读取XML文件。事件触发指定的函数:show_cd()
onchange
例复制
<html> <head> <script> function showCD(str) { if (str == '') { document.getElementById("txt_hint").innerHTML = ''; return; } if (window.XMLHttpRequest) { // script for browser version above IE 7 and the other popular browsers (newer browsers) xmlhttpreq = new XMLHttpRequest(); } else { // script for the IE 5 and 6 browsers (older versions) xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttpreq.onreadystatechange = function() { //check if server response is ready if (this.readyState == 4 && this.status == 200) { document.getElementById("txt_hint").innerHTML = this.responseText; } } xmlhttpreq.open("GET", "get_cd.php?q="+str, true); xmlhttpreq.send(); } </script> </head> <body> <form> Select a CD: <select name="cds" onchange="show_cd(this.value)"> <option value="">Select a CD:</option> <option value="Alice Cooper">Alice Cooper</option> <option value="John Lennon">John Lennon</option> <option value="Frank Zappa">Frank Zappa</option> </select> </form> <div id="txt_hint"><b>This is where the info about CDs goes!</b></div> </body> </html>
然后,该函数执行以下操作:show_cd()
检查是否已从列表中选择 CD。
创建一个 XMLHttpRequest 对象。
设置准备好服务器响应后准备执行的函数。
将请求发送到位于我们服务器上的 PHP 文档 (get_cd.php)。
注意:将 q 参数应用于 get_cd.php?q=“+str 时要注意。
在服务器上,我们有一个名为 get_cd.php 的 PHP 文件,以及一个包含有关音乐专辑的所有必要数据的 XML 文件。我们称它为cd_list.xml以适应其内容。现在,我们可以让PHP读取XML文件。
PHP 代码将分三个阶段工作。首先,它将加载必要的 XML 文件。其次,它将通过运行查询从中检索必要的数据。最后,结果将以HTML的形式呈现:
例复制
<?php $q = $_GET["q"]; $xml_doc = new DOMDocument(); $xml_doc->load("cd_list.xml"); $x = $xml_doc->getElementsByTagName('MUSICIAN'); for ($i=0; $i< = $x->length-1; $i++) { //Set only to process nodes from elements if ($x->item($i)->nodeType==1) { if ($x->item($i)->childNodes->item(0)->nodeValue == $q) { $y=($x->item($i)->parentNode); } } } $cd = ($y->childNodes); for ($i=0; $i<$cd->length; $i++) { //Set only to process nodes from elements if ($cd->item($i)->nodeType==1) { echo("<b>" . $cd->item($i)->nodeName . ":</b> "); echo($cd->item($i)->childNodes->item(0)->nodeValue); echo("<br>"); } }?>
一旦使用 JavaScript 将查询发送到 PHP,就会发生以下情况:
XML DOM 对象由 PHP 生成。
在所有元素中,可以找到合适的(与从 JavaScript 接收的名称匹配)的元素。<musician>
有关所选 CD 的信息通过将其发送到容器来输出。txt_hint
我们庆祝我们制作PHP读取XML文件是多么漂亮。
要使用PHP代码读取XML数据字符串,需要AJAX。
AJAX、XML 和 PHP 的组合使开发人员能够快速查找和访问他们希望快速检索的数据。
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位