zoenbo 发表于 2020-11-27 20:10

请教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                        

fsql 发表于 2020-12-1 13:58


$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);

JDK007 发表于 2020-11-27 20:56

不是有个自带的函数嘛,匹配正则用的。preg_split()

zoenbo 发表于 2020-11-27 21:21

JDK007 发表于 2020-11-27 20:56
不是有个自带的函数嘛,匹配正则用的。preg_split()

网上的方法试了个遍都不行

yzqhj 发表于 2020-11-27 22:20

zoenbo 发表于 2020-11-27 21:21
网上的方法试了个遍都不行

https://blog.csdn.net/qlzx_syzx/article/details/53152559
试试,我没深学了

zoenbo 发表于 2020-11-27 22:36

yzqhj 发表于 2020-11-27 22:20
https://blog.csdn.net/qlzx_syzx/article/details/53152559
试试,我没深学了

这个试过了,没解决

麦子1995 发表于 2020-11-28 09:03

麦子1995 发表于 2020-11-28 09:04

zoenbo 发表于 2020-11-28 09:21

麦子1995 发表于 2020-11-28 09:04
preg_split('/[;\r\n\s]+/s',$str)   说错了,是这个不是刚才的那个

也不行的

yzqhj 发表于 2020-11-28 16:02

zoenbo 发表于 2020-11-28 09:21
也不行的

用的什么编辑器

zoenbo 发表于 2020-11-28 16:03

yzqhj 发表于 2020-11-28 16:02
用的什么编辑器


用的是emEditor
页: [1] 2 3
查看完整版本: 请教PHP分割TXT制表符的问题