所以我正在尝试编写这个PHP脚本来输出文本文件中的差异。到目前为止,这是我的代码:
<?php
header('Content-type: text/plain');
$file1 = "list2.txt";
$file2 = "list1.txt";
$lines1 = file($file1, FILE_IGNORE_NEW_LINES);
$lines2 = file($file2, FILE_IGNORE_NEW_LINES);
$result = array_diff($lines2, $lines1);
print_r($result);
?>
我希望这能在没有[0] =&gt;的情况下回显剩余的单词。在每一行,我只想要这个词,而不是编号。我尝试过使用“pre”标签但它不起作用。
答案 0 :(得分:1)
print_r
主要用于调试目的,而不是显示。
你可以做到
foreach($result as $r) print($r);
OR
echo join(' ',$result);
答案 1 :(得分:1)
答案 2 :(得分:0)
答案 3 :(得分:0)
Print_r(和var_dump)主要用于调试输出。对于你的差异,你想做类似
的事情print implode(PHP_EOL,$result);
如果您的输出标题是text / plain,那么HTML标记将不会呈现为HTML,但会在页面中显示为文本。
答案 4 :(得分:0)
你需要逐个获取数组元素。然后使用它。然后逐个获取每个元素你可以使用foreach:like
foreach($result as $x)
{
echo $x;
}
答案 5 :(得分:0)
在处理大文件时使用文件可能效率不高....
$a = "list1.txt";
$b = "list2.txt";
$fpA = fopen($a, "r");
$fpB = fopen($b, "r");
$i = 0;
while(! feof($fpA)) {
$i ++;
$x = trim(fgets($fpA));
$y = trim(fgets($fpB));
if ($x !== $y) {
printf("#%d: %s<br />\n", $i, $y);
}
}
输出
#8: 2cc021a8f87e1defeb5d0a1d43a0FFFFF