Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php simplexml_加载_文件错误工作了几次,然后停止;_Php_Xml_Simplexml - Fatal编程技术网

Php simplexml_加载_文件错误工作了几次,然后停止;

Php simplexml_加载_文件错误工作了几次,然后停止;,php,xml,simplexml,Php,Xml,Simplexml,我在使用simplexml加载xml文件时遇到问题,非常感谢您的帮助。代码运行了好几次,在那之后,即使文件存在,我也无法打开该文件。谢谢 <?php echo 'starting read<br>'; //////////////////////////////////// //$categories=$_POST["categories"]; //$project=$_POST["project"]; //$camera=$_POST["camera"]; //$desc

我在使用simplexml加载xml文件时遇到问题,非常感谢您的帮助。代码运行了好几次,在那之后,即使文件存在,我也无法打开该文件。谢谢

<?php
echo 'starting read<br>';
////////////////////////////////////
 //$categories=$_POST["categories"];
 //$project=$_POST["project"];
//$camera=$_POST["camera"];
//$description=$_POST["description"];
//$num=$_POST["val"];
///////////////////////////////////
$categories='a';
$project='a';
$camera='a'; 
$description='a';
$num=2;
//////////////////////////////////
$data=$categories.'<br />'.$project.'<br />'.$camera.'<br />'.$description;
echo $data;
$file = "main.xml";
//checking if file exists
 if(!file_exists($file))
  {echo'<br> file does not exist<br>';
  }
 else 
 echo '<br> file exists <br>';

// load file
$xml = simplexml_load_file($file) or die ("Unable to load XML file!");


// access XML data

$val=$xml->settings->imagesPage->imagesGallery->pageTitle[$num];
echo $val;
$xml->settings->imagesPage->imagesGallery->pageTitle[$num]=$data;
file_put_contents($file, $xml->asXML());

  echo  '<br>'. $desc.'\n';

?>
这是xml文件结构

<?xml version="1.0" encoding="iso-8859-1"?>
    <content>
       <settings>
          <imagespage>
             <imagesGallery>
                <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle>
                 <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle>
                  <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle>
                   <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle>
                    <pageTitle><![CDATA[<br>SED UT PERSPI<br>CANON 124<br>LOREM IPSUM<br>DOLOR SIT AMET]]></pageTitle>
              </imagesGallery>
             </imagespage>
         </settings>
     </content>

我还确保allow_url_fopen设置为ON(开)

第34行有一个小的打字错误

$xml->settings->imagesPage->imagesGallery->pageTitle[$num]=$data;
应该是

$xml->settings->imagespage->imagesGallery->pageTitle[$num]=$data;

除此之外,$desc的结尾还有一个未定义的错误。它没有设置

@tlenss谢谢我更正了$desc它应该是$data,你发现的另一个错误是我在网页上的输入错误

我的问题是,我的xml文件在前几次正确加载了,但随后抛出错误,称无法在仔细检查var_dump$xml时加载。我发现问题是simpleXML无法正确处理cdata

所以我像这样加载了我的文件

$xml = simpleXML_load_file($url,"SimpleXMLElement",LIBXML_NOCDATA); 

如果您的文档没有cdata节,那么像这样加载$xml=simplexml\u load\u file$file是可以的

您收到错误消息了吗?如果是,什么?没有错误消息所有显示的内容都无法加载XML文件,请为您的XML文件提供正确的路径。没有错误消息所有显示的内容都无法加载XML文件,正如您所看到的,我使用文件存在功能检查文件路径是否设置正确;file_exists$file的输出为true,错误为警告:simplexml_load_file[function.simplexml load file]:main.xml:370:解析器错误:在C:\wamp\www\grab.php中联机解析属性名称时出错27@thinkingmonkey我已经将文件设置为变量$file,fileexists$file返回true。