请教PHP分割TXT制表符的问题
本帖最后由 zoenbo 于 2020-12-8 11:27 编辑PHP对TXT文本每行里的制表符怎么弄?”|“竖线的可以分割,但是换成制表符\t就分割不了,各位大佬们有没有解决的法子呢?
<?php
$str= file_get_contents("names.txt");//将文件中的内容读成字符串
$str1=explode("\n",$str);//按换行进行拆分//单引号是转义字符,所以必须使用双引号
foreach($str1 as $value){
if($value=="")continue;
$cols=explode('|',$value);//按竖线进行拆分
$data[]=$cols; //将每次得到的存放在一个数组中
}
?>
names.txt
1 1 0001 義 1.1 j i 6 6 ji6
2 1 0002 丫|椏|枒 1.1 aa 1 1 aa1
3 1 0003 丸 1.1 j yun 4 4 jyun4
3 1 0003 丸 1.2 j yun 2 2 jyun2 白讀
4 1 0004 之 1.1 z i 1 1 zi1
5 1 0005 為 1.1 w ai 4 4 wai4 ㈠ ①作~.事在人~。②能者~師.一分~二
6 1 0005 為 2.1 w ai 6 6 wai6 ㈡ ①~社會服務。②表目的。③幫助。④對、向
7 1 0006 頭 1.1 t au 4 4 tau4
8 1 0007 主 1.1 z yu 2 2 zyu2
9 1 0008 半 1.1 b un 3 3 bun3
10 1 0009 州 1.1 z au 1 1 zau1
11 2 0010 農 1.1 n ung 4 4 nung4
12 2 0011 卷 1.1 g yun 2 2 gyun2 ㈠
13 2 0011 卷 2.1 k yun 4 4 kyun4 ㈡ ①曲,彎曲。②通「拳」
14 2 0011 捲 1.1 g yun 2 2 gyun2
$str = file_get_contents("name.txt");
$str1 = explode("\n",$str);
$data = array();
foreach($str1 as $value){
if($value == "")continue;
$cols = preg_split('/[;\r\n\s]+/s',$value);
array_push($data,$cols);
}
var_dump($data);
不是有个自带的函数嘛,匹配正则用的。preg_split() JDK007 发表于 2020-11-27 20:56
不是有个自带的函数嘛,匹配正则用的。preg_split()
网上的方法试了个遍都不行 zoenbo 发表于 2020-11-27 21:21
网上的方法试了个遍都不行
https://blog.csdn.net/qlzx_syzx/article/details/53152559
试试,我没深学了 yzqhj 发表于 2020-11-27 22:20
https://blog.csdn.net/qlzx_syzx/article/details/53152559
试试,我没深学了
这个试过了,没解决 麦子1995 发表于 2020-11-28 09:04
preg_split('/[;\r\n\s]+/s',$str) 说错了,是这个不是刚才的那个
也不行的 zoenbo 发表于 2020-11-28 09:21
也不行的
用的什么编辑器
? yzqhj 发表于 2020-11-28 16:02
用的什么编辑器
?
用的是emEditor