ホームページ  >  記事  >  バックエンド開発  >  php 各行を別のテキストファイルにコピーします

php 各行を別のテキストファイルにコピーします

WBOY
WBOYオリジナル
2016-06-23 14:17:561095ブラウズ

PHP のテキスト行

うーん、正直、これがとても面倒です

以上、q.txt 内の各テキスト行を 1.txt/2.txt/3.txt にその数に応じてコピーしたいのですが、単語

q. txt のテキスト形式は次のとおりです:
ajsg 蓝本 草本ajsv 莫要ajsm 苹果机ajsu ?ajsc 黄果树ajsj 七星瓢虫ajsu ?ajt 蓝ajtl 蓝ajth 蔓延 惹是生非aagw 恭敬不如从命

要件は最初のものと同様で、2 つに分割して 2.txt に記述する必要があります。すべての漢字の後にスペースを含めることはできません。
例:
ajsg 蓝本ajsg 草本

3 文字を 3.txt に保存します。このように
ajth 蔓延 惹是生非

5.txt に 4 文字以上保存する場合は 2.txt と 4.txt で保存する必要があります

1.txt、2.txt などは q.txt と同じ形式で保存してください。 漢字の後にスペースを入れることはできません
a 工a 戈aa 式aaa 工aaaa 工aaar ?aad 式aad ?aadk 匿aadn 慝aadw 萁aadn 葚


誰か助けてください。 PHP ソリューションを教えてください。よろしくお願いします。

ディスカッションに返信 (解決策)

<?php$handle = @fopen("q.txt", "r");if ($handle) {    while (!feof($handle)) {        $buffer = fgets($handle, 4096);        $data=explode(' ',trim($buffer));        $tap=trim(array_shift($data));		foreach($data as $v){			$encode = 'UTF-8';			$str_num = mb_strlen(trim($v),$encode);			$fname=$str_num>4?5:$str_num;			@file_put_contents($fname.".txt",$tap." ".trim($v)."\r\n",FILE_APPEND);		}    }    fclose($handle);}?> 

ただし、q.txt ドキュメントのエンコード形式を確認する必要があります。ここでは、q のデフォルトである UTF-8 を使用します。 .txt ドキュメントは UTF-8 でエンコードされています; ここに来てください;

<?php$handle = @fopen("q.txt", "r");if ($handle) {    while (!feof($handle)) {        $buffer = fgets($handle, 4096);        $data=explode(' ',trim($buffer));        $tap=trim(array_shift($data));		foreach($data as $v){			$encode = 'UTF-8';			$str_num = mb_strlen(trim($v),$encode);			$fname=$str_num>4?5:$str_num;			@file_put_contents($fname.".txt",$tap." ".trim($v)."\r\n",FILE_APPEND);		}    }    fclose($handle);}?> 

ただし、ここでは q.txt ドキュメントのエンコード形式を確認する必要があります。デフォルトでは、q.txt ドキュメントは UTF-8 でエンコードされています。理解してください。ありがとうございます。問題は解決しました。私のテキストはUTF-8です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。