如何使用正则获取txt的内容,然后再重新生成一个新的txt

江浪888 2013-11-12 09:40:58
现有字符“anna (1814) 哎菁 (6474) 李杨 (2759) 天刀 (0411)”等出现在a.txt文档中,我该如何获取通过PHP和正则来循环获取括号内的数字,并且根据根据这些数字来生成一个新的b.txt文档?

小弟刚学PHP,还请高手多多指教
...全文
277 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
$txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
preg_match_all('#\d+#i',$txt,$match);
//preg_match_all('#\(\d+\)#i',$txt,$match); 带括号情况
foreach ($match[0] as $row){
	$newdata.=$row.' ';
	//echo $row.'<br/>';
}
echo $newdata;
//file_put_contents('b.txt',$newdata);
正则循环就是这样。不知道你要生成的txt是什么格式?
江浪888 2013-11-13
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
//$txt = file_get_contents('old.txt');
$txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
preg_match_all('#\d+#i', $txt, $match);
$newdata = join(PHP_EOL, $match[0]);
//file_put_contents('new.txt', $newdata);
//file_put_contents('new.txt', $newdata, FILE_APPEND);
可以了,谢谢大侠
xuzuning 2013-11-13
  • 打赏
  • 举报
回复
//$txt = file_get_contents('old.txt');
$txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
preg_match_all('#\d+#i', $txt, $match);
$newdata = join(PHP_EOL, $match[0]);
//file_put_contents('new.txt', $newdata);
//file_put_contents('new.txt', $newdata, FILE_APPEND);
江浪888 2013-11-13
  • 打赏
  • 举报
回复
引用 2 楼 changjay 的回复:
$txt = 'anna (1814)  哎菁 (6474)  李杨 (2759)  天刀 (0411)';
preg_match_all('#\d+#i',$txt,$match);
//preg_match_all('#\(\d+\)#i',$txt,$match); 带括号情况
foreach ($match[0] as $row){
$newdata.=$row.' ';
//echo $row.'<br/>';
}
echo $newdata;
//file_put_contents('b.txt',$newdata);

正则循环就是这样。不知道你要生成的txt是什么格式?


我用了你的代码,完全可以实现,但我目前想生成一个CSV格式,我想请教下,为什么我生成的是这样的?

我想要实现的是一个标题,下面是一列显示显示,不要多行

相关代码如下:

<?php
$path="old.txt";
$txt = file_get_contents($path);;
//$txt = 'anna (1814) 哎菁 (6474) 李杨 (2759) 天刀 (0411)';
preg_match_all('#\d+#i',$txt,$match);
//preg_match_all('#\(\d+\)#i',$txt,$match); 带括号情况
foreach ($match[0] as $row){
$newdata.=$row.",";
//$newdata.=$newdata.'\r\n';
//echo $row.'<br/>';
}
$fp = fopen("new.csv","a"); //打开csv文件,如果不存在则创建
$list = array($newdata);
$list1 = implode(",",$list);
$list1 = $list1."\r\n"; //加入换行符
fwrite($fp,iconv('UTF-8','GB2312',$list1)); //写入数据
fclose($fp); //关闭文件句柄
echo "生成成功";
//echo $newdata;
//file_put_contents('new.txt',$newdata);
?>
一起混吧 2013-11-12
  • 打赏
  • 举报
回复
新的txt要插入什么字符,这个需要说清楚哦。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