以下代码可以将“9.xml”的shortdesc字段全部读出:
-------------------------------------------------------------------------------
$xml_array=simplexml_load_file('9.xml'); //将XML中的数据,读取到数组对象中
foreach($xml_array as $tmp){
echo $tmp->shortdesc."
";
}
?>
---------------------------------------------------------------------------------
由于数据量非常大,我想实现的是每页只显示三条数据,当点击“下一步”按钮时,就接着显示下三条数据,直到数据全部显示完成,再点“下一步”按钮时,页面没有变化。请教如何实现?最好有代码,谢谢了。
回复讨论(解决方案)
那就不应该存到xml里面,存到数据库里面
那就不应该存到xml里面,存到数据库里面
+1
存数据库里吧,用limit
如果能存在数据库里,那么操作会很方便。如果不能的话,可以将解析的数据先缓存下来最好
<?php$pagenum = isset($_GET['pagenum']) ? $_GET['pagenum'] : 1;$pagesize = 3;// 将数据存在session,当然如果你有更好的条件话就不需要这么干了,存到共享内存当中session_start();if( !isset($_SESSION['data']) || !is_array($_SESSION['data']) ){ $xml_array=simplexml_load_file('9.xml'); // 将数据按$pagesize分为多个数组保存 $_SESSION['data'] = array_chunk($xml_array, $pagesize);}foreach($_SESSION['data'][($pagenum-1)] as $displaydata ){ echo "I am data: {display}";}$nextpagenum = $pagenum + 1;echo <<<next <a href="?pagenum={$nextpagenum}" >下一页</a>next;?>
你原来是这样输出的
foreach($xml_array as $tmp){
echo $tmp->shortdesc."
";
}
要这样输出才行
$page = ($_GET['page'] - 1) * 3;
for($i=$page; $i echo $xml[$i]->shortdesc."
";
}
能不能详细点,水平有限,不是很理解啊!
你原来是这样输出的
foreach($xml_array as $tmp){
echo $tmp->shortdesc."
";
}
要这样输出才行
$page = ($_GET['page'] - 1) * 3;
for($i=$page; $i echo $xml[$i]->shortdesc."
";
}
老大的代码够明了的了
// 获取数组
$xml_array=simplexml_load_file('9.xml');
// 从第几条开始。你不是要求分页嘛,分页的话总得有个数据起始位置和偏移量。
// 那么这个数据起始位置就是 $page。 假设你要第2页,那么传入参数$_GET['page'] === 2
// (2-1)*3 即是 3 。这是按数组键值取得数据的,数组的键值从0开始。那么 0,1,2就是第一页,3,4,5就是第二页
$page = ($_GET['page'] - 1) * 3;
// 循环3次,计算看看$i每次的值,分别是 3, 4, 5 。那么就是上面说的取键值为3,4,5的数据
for($i=$page; $i echo $xml[$i]->shortdesc."
";
}
// 下一页的链接传入的参数就是 $_GET['page'] + 1 喽
这个循环语句我是已经明白,现在还有一个疑问:“$xml[$i]”是怎么来的?是不是还少了一句啊?请赐教,谢谢!
老大的代码够明了的了
// 获取数组
$xml_array=simplexml_load_file('9.xml');
// 从第几条开始。你不是要求分页嘛,分页的话总得有个数据起始位置和偏移量。
// 那么这个数据起始位置就是 $page。 假设你要第2页,那么传入参数$_GET['page'] === 2
// (2-1)*3 即是 3 。这是按数组键值取得数据的,数组的键值从……
$xml[$i] 就是 $xml_array[$i] 。 伪代码,表达的意思是一样
$xml[$i] 就是 $xml_array[$i] 。 伪代码,表达的意思是一样
为简化,我只显示一页,我用以下代码,既没结果,也没用错误提示:
---------------------------------------------------------------------------------------------
$xml_array=simplexml_load_file('9.xml'); //将XML中的数据,读取到数组对象中
$page = 3;
for($i=$page; $i echo $xml[$i]->shortdesc."
";
}
?>
----------------------------------------------------------------------------------------
我用以下代码,错误提示为:“Warning: main() [function.main]: Cannot add element dataroot number 3 when only 0 such elements exist in D:\wwwroot\jupiter418app\wwwroot\temp\dx1.php on line 66”
----------------------------------------------------------
$xml_array=simplexml_load_file('9.xml'); //将XML中的数据,读取到数组对象中
$page = 3;
for($i=$page; $i echo $xml_array[$i]->shortdesc."
";
}
?>
-------------------------------------------------------------
还请赐教!
因为你有:
$xml_array=simplexml_load_file('9.xml'); //将XML中的数据, 读取到数组对象中
才有所以我才有 $xml_array[$i]->shortdesc 一说,数组嘛
实际上 simplexml_load_file 返回的结构中,第一层并不是数组
需要知道你的 9.xml 具体内容,才能知道如何操作
引用 8 楼 的回复:
$xml[$i] 就是 $xml_array[$i] 。 伪代码,表达的意思是一样
为简化,我只显示一页,我用以下代码,既没结果,也没用错误提示:
---------------------------------------------------------------------------------------------
…… 贴出你的xml代码瞧瞧!
9.xml内容如下:
--------------------------
http://www.282930.cn
http://www.csdn.net
http://www.csdn.net
......
那就是你的不对了,你从一开始就没有提供正确的信息
你的
foreach($xml_array as $tmp){
echo $tmp->shortdesc."
";
}
并不能输出文档内容
要这样才可以
foreach($xml_array->news->new as $tmp){
echo $tmp->shortdesc."
";
}
而 $xml_array->news->new 是一个数组,于是
$xml = $xml_array->news->new;
$page = min(3, count($xml)-3);
for($i=$page; $i echo $xml[$i]->shortdesc."
";
}
就成立了
非常感谢各位耐心的解答
不用等待了,你盗我数据,我直接换名了!

