<?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. [转]编写高性能的Lua代码

    昨天晚上闲来无事,看室友在电脑上挂机玩游戏,用的一个辅助脚本,以为是lua写的脚本在跑,实际调查发现是按键精灵的脚本. 于是在网上找相关Lua开发游戏脚本的案例,看到一个人的博客,内容很不错,学到了很 ...

  2. 搜索框(SearchView)的功能与用法

    SearchView是搜索框组件,它可以让用户在文本框内输入汉字,并允许通过监听器监控用户输入,当用户用户输入完成后提交搜索按钮时,也通过监听器执行实际的搜索. 使用SearchView时可以使用如下 ...

  3. JS模板引擎:基于字符串拼接

    目的 编写一个基于字符串拼接的js模板引擎雏形,这里并不会提供任何模板与数据的绑定. 基本原理 Javascript中创建函数的方式有多种,包括: 1. var func = function () ...

  4. Linux安装配置VPN服务器

    一.实验简介 VPN ,中文翻译为虚拟专有网络,英文全称是 Virtual Private Network .现在 VPN 被普遍定义为通过 一个公用互联网络建立一个临时的.安全的连接,是一条穿过混乱 ...

  5. Java高级特性之泛型

    首先我们先提出两个问题: 什么是泛型? 为什么要使用泛型?我们先来看看第一个问题什么是泛型.如果你对Java三大特性中的多态性理解的比较透彻的话,泛型就比较好理解了.多态性表示一个对象具备多种状态.比 ...

  6. SecureCRT 保存FTP用户登录密码

    Connect连接对话框->右键选择Session->选择属性->选择Connection 中的 Logon Actions->在右侧进行设置:

  7. react native ios打包到真机

    每当在模拟器上完成了开发,都想到真机上秀秀,正好前段时候买了一个mac,哈哈有机会了.前篇文章以android为例,这里就以ios为例,讲一下打包到iphone真机的流程. 一.前置 1.首先你得有一 ...

  8. 三分钟解读springmvc依赖

    长期以来都在写SSM框架的项目,却未能深入理解框架的搭建原理,而只是浅薄的理解前辈的架构,然后不断套用,项目做过几个,但框架的内涵却没有把握.小编打算今天从SpringMVC的依赖分析做起,一步步进行 ...

  9. 根据dba_hist_osstat统计CPU占用情况

    在11g里面,视图dba_hist_osstat用来记录OS级别的time时间指标.视图dba_hist_osstat_name显示了相关的指标名称. SYS@/dzgddb> select * ...

  10. 基于vue2+vuex2+vue-router+axios+elementUI做的自动化后台模板

    github地址:https://github.com/sailengsi/sls-admin 此项目重点突出在架构上模式,这个架构模式,可以让我们在开发中,很方便的拓展与维护,并且可以保持结构清晰的 ...