PHP遍历指定文件夹内的XML文件,100分啊,100分。

php中文网
发布: 2016-06-23 14:03:56
原创
1299人浏览过

XML文件格式为:

<?xml version="1.0" encoding="UTF-8"?><template><title><![CDATA[《克鲁德一家》预告]]></title>   <image>130112001.jpg</image>   <intro><![CDATA[《克鲁德一家》预告]]></intro>   <mediapath>130112001.3gp</mediapath></template>
登录后复制

一个XML文件相当于一条数据。

由于我初学PHP不久,求翻译下面的代码。。。
指定文件夹目录路径:D:@3(此文件夹下有多个XML文件)遍历开始(读取4个XML文件,满足后停止遍历)读取一个XML文件内容$title=XML内的title$img=XML内的image$path=此XML文件的路径把这3个变量输出到页面遍历结束
登录后复制

等于读取了4条数据,每条数据包含title,img,path这3个变量的值。


回复讨论(解决方案)

看到那个头像脑子一下子清零了……微臣告退……

看到那个头像脑子一下子清零了……微臣告退……

帮我解决下,马上就还头像。

$doc = new DOMDocument();$doc->load ("a.xml");$tmp =  $doc->getElementsByTagName('template');foreach($tmp as $t){	Echo 'title:'.$t->getElementsByTagName('title')->item(0)->nodeValue."<br>";	Echo 'image:'.$t->getElementsByTagName('image')->item(0)->nodeValue."<br>";	Echo 'intro:'.$t->getElementsByTagName('intro')->item(0)->nodeValue."<br>";	Echo 'mediapath:'.$t->getElementsByTagName('mediapath')->item(0)->nodeValue."<br>";}
登录后复制

翻手册,opendir遍历,DOMDocument解析XML

$i == 0foreach (glob("D:\001\1003\*.xml") as $filename) {    if ($i >3) break;    读取$filename……    $i++;}
登录后复制


读取$filename 的部分参考 http://bbs.csdn.net/topics/390354196
懒得写了

呃,居然写了双等号……

$dir='D:@3';function readxml($dir,&$arr){	if($handle=opendir($dir)){		while(false!==($file=readdir($handle))){			$sub_dir=$dir.DIRECTORY_SEPARATOR.$file;			if(is_dir($sub_dir)&&$file!='.'&&$file!='..'){				readxml($sub_dir,$arr);			}elseif(preg_match('/.xml$/',$file)){				if(count($arr)>3){					return false;				}				$arr[]=$sub_dir;			}		}	}}readxml($dir,$arr);foreach($arr as $x){	$doc = new DOMDocument();	$doc->load ($x);	$tmp =  $doc->getElementsByTagName('template');	foreach($tmp as $t){		Echo 'title:'.$t->getElementsByTagName('title')->item(0)->nodeValue."<br>";		Echo 'image:'.$t->getElementsByTagName('image')->item(0)->nodeValue."<br>";		Echo 'intro:'.$t->getElementsByTagName('intro')->item(0)->nodeValue."<br>";		Echo 'mediapath:'.$t->getElementsByTagName('mediapath')->item(0)->nodeValue."<br>";	}	Echo "<p>--------------------------------------</p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/ai/2221">
                            <img src="https://img.php.cn/upload/ai_manual/001/246/273/68b6c52f05eb9477.png" alt="巧文书">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/ai/2221">巧文书</a>
                            <p>巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt="巧文书">
                                <span>61</span>
                            </div>
                        </div>
                        <a href="/ai/2221" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt="巧文书">
                        </a>
                    </div>
                ";}
登录后复制

给分来!!!!

还真是清零了,晕
foreach (glob("D:\001\1003\*.xml") as $key => $filename)
用$key就可以判断读了四个停止遍历了,不需要$i

PHP code?123456$i == 0foreach (glob("D:\001\1003\*.xml") as $filename) {    if ($i >3) break;    读取$filename……    $i++;}

读取$filename 的部分参考 http://bbs.csdn.net/topics/390354196
懒得写了……

PHP code?1234567891011121314151617181920212223242526272829$dir='D:@3';function readxml($dir,&$arr){    if($handle=opendir($dir)){        while(false!==($file=readdir($handle)))……
谢谢了兄弟,有空聊来这给这段代码加几句注释,我好学习,呵呵。

这里也有一个PHP遍历文件夹的函数
你可以参考一下: http://www.bacysoft.cn/thread-77-1-1.html

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号