我有这段代码:
//This line is for the input that i've looped above my code, it's a URL
$textAr[$i] = str_replace("\r\n","", $textAr[$i]);
//This is for implode purposes
$finalArray = array($textAr[$i], $m1, $m2, $m3, $m4, $m5, $m6);
//When i echo this variable, $test, the URL is in the line along with the implode arrays
$test = implode($finalArray, "***");
echo $test."\n";
//This is for writing into my text file
fwrite($sitesTxt, implode($finalArray, "***")."\n");
我有这样的错误,在我输入3个网址后,第一个和第二个网址在我写入文件后有新行,但我输入的最后一个网址是沿着与内爆阵列。我甚至修剪了$ textArr,但我不断获得新的线条。
预期产出:
https://docs.google.com***false***false***false***false***false***false***
https://stackoverflow.com***false***false***false***false***false***false***
https://stackexchange.com***false***false***false***false***false***false***
输出我的txt文件:
https://docs.google.com
***false***false***false***false***false***false***
https://stackoverflow.com
***false***false***false***false***false***false***
https://stackexchange.com***false***false***false***false***false***false***
答案 0 :(得分:1)
根据您的系统,您的行可能不会以\ r \ n组合结束,但可能只是\ r。
我建议将str_replace更改为:
$textAr[$i] = str_replace(array("\r","\n"),"", $textAr[$i]);
或者,更改数组:
$finalArray = array(trim($textAr[$i]), $m1, $m2, $m3, $m4, $m5, $m6);
顺便提一下,虽然它会起作用,但你的内爆参数是相反的:
$test = implode("***", $finalArray);
答案 1 :(得分:0)
你应该使用PHP_EOL常量来解决' break-line'字符。因为DOS中的折线字符是\r\n
,但是在* nix中,它只是\n
。
所以,你将第一行替换为
$textAr[$i] = str_replace(PHP_EOL, '', $textAr[$i]);