zoukankan      html  css  js  c++  java
  • PHP文本的读写

     1 <?php
     2     $txtPart="test0.txt";    //export
     3     $txtPartContent=fopen($txtPart,"r");    //读文件,返回TRUE,FALSE
     4     if($txtPartContent){    //若文件存在继续
     5         while(!feof($txtPartContent)){    //feof函数检查是否已到达 "end-of-file" (EOF),遍历文本
     6             $txtPartContentLine=fgets($txtPartContent);    //fgets() 函数用于从文件读取单行,文件指针会移动到下一行
     7             $key=mb_substr($txtPartContentLine,0,17);    //mb_substr(A,B,C)    C:中文是两个字节
     8             $myArr[$key]=$txtPartContentLine;    //循环生成数组
     9         }
    10         fclose($txtPartContent);  //关闭读文件
    11     }
    12 
    13     $txtWrite="write0.txt";
    14     $txtWriteContent=fopen($txtWrite,"w");    //打开写文件
    15 
    16     $i=0;
    17     $txtMain="test1.txt";    //tempor
    18     $txtMainContent=fopen($txtMain,"r");
    19     if ($txtMainContent){
    20         while(!feof($txtMainContent)){
    21             $isVerify=false;    //默认不是核实人
    22             $txtMainContentLine=fgets($txtMainContent);
    23             $keyCompare=mb_substr($txtMainContentLine,0,17);
    24             foreach($myArr as $x=>$x_value){    //循环遍历数组
    25                 if($keyCompare==$x){        //如果前17个字节一样,输出数组那行,(数组被匹配)
    26                     echo $x_value;
    27                     fwrite($txtWriteContent,$x_value);    //写入被匹配的数组值
    28                     $i=$i+1;    //记录匹配到的次数
    29                     $isVerify=true;    //如果匹配成功则确认为核实人
    30                 }
    31             }
    32             if($isVerify==false){
    33                 echo $txtMainContentLine;
    34                 fwrite($txtWriteContent,$txtMainContentLine);
    35             }
    36             echo "<br/>";
    37         }
    38         fclose($txtMainContent);
    39     }
    40     
    41     fclose($txtWriteContent);
    42     
    43     echo "Yep!".$i;  
    44 ?>

    读文件:

    $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
    echo fread($myfile,filesize("webdictionary.txt"));
    fclose($myfile);

    写文件:

    $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
    $txt = "First Line";
    fwrite($myfile, $txt);
    $txt = "Second Line";
    fwrite($myfile, $txt);
    fclose($myfile);

    中文截取:mb_substr()
    mb_substr( $str, $start, $length, $encoding )
    $str,需要截断的字符串
    $start,截断开始处,起始处为0
    $length,要截取的字数
    $encoding,网页编码,如utf-8,GB2312,GBK

    (PS:mb_substr第四个参数编码格式我没有加,不知道加完以后是怎么样)

    测试:

    $txtTest="我只是一个测试,今天是2017-02-19,-Mazey";

    $txt1=mb_substr($txtTest,0,10);

    $txt2=mb_substr($txtTest,0,10,'utf-8');

    $txt3=mb_substr($txtTest,2,10,'utf-8');

    echo $txt1."<br/>";

    echo $txt2."<br/>";

    echo $txt3."<br/>";

    输出:

    我只是一个
    我只是一个测试,今天?
    是一个测试,今天是20

    分析:

    $txt2后面出现一个乱码,难道是因为中文下的","只占一个字节,然后另一个中文输出了一半?

    再次测试:

    $txtTest="我只是一个测试哈今天是哈2017-02-19,-Mazey";

    $txt2=mb_substr($txtTest,0,10,'utf-8');

    echo $txt2."<br/>";

    输出:

    我只是一个测试哈今天?

    分析:

    编码参数换成"GBK"后可以正常显示,可能含中文的话就要用"GBK",也可能与代码编码格式有关,后续遇到问题或者问问其他同事吧。

    今天先睡觉了。:)

    $myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
    echo fread($myfile,filesize("webdictionary.txt"));
    fclose($myfile);
  • 相关阅读:
    JavaAPI基础(1)
    类与对象、封装、构造方法
    Java语言基础
    Request请求的应用
    Response的应用
    java生成动态验证码
    Servlet的配置
    常见的状态码。。
    简单学习【1】——打包JS
    NodeJS2-2环境&调试----引用系统内置模块,引用第三方模块
  • 原文地址:https://www.cnblogs.com/mazey/p/6417851.html
Copyright © 2011-2022 走看看