这是篇求助帖,因为我做五笔系统遇到词库问题,太大了,所以用php解决的
本人技术有限,只能CSDN求助了,这里感谢xiaoxiaoliangloveyou,因为他帮我解决了问题。再次感谢!
下面是问题描述:(原帖点击这个)
要把q.txt里的文本每行按照字数复制到1.txt/2.txt/3.txt/4.txt/5.txt
q.txt文本格式如下:
- ajsg 蓝本 草本
- ajsv 莫要
- ajsm 苹果机
- ajsu 菒
- ajsc 黄果树
- ajsj 七星瓢虫
- ajsu 菓
- ajt 蓝
- ajtl 蓝
- ajth 蔓延 惹是生非
- aagw 恭敬不如从命
要求像第一个,要把他分成两个写到2.txt里,所有汉字后面不能有空格。
如:
- ajsg 蓝本
- ajsg 草本
三个字的存到3.txt里。像一下这种
- ajth 蔓延 惹是生非
需要存到2.txt一个,4.txt一个
四字以上存到5.txt里。
1.txt,2.txt等存出来的格式要和q.txt的一样,汉字后面不能有空格
如1.txt的
- a 工
- a 戈
- aa 式
- aaa 工
- aaaa 工
- aaar 菚
- aad 式
- aad 匞
- aadk 匿
- aadn 慝
- aadw 萁
- aadn 葚
下面是xiaoxiaoliangloveyou给出的解决方法(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>45:$str_num;
- @file_put_contents($fname.".txt",$tap." ".trim($v)."\r\n",FILE_APPEND);
- }
- }
- fclose($handle);
- }
- ?>
不过这有一个前提;需要看你的q.txt的文档的编码是什么格式! 我这里使用UTF-8,也就是默认你的q.txt文档是UTF-8编码的;来到这里;你应该懂的了;