PHP文本的读写
<?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文本的读写的更多相关文章
- 重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表
原文:重新想象 Windows 8 Store Apps (23) - 文件系统: 文本的读写, 二进制的读写, 流的读写, 最近访问列表和未来访问列表 [源码下载] 重新想象 Windows 8 S ...
- 背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据
[源码下载] 背水一战 Windows 10 (89) - 文件系统: 读写文本数据, 读写二进制数据, 读写流数据 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 读写文本数 ...
- python中文本的读写操作
文本的操作 函数的排序操作: def func(i): return i[2] list=[('曹操',101,'c'),('吕布',100,'d'),('刘备',200,'l'),('大乔',50, ...
- IO流-文本IO\读写二进制数据
文本IO 一.简述 OutputStreamWriter类使用选定的编码方式吧Unicode字符流转换为字节流,InputStreamReader类将包含字节的输入流转为可以产生Unicode字符的读 ...
- JAVA File方法文本复制读写-解决中文乱码
import java.io.*; public class TextFile { public static void main(String[] args) throws Exception { ...
- c++ 以二进制和以文本方式读写文件的区别
在c++项目开发中,时常涉及到文件读写操作.因此在这里先简单梳理和回顾一下文本模式和二进制模式在进行文件读写上的区别. 1.linux平台下文本文件和二进制文件的读写 在linux平台下进行文件读写时 ...
- C++对txt文本进行读写操作
输入输出,是每个程序员的基本功,尤其是对文本的输入和输出.最近,自己在这方面做了一些总结,不是很全面,希望在以后学习和工作的过程中慢慢补充,积累点点滴滴.P.S. 今天天气不错,雾霾散了,天空晴朗,惠 ...
- FileStream对文本进行读写操作
class FileHelper { /// <summary> /// 检验文件路径是否合法 /// </summary> /// <param name=" ...
- C语言中以文本方式读写文件时换行符转换的注意事项
我们知道在UNIX下是没有回车符(\r)的,只有换行符(\n),而C语言诞生于UNIX(Linux即面向开源的UNIX,Mac OS也是UNIX发展而来的,而Windows是从MS-DOS发展而来,与 ...
随机推荐
- 第一个shell脚本 结合计划任务下载远程文件
思路: 进入/usr/local/apache2/htdocs/ipa/ 循环读取 /root/shell/wget/down.txt 每次一行,每一行直接就是一条命令,直接 $line 就可以执 ...
- Servlet的请求HttpServletRequest
一.从容器到HttpServlet 1.web容器作了什么 web容器做的事情就是,创建Servlet实例,并完成Servlet的名称注册及URL模式的对应.在请求来到时,web容器会转发给正确的Se ...
- LoadRunner
LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找LoadRunner能够对整个企业架构进行测试.通过使用LoadRunne ...
- OpenCV教程二 - Mat对象与它各种用法
学习OpenCV大家都会遇到一个对象叫做Mat,此对象非常神奇,支持各种操作.很多初学者因此被搞得头晕脑胀,它各种用法太多太杂,搞得初学者应接不暇,感觉有心无力.无处下手之感.这里我们首先要正本清源, ...
- Cent OS U盘安装不成功问题
环境: CentOS 版本:CentOS-7-x86_64-DVD-1611 镜像烧写工具:UltraISO 9.5.3.2901,Win7 硬件:J1900+16G SSD+4G RAM,金士顿16 ...
- 汇编实现HelloWorl!
hello word~ ASSUME CS:CODE,DS:DATA DATA SEGMENT DB "HELLO WORLD" ;存储要显示的数据 DATA ENDS CODE ...
- java打包jar,war,ear包的作用、区别
java的打包jar,war,ear包的作用,区别,打包方式. a) 作用与区别 i. jar: 通常是开发时要引用通用(JAVA)类,打成包便于存放管理 ii. war ...
- db_link
1.查询 SYSDBA登录, sys登录 SELECT * FROM SYS.link$; select owner,object_name from dba_objects where obj ...
- String,StringBuffer,StringBuilder个人认为较重要的区别
今天在整理不可变对象知识点时,突然看到了String,StringBuffer,StringBuilder三者的区别,这里就挑一些我认为比较重要的点记录一下,方便日后查看. Strin ...
- Android Studio 提高工作效率的奇技
1.ctrl+f12 ctrl+f12此快捷键可以调出当前文件的大纲,并通过模糊匹配快速跳转至指定的方法.勾选上“show anonymous classes”后其功能相当于Eclipse中的ctrl ...