全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1022|回复: 10

求PHP大佬指点一下代码

[复制链接]
发表于 2019-9-4 17:02:47 | 显示全部楼层 |阅读模式
目录 txt

里面有文件 : 1.txt 2.txt 3.txt  ....... 100.txt

现在想将txt目录里 1- 100 这100个文件按照顺序合并成1个101.txt,请问要怎么实现?

是要按编号顺序.



仅仅百度到了一段有用的代码,其他都是遍历目录合并,而且全部是抄来抄去的文章:

  1. <?
  2. $data="";
  3. for ($i=1;$i<=100;$i++) {
  4. $dir=$i.".txt";
  5. $data = $data.file_get_contents($dir)."\r";
  6. }
  7. $fo = fopen("101.txt","a+");
  8. fwrite($fo,$data);
  9. fclose($fo);
  10. ?>
复制代码


但是这个代码实现起来有问题,第一次是能生成一个完整的101.txt, 但是我如果删除这个101.txt ,接下去每次生成的101.txt都是不完整的(不知道啥原因)


也就是想请论坛上的大佬,完善一下这段代码?或者即兴写一段让我学习下.
发表于 2019-9-4 17:17:33 | 显示全部楼层
yangen 发表于 2019-9-4 17:13
没发现什么毛病,稍微改下

优秀
发表于 2019-9-4 17:14:57 | 显示全部楼层
本帖最后由 dvbhack 于 2019-9-4 17:16 编辑
  1. <?php
  2. $data = "";
  3. for ($i = 1; $i <= 100; $i++) {
  4.   $data .= file_get_contents("$i.txt");
  5. }

  6. file_put_contents("101.txt", $data);
复制代码


https://repl.it/repls/LightyellowAwfulPoints

点评

已经搞定了,谢谢.  发表于 2019-9-4 17:19
发表于 2019-9-4 17:05:43 | 显示全部楼层
本帖最后由 忘江湖 于 2019-9-4 17:07 编辑

路过帮顶一下。。。
 楼主| 发表于 2019-9-4 17:08:44 | 显示全部楼层
忘江湖 发表于 2019-9-4 17:05
路过帮顶一下。。。

已经搞定,感谢大佬回复.
发表于 2019-9-4 17:12:08 | 显示全部楼层
本帖最后由 我是一个大水怪 于 2019-9-4 17:13 编辑

文件读写是最基本的编程练习吧?与使用任何语言无关,基本上都是封装的系统提供的C语言API,所以使用啥语言都差不多。
即使我不懂php,也能简单的看出问题:
`$data = $data.file_get_contents($dir)."\r";`是字符串连接吗,是类似Java中`StringBuilder.append`之类的操作?
`$fo = fopen("101.txt","a+");`,这里的`a+`是否使用正确了,有认真的考虑过吗?
发表于 2019-9-4 17:13:56 | 显示全部楼层
没发现什么毛病,稍微改下
<?
for ($i=1;$i<=100;$i++) {
$dir=$i.".txt";
$data .= file_get_contents($dir)."\r";
}
file_put_contents('101.txt', $data, FILE_APPEND | LOCK_EX);
?>
发表于 2019-9-4 17:18:00 | 显示全部楼层
$file = fopen('101.txt', 'a+');
for ($i = 1; $i <= 100; $i++) {
        fwrite($file, file_get_contents($i.'.txt')
}

fclose($file);

点评

谢谢  发表于 2019-9-4 17:25
 楼主| 发表于 2019-9-4 17:18:45 | 显示全部楼层
yangen 发表于 2019-9-4 17:13
没发现什么毛病,稍微改下

已经搞定了,谢谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-29 11:26 , Processed in 0.066312 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表