PHP用于构建动态网站,其核心功能包括:1.生成动态内容,通过与数据库对接实时生成网页;2.处理用户交互和表单提交,验证输入并响应操作;3.管理会话和用户认证,提供个性化体验;4.优化性能和遵循最佳实践,提升网站效率和安全性。

PHP在数据库操作和服务器端逻辑处理中使用MySQLi和PDO扩展进行数据库交互,并通过会话管理等功能处理服务器端逻辑。1)使用MySQLi或PDO连接数据库,执行SQL查询。2)通过会话管理等功能处理HTTP请求和用户状态。3)使用事务确保数据库操作的原子性。4)防止SQL注入,使用异常处理和关闭连接来调试。5)通过索引和缓存优化性能,编写可读性高的代码并进行错误处理。

在PHP中使用预处理语句和PDO可以有效防范SQL注入攻击。1)使用PDO连接数据库并设置错误模式。2)通过prepare方法创建预处理语句,使用占位符和execute方法传递数据。3)处理查询结果并确保代码的安全性和性能。

PHP和Python各有优劣,选择取决于项目需求和个人偏好。1.PHP适合快速开发和维护大型Web应用。2.Python在数据科学和机器学习领域占据主导地位。

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

PHP可以轻松创建互动网页内容。1)通过嵌入HTML动态生成内容,根据用户输入或数据库数据实时展示。2)处理表单提交并生成动态输出,确保使用htmlspecialchars防XSS。3)结合MySQL创建用户注册系统,使用password_hash和预处理语句增强安全性。掌握这些技巧将提升Web开发效率。

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

PHP仍然具有活力,其在现代编程领域中依然占据重要地位。1)PHP的简单易学和强大社区支持使其在Web开发中广泛应用;2)其灵活性和稳定性使其在处理Web表单、数据库操作和文件处理等方面表现出色;3)PHP不断进化和优化,适用于初学者和经验丰富的开发者。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3汉化版
中文版,非常好用

Dreamweaver Mac版
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

Atom编辑器mac版下载
最流行的的开源编辑器