php数组在写入文本文件时插入换行符

时间:2018-02-28 06:32:15

标签: php

当解析一个充满变量的文本文件(每行一个,后面没有空格)时,处理后,它会被写入带有附加行的$ myfile。

请查看我的代码:

$txt_file    = file_get_contents('spins/' . $skustart . '/' . $skustart . '.txt');
$rows        = explode("\n", $txt_file);
array_shift($rows);
$row_data = $data;
foreach($rows as $row => $data)
{
  //parent

    $txt = $skustart. "-" . $a.$skip1.$slogan . " " . $data . $sloganb . ' Tee Shirt, Men\'s ' . $skip3 . $brand . $desc . $value . $tee .  $item_type . $skip20 . $skip9 .  $bullet_point1 . $bullet_point2 . $value . $bullet_point212 . $bullet_point3 . $bullet_point4 . $bullet_point5 . $value  . $gen_k1 . $value  . $gen_k2 .  $value  . $gen_k3 .  $value  . $gen_k4 .  $value  . $gen_k5 . $main_image_url1 . $img_folder_name . "/" . $skustart. "-" . $a . '-black' . $main_image_url1_format . $other_image_url1 . $skip10 . $parent . " ; ;" . $variation_theme . $skip18 .  $department_name .  " ; ;" . $skip2 .$skip2 .  $skip18 . "\n"; //this is the parent
  fwrite($myfile, $txt);


  //end parent

这是吐出来​​的:

注意:10K Run是有问题的变量($ data)

xxx-110K Run
blk-Sm;XXXXXXXBlack;black;; ;mens;; ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;Small;Small;

它应该在哪里:

xxx-110K Run blk-Sm;XXXXXXXBlack;black;; ;mens;; ;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;Small;Small;

我不确定导致这种情况的原因,代码似乎工作正常,直到我将其实现到此生成器中。

请提供建议或提供任何建议,非常感谢!

2 个答案:

答案 0 :(得分:1)

示例代码尚未完成,因此我仅针对您的主要问题提出建议 - 为什么有2个字符串。

这可能是因为你在输入中有这样的字符串: xxx-110K运行 \ n blk-Sm; XXXXXXXBlack; black ;; ;男装;;... 但是您的文本编辑器不会将其显示为单独的字符串。使用\ n \ r或\ r \ n或\ n

的不同组合会发生这种情况

您可以先删除所有“\ r \ n”,以检查是否属于这种情况。

修剪$ rows中的所有值有时也会有所帮助。

答案 1 :(得分:0)

解决。

已更改

$rows        = explode("\n", $txt_file);

$rows        = explode("\r\n", $txt_file);

感谢您的帮助!