Php 根据XML文件的文件大小有条件地使用文件内容

Php 根据XML文件的文件大小有条件地使用文件内容,php,Php,我从AmazonAPI得到一个XML响应 $dom = new DOMDocument(); $dom->loadXML($response->toXML()); 我尝试过使用PHP的函数,但它没有通过echo输出任何内容 $xml1 = simplexml_load_string($dom->saveXML()); $filesize = filesize($xml1); 试试这个也一样 $filesize = filesize($dom->saveXML());

我从AmazonAPI得到一个XML响应

$dom = new DOMDocument();
$dom->loadXML($response->toXML());
我尝试过使用PHP的函数,但它没有通过echo输出任何内容

$xml1 = simplexml_load_string($dom->saveXML());
$filesize = filesize($xml1);
试试这个也一样

$filesize = filesize($dom->saveXML());
未输出文件大小

我得到的空白xml响应是354字节,所以我尝试这样做

if ($filesize > '360') {
     $file_name = "List_".time().".xml";
     file_put_contents($file_name, $dom->saveXML());
}
但我只能在使用
文件内容
后才能获得文件大小。。。因此

      $file_name = "ListOrders_".time().".xml";
      file_put_contents($file_name, $dom->saveXML());
      $filesize = filesize($file_name);
      echo '<br />filesize: ' . $filesize . '<br />';
$file\u name=“ListOrders”.time().“.xml”;
文件内容($file\u name,$dom->saveXML());
$filesize=filesize($file\u name);
回显“
文件大小:”$文件大小。”

在使用
file\u put\u contents
之前,是否需要检查XML文件的文件大小?

尝试使用PHP的内置输出缓冲系统。


对于您的特定用途,您可以在文件内容之后使用该条件的否定版本或相反版本来检查其是否低于360,然后在条件失败时使用
取消链接
功能删除该文件

$file_name = "ListOrders_".time().".xml";
file_put_contents($file_name, $dom->saveXML());
$filesize = filesize($file_name);

if($filesize < 360){
  unlink($file_name);
}
$file\u name=“ListOrders”.time().“.xml”;
文件内容($file\u name,$dom->saveXML());
$filesize=filesize($file\u name);
如果($filesize<360){
取消链接($file\u name);
}
您的问题是它需要一个文件路径。您的文件尚未保存,因此您无法依赖它

$dom->saveXML()
不带参数返回一个xml字符串。将其保存在一个变量中,并使用
strlen()
检查文件的长度,您就有了自己的文件大小

$strXML  = $dom->saveXML();
$filesize = strlen($strXML); 
$maxFileSize = 300;

if ($filesize < $maxFileSize){
    file_put_contents("myfile_name.xml",$strXML);
}
$strXML=$dom->saveXML();
$filesize=strlen($strXML);
$maxFileSize=300;
如果($filesize<$maxFileSize){
文件内容(“myfile\u name.xml”,$strXML);
}

在使用文件内容之前,它不是xml文件,因此文件操作/访问功能将不起作用。请不要引用我的话,但这可能是您的问题。您不是在寻找xml输出的strlen吗?@mkaatman这将是预期的文件大小(以位为单位)吗?它将是当前的字符串长度(以字节为单位)。在文件内容放完之后才有文件,因此不能有文件大小。@mkaatman是的,这就是我想要的答案
$filesize=strlen($dom->saveXML())
返回字节数
354
。。。。现在我可以做我的
if($filesize>'360'){
file\u-put\u-contents
$strXML  = $dom->saveXML();
$filesize = strlen($strXML); 
$maxFileSize = 300;

if ($filesize < $maxFileSize){
    file_put_contents("myfile_name.xml",$strXML);
}