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发展而来,与 ...
随机推荐
- Struts2框架学习(三) 数据处理
Struts2框架学习(三) 数据处理 Struts2框架框架使用OGNL语言和值栈技术实现数据的流转处理. 值栈就相当于一个容器,用来存放数据,而OGNL是一种快速查询数据的语言. 值栈:Value ...
- Java jsp基本结构
<!DOCTYPE html> <!-- [ published at 2015-11-13 12:30:50 ] --> <html> <head> ...
- c# silverlight
分享 tsc 条码打印机 打印控件 调用方法 , c# silverlight 下载 TSCLIB.dll http://download.csdn.net/detail/peiyu_peiyu/47 ...
- HTML 5 简介、视频、Video + DOM、音频、拖放
HTML5 是下一代的 HTML. 什么是 HTML5? HTML5 将成为 HTML.XHTML 以及 HTML DOM 的新标准. HTML 的上一个版本诞生于 1999 年.自从那以后,Web ...
- Google Analytics之增强型电子商务报告
虽然Google Analytics很多年以前就提供了电子商务报告的功能,但对于电子商务网站来说,这个报告缺失的东西还太多.而Google Analytics即将推出的增强型电子商务报告有望弥补这一短 ...
- JavaScript成员属性读取
var obj = {}; 检索一个不存在的成员属性的值,将返回undefined; 可以使用||运算符来填充默认值: var status = obj.status||'inistatus' 从un ...
- HDU5916
Harmonic Value Description Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- 《JAVASCRIPT高级程序设计》第五章(1)
引用类型是一种将数据和功能组合到一起的数据结构,它与类相似,但是是不同的概念:ECMAScript虽然是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和结构等基本结构.引用类型也被称为“对 ...
- ArcGIS Pro 简明教程(3)数据编辑
ArcGIS Pro 简明教程(3)数据编辑 by 李远祥 数据编辑是GIS中最常用的功能之一,ArcGIS Pro在GIS数据编辑上使用习惯有一定的改变,因此,本章可以重点看看一些编辑工具的使用和使 ...
- FMDB的简单用法
使用cocoaPods将FMDB下载到工程 第一步:引入框架,引入支持类库(libsqlite3.0.tbd) #import <FMDB.h> 声明属性 @interface ViewC ...