打开XML文件并使用PHP替换其中的特定字符

打开XML文件并使用PHP替换其中的特定字符,php,xml,file-io,fopen,fwrite,Php,Xml,File Io,Fopen,Fwrite,目前我有一个XML文件 <?xml version="1.0" encoding="UTF-8"?> <Workflow xmlns="http://ns.adobe.com/acrobat/workflow/2012" title="HongKong2_Convert_img" description="" majorVersion="1" minorVersion="0"> <Sources>&lt;Folder path="/C/Source/H

目前我有一个XML文件

<?xml version="1.0" encoding="UTF-8"?>
<Workflow xmlns="http://ns.adobe.com/acrobat/workflow/2012" title="HongKong2_Convert_img" description="" majorVersion="1" minorVersion="0">
<Sources>&lt;Folder path="/C/Source/HongKong2/temp"/&gt;</Sources>
</Workflow>

我可以触发if条件,它应该是正确的。唯一的问题是它无法替换该行(fwrite…存在一些问题)。如何解决这个问题?谢谢

您多次致电fgets,但对结果不做任何处理。每次调用fgets时,它都会从文件中读取并前进文件指针。将FGET移到循环外部,将值分配给变量,并针对变量进行测试

$handle=fopen('a.xml','r+'))或die();
$handle = fopen('a.xml', "r+") or die();
$line = fgets($handle);
while($line) {
    if (strstr($line,"&lt;") || strstr($line,"&gt;")) {
        echo 'tttt';
        $newline = str_replace("&lt;", "<", $line);
        $newline = str_replace("&gt;", ">", $newline);
        fwrite($handle, $newline); 
    }
    $line = fgets($handle);
}

fclose($handle);
$line=fgets($handle); while($line){ if(strstr($line,”)| strstr($line,”)){ 回声“tttt”; $newline=str_replace(“,”,$newline); fwrite($handle,$newline); } $line=fgets($handle); } fclose($handle);
$handle = fopen('a.xml', "r+") or die();
$line = fgets($handle);
while($line) {
    if (strstr($line,"&lt;") || strstr($line,"&gt;")) {
        echo 'tttt';
        $newline = str_replace("&lt;", "<", $line);
        $newline = str_replace("&gt;", ">", $newline);
        fwrite($handle, $newline); 
    }
    $line = fgets($handle);
}

fclose($handle);