<?php
$txtPart="test0.txt"; //export
$txtPartContent=fopen($txtPart,"r"); //读文件,返回TRUE,FALSE
if($txtPartContent){ //若文件存在继续
while(!feof($txtPartContent)){ //feof函数检查是否已到达 "end-of-file" (EOF),遍历文本
$txtPartContentLine=fgets($txtPartContent); //fgets() 函数用于从文件读取单行,文件指针会移动到下一行
$key=mb_substr($txtPartContentLine,0,17); //mb_substr(A,B,C) C:中文是两个字节
$myArr[$key]=$txtPartContentLine; //循环生成数组
}
fclose($txtPartContent); //关闭读文件
} $txtWrite="write0.txt";
$txtWriteContent=fopen($txtWrite,"w"); //打开写文件 $i=0;
$txtMain="test1.txt"; //tempor
$txtMainContent=fopen($txtMain,"r");
if ($txtMainContent){
while(!feof($txtMainContent)){
$isVerify=false; //默认不是核实人
$txtMainContentLine=fgets($txtMainContent);
$keyCompare=mb_substr($txtMainContentLine,0,17);
foreach($myArr as $x=>$x_value){ //循环遍历数组
if($keyCompare==$x){ //如果前17个字节一样,输出数组那行,(数组被匹配)
echo $x_value;
fwrite($txtWriteContent,$x_value); //写入被匹配的数组值
$i=$i+1; //记录匹配到的次数
$isVerify=true; //如果匹配成功则确认为核实人
}
}
if($isVerify==false){
echo $txtMainContentLine;
fwrite($txtWriteContent,$txtMainContentLine);
}
echo "<br/>";
}
fclose($txtMainContent);
} fclose($txtWriteContent); echo "Yep!".$i;
?>

读文件:

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

PHP文本的读写的更多相关文章

  1. 重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表

    原文:重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表 [源码下载] 重新想象 Windows 8 S ...

  2. 背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据

    [源码下载] 背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 读写文本数 ...

  3. python中文本的读写操作

    文本的操作 函数的排序操作: def func(i): return i[2] list=[('曹操',101,'c'),('吕布',100,'d'),('刘备',200,'l'),('大乔',50, ...

  4. IO流-文本IO\读写二进制数据

    文本IO 一.简述 OutputStreamWriter类使用选定的编码方式吧Unicode字符流转换为字节流,InputStreamReader类将包含字节的输入流转为可以产生Unicode字符的读 ...

  5. JAVA File方法文本复制读写-解决中文乱码

    import java.io.*; public class TextFile { public static void main(String[] args) throws Exception { ...

  6. c++ 以二进制和以文本方式读写文件的区别

    在c++项目开发中,时常涉及到文件读写操作.因此在这里先简单梳理和回顾一下文本模式和二进制模式在进行文件读写上的区别. 1.linux平台下文本文件和二进制文件的读写 在linux平台下进行文件读写时 ...

  7. C++对txt文本进行读写操作

    输入输出,是每个程序员的基本功,尤其是对文本的输入和输出.最近,自己在这方面做了一些总结,不是很全面,希望在以后学习和工作的过程中慢慢补充,积累点点滴滴.P.S. 今天天气不错,雾霾散了,天空晴朗,惠 ...

  8. FileStream对文本进行读写操作

    class FileHelper { /// <summary> /// 检验文件路径是否合法 /// </summary> /// <param name=" ...

  9. C语言中以文本方式读写文件时换行符转换的注意事项

    我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...

随机推荐

  1. cookie记忆换肤功能实战Demo

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  2. Struts2文件的下载

    1.下载登录页面download.jsp 1: <%@ page language="java" contentType="text/html; charset=U ...

  3. iOS 属性之assign、copy、retain

    参考自:http://blog.csdn.net/getchance/article/details/42213219 参考自:http://zhidao.baidu.com/link?url=Xmn ...

  4. 字典破解zip

    def pojie_zip(FilePath,PwdPath): zipFile = zipfile.ZipFile(FilePath , 'r' , zipfile.ZIP_DEFLATED) pa ...

  5. nginx安装配置

    Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强 1. apache ...

  6. es6笔记6^_^generator

    1.简介 Generator函数是一个函数的内部状态的遍历器(也就是说,Generator函数是一个状态机). 形式上,Generator函数是一个普通函数,但是有两个特征. function命令与函 ...

  7. 正则表达式之一:TSQL注释的查找

    最近自己做了个小项目,涉及到了大量的正则表达式匹配和处理,在这里也和大家分享一下. 我相信接触过SQL Server数据库的很多朋友都知道,它是以"--"开头来进行注释的,但你觉得 ...

  8. Wireshark网络抓包(四)——工具

    一.基本信息统计工具 1)捕获文件属性(Summary) 1. File:了解抓包文件的各种属性,例如抓包文件的名称.路径.文件所含数据包的规模等信息 2. Time:获悉抓包的开始.结束和持续时间 ...

  9. Win下JDK的安装和简单使用教程

    下载安装 一.从官网下载 1.百度jdk 然后点击像图片中指出的那个链接(www.oracle.com是java的官网) 2.下载(先点击那个 选择框 同意许可协议) 然后根据自己的电脑选择下载 64 ...

  10. ArcGIS Desktop 10.5 安装实录

    ArcGIS Desktop 10.5 安装实录 by 李远祥 几天前已经收到ArcGIS10.5的最终版安装介质,终于有时间可以安装一下.尽管ArcGIS10.5系列中,桌面软件不是主角,但笔者还是 ...