【问题标题】:Php Text wrap and save txt filephp文本换行并保存txt文件
【发布时间】:2016-04-04 10:40:29
【问题描述】:

我有一个小问题。 我想包装一个文本并保存到 txt 文件。 例如文本是

Lorem ipsum dolor sit amet,consectetuer adipiscing elit,sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat。 Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat。 Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi。 Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum。 Typi non habent claritatem insitam; iis qui facit eorum claritatem 中的 est usus legentis。调查 demostraverunt lectores legere me lius quod ii legunt saepius。 Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum。 Mirum est notare quam littera gothica、quam nunc putamus parum claram、anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima。 Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum。

我想每 40 个字换行一次并保存一个 txt 文件。

所以第一个txt文件:

Lorem ipsum dolor sit amet,consectetuer adipiscing elit,sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat。 Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

第二个txt文件:

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait

会这样。

我试过这段代码,但我不知道换行。

$text = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
 nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et.";
$word = explode(" ",$text);
$count = count($word);
$limit = 40;
if($count <= $limit) { $cut = $count*50/100; }
else { $cut = $limit; }
for($i = 0; $i <= $cut; $i++)
{ $text1= $word[$i].' ' ; echo $text1;}

感谢您的帮助。 圣诞快乐,新年快乐。

【问题讨论】:

    标签: php sed explode word-wrap


    【解决方案1】:

    使用 file_put_contents() 将文本存储到 text(.txt) 文件中 参考这个链接:http://php.net/manual/en/function.file-put-contents.php

    例如:

    $file   = "/folder_path/name_of_file.txt";
    file_put_contents($file, print_r($_GET['data'], true), FILE_APPEND);
    

    并且您必须授予要存储文本文件的文件夹的权限。

    【讨论】:

    • 感谢您的回答,但我不知道如何自动生成文件名。例如;文本长度为 4000 个字符并换行 10 次。如何保存file1.txt、file2.txt、file3.txt.....?
    • 你想动态设置文件名如:$name = rand()."specific_name.txt";//这只是例子 $file = "/folder_path/".$name;它会给你动态输出。您将按照自己的方式生成名称
    【解决方案2】:

    好吧,您可以使用wordwrap 函数。这个函数会在每 X 个字符处分断字符串,插入一个字符来分割。

    例如,在这段代码中,我想将字符串每隔 20 个字符分断一次:

    $text = "The quick brown fox jumped over the lazy dog.";
    $newtext = wordwrap($text, 20, "\n");
    

    回报将是:

    The quick brown fox
    jumped over the lazy
    dog.
    

    因此,字符串上划分的每个部分都由\n 分隔。现在您可以使用explode 将字符串的各个部分放入一个数组中

    $newtext = explode("\n", $newtext);
    

    这将是我的带有损坏字符串的数组:

    array(3) {
      [0] =>
      string(19) "The quick brown fox"
      [1] =>
      string(20) "jumped over the lazy"
      [2] =>
      string(4) "dog."
    }
    

    要保存文件,您可以查看本教程:

    http://php.net/manual/en/function.file-put-contents.php

    参考资料: http://php.net/manual/en/function.wordwrap.php

    【讨论】:

      【解决方案3】:
      $charnum="100";
      $number=strlen($text);
      $tekrar=$number/$charnum;
      $newtext= str_replace("\n", "", $text);
      $newtext = wordwrap($newtext, $charnum, "\n");
      $newtext = explode("\n", $newtext);
      
      for ( $count=1 ; $count < $tekrar ; $count++ )
      {
      
      $file   = "/files/$count.txt";
      file_put_contents($file,$newtext[$count]);
      

      我是这样写的,但这次我接受了警告:

      Warning: file_put_contents(/files/1.txt): failed to open stream: No such file or directory in
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-20
        • 2012-09-28
        相关资源
        最近更新 更多