PHP读取zip中的所有文本文件,并将其保存到字符串变量中
各位好,我再次来到这里寻求php编程方面的帮助。我对这门语言真的很陌生,但学得相当多。努夫说 无论如何,我现在有一个困难,我想读一个zip文件,里面有很多文件夹和文本文件,并保存在一个字符串变量(不是文本文件的名称!),文本文件本身的内容。这将为我提供一个完成任务的例子 具体来说,我实际上是在尝试读取zip中的所有xml文件。但是文本文件的示例会很好 这就是我目前拥有的:PHP读取zip中的所有文本文件,并将其保存到字符串变量中,php,xml,text,zip,Php,Xml,Text,Zip,各位好,我再次来到这里寻求php编程方面的帮助。我对这门语言真的很陌生,但学得相当多。努夫说 无论如何,我现在有一个困难,我想读一个zip文件,里面有很多文件夹和文本文件,并保存在一个字符串变量(不是文本文件的名称!),文本文件本身的内容。这将为我提供一个完成任务的例子 具体来说,我实际上是在尝试读取zip中的所有xml文件。但是文本文件的示例会很好 这就是我目前拥有的: <?php function comment(){ $moodle = new Moodle();
<?php
function comment(){
$moodle = new Moodle();
$zip = zip_open('qwerty.zip');
if ($zip)
{
while ($zip_entry = zip_read($zip))
{
//echo "Name: " . zip_entry_name($zip_entry). "<br />";
$data = zip_entry_read($zip_entry);
$xml = new SimpleXMLElement($data);
//echo $data;
}
zip_close($zip);
}
}
comment();
?>
感谢所有在场的人。格雷西亚斯
更新
这实际上是精确的输出:
Warning: SimpleXMLElement::__construct(): Entity: line 28: parser error : expected '>' in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): <component>mod_resource</compon in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): ^ in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): Entity: line 28: parser error : Opening and ending tag mismatch: component line 28 and compon in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): <component>mod_resource</compon in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): ^ in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): Entity: line 28: parser error : Premature end of data in tag file line 25 in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): <component>mod_resource</compon in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): ^ in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): Entity: line 28: parser error : Premature end of data in tag files line 2 in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): <component>mod_resource</compon in D:\xampp\htdocs\project\index.php on line 47
Warning: SimpleXMLElement::__construct(): ^ in D:\xampp\htdocs\project\index.php on line 47
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in D:\xampp\htdocs\project\index.php:47 Stack trace: #0 D:\xampp\htdocs\project\index.php(47): SimpleXMLElement->__construct('<?xml version="...') #1 D:\xampp\htdocs\project\index.php(85): comment() #2 {main} thrown in D:\xampp\htdocs\project\index.php on line 47
警告:SimpleXMLElement::uu construct():实体:第28行:解析器错误:第47行的D:\xampp\htdocs\project\index.php中应为'>'
警告:SimpleXMLElement::_construct():mod_resource以上代码工作正常。问题在于xml文件。所有这些错误都来自xml验证程序 我终于明白了。谢谢你们帮我,伙计们。所以我就带着这个来了
函数moodlezip($zipfile){
回声“MOODLE”。
;
$moodle=新moodle();
$zipfile='backup-moodle2-course-music_basic-20120806-1359b.mbz';
$zip=zip_open($zipfile);
$ziparc=新ZipArchive;
如果($zip){
而($zip\u entry=zip\u read($zip)){
$file=zip\u entry\u name($zip\u entry);
//echo“Name:”.$file.“
”;
if(strpos($file,'course.xml')!==false){
如果($ziparc->open($zipfile)==TRUE){
$coursexml=newsimplexmlement($ziparc->getFromName($file));
$moodle->getCourse($coursexml);
$ziparc->close();
}否则{
echo“失败”;
}
}
else if(strpos($file,'forum.xml')!==false){
如果($ziparc->open($zipfile)==TRUE){
$topicxml=newsimplexmlement($ziparc->getFromName($file));
$moodle->getTopic($topicxml);
$ziparc->close();
}否则{
echo“失败”;
}
}
else if(strpos($file,'questions.xml')!==false){
如果($ziparc->open($zipfile)==TRUE){
$questionsxml=newsimplexmlement($ziparc->getFromName($file));
$moodle->getQuestions($questionsxml);
$ziparc->close();
}否则{
echo“失败”;
}
}
}
zip_close($zip);
}
}
那么,错误在哪里呢?什么不起作用?这就是我自己想弄明白的。。这就是我得到的。致命错误:在D:\xampp\htdocs\project\index.php:47堆栈跟踪:#0 D:\xampp\htdocs\project\index.php(47):SimpleXMLElement->u构造中,未捕获异常“exception”,消息为“字符串无法解析为XML”(“听起来字符串不是有效的XML。抛出错误时,$data
中有什么内容?你确定该.zip中只有XML文件吗?我同意字符串可能不是有效的XML。上面的代码在多目录zip中按预期(递归)工作。