目前我有一个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><Folder path="/C/Source/HongKong2/temp"/></Sources>
</Workflow>
我想要做的是用&lt;替换<
和>
与&gt; 。
$handle = fopen('a.xml', "r+") or die();
while(!feof($handle)) {
if (strstr(fgets($handle),"<") || strstr(fgets($handle),">")) {
echo 'tttt';
fwrite($handle, str_replace("<", "<", fgets($handle)));
fwrite($handle, str_replace(">", ">", fgets($handle)));
}
}
fclose($handle);
我可以触发if条件,它应该是正确的。唯一的问题是它无法替换该行(fwrite的一些问题..)。如何解决?感谢
答案 0 :(得分:1)
您多次调用fgets并且不对结果执行任何操作。每次调用fgets时,它都会从文件中读取并前进文件指针。将fgets移动到循环之外将值赋给变量并针对变量进行测试
答案 1 :(得分:1)
$handle = fopen('a.xml', "r+") or die();
$line = fgets($handle);
while($line) {
if (strstr($line,"<") || strstr($line,">")) {
echo 'tttt';
$newline = str_replace("<", "<", $line);
$newline = str_replace(">", ">", $newline);
fwrite($handle, $newline);
}
$line = fgets($handle);
}
fclose($handle);