很多站长朋友们都不太清楚phpfread换行,今天小编就来给大家整理phpfread换行,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 fread的问题 2、 php中fgets()与fread()有什么区别 3、 PHP中的语法解释。 4、 文件读写部分出错,请问错在哪?fread能自动读换行符吗?谢谢。 5、 php 替换文件指定部分内容 fread的问题文本中的内容为
1
2
3
4
5
6
FILE *file;
file = fopen("C:\\a.txt","rb");
char szData[20] = {0};
fread(szData,sizeof szData,20,file);
printf(szData);
fclose(file);
这个方式的读取是二进制读取,二进制读取我就不解释了。不同的系统对于TXT文件的回车符保存内容在二进制下是不同的,我的Win7系统,直接写入文件,然后读出,szData中内容为
1\d\n2\d\n3\d\n.....
\d\n 的意义如果不明白,自己查吧。
如果是XP系统下,应该只有\n没有\d,自己确认下吧。
file = fopen("C:\\a.txt","rt");
fread(szData,sizeof szData,20,file);
printf(szData);
fclose(file);
对于文本文件,建议使用这种方式读写,读取后szData中内容为:
1\n2\n3\n......
无论使用什么系统,只要是文本文件,读取后系统会自动修改任意格式的换行符为标准C换行符:\n 不会有其他字符
file = fopen("C:\\b.txt","wb");
fprintf(file,szData);
fclose(file);
这个东西其实和printf是同一原理,只不过printf是输出到DOS界面,而fprintf是输出到指定文件。
file = fopen("C:\\b.txt","rb");
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fclose(file);
file = fopen("C:\\b.txt","rt");
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fscanf(file,"%s",szData);
fclose(file);
fscanf自动处理各种换行符,这两种方式的读取szData中的内容是一样的。读取后szData的内容依次为:
1
2
3
....
php中fgets()与fread()有什么区别fgets 从可访问的文件流里读取一行。以换行符结束。或者读够指定的字数。或者碰到文件结尾。。看先碰到哪一种情况。
fread 从可访问的文件流里读取一定的字数。默认为 1024 字节。或者碰到文件结尾。看先碰到哪一种情况。。
两者主要区别在于。 fgets 碰到换行符的时候。也会停止读取。而 fread 不会。相同的部份就是。文件读完。或者读够指定的字节数。都会停止。
换行符局限于 \r\a 或 \a 二进制为 0x0D0A 或 0x0A ,也就是你在编写文件时输入的回车。HTML 的 <br> 不算是换行,算是4个字符而已。
PHP中的语法解释。上面所说的函数是一个读取文件的函数
我定义一下下面参数的意思
fread($a,$b);
$a 资源类型 读取文件的句柄
$b 整形类型 读取文件的大小【单位是字节】
先来看一个完整的例子
<?php
$file = fopen("test.txt","r"); //打开一个文件句柄
fread($file,filesize("test.txt")); //读取整个文件 filesize('test.txt');是获取整个文件的字节大小
fclose($file); //关闭资源句柄
?>
看了你对楼上的追问,根据我的感觉,你可能有几个是不明白的:
1.你对资源句柄的概念不是很清晰;
2.你对fread的读取操作不是很明白;
先来说第一个:
句柄你可以简单的理解为是一个打开文件的钥匙(KEY),没有先生成这个KEY是没有办法对这个文件进行读写的,而fopen就是作为一个生成KEY的作用,返回一个文件句柄,也就是KEY,让你使用。
假如我的文件("test.txt")内容为下面的一个句话(不换行的一句话):
'abcdefghijk....'
那么我用 fread($file,3); 那么返回的就是 abc 三个字节的内容,依次类推也就明白了,$file 是用来对一个文件进行读写操作的KEY,而3就是读取这个文件内容的字节数。
需要说明的是:fopen有很多种状态 而上面的fopen("test.txt","r")中的r是只读方式打开,并将文件指针指向文件头。这个和C中的指针很类似,你可以参考下手册。
文件读写部分出错,请问错在哪?fread能自动读换行符吗?谢谢。fwrite 操作的是把二进制代码写入文件,你要想读出来就要用fread 操作读出,然后打印出来(printf)。因为结构体是你程序自定义的,其他文本编辑器无法知道如何解析,也就会是乱码。
#include <stdio.h>
#include <stdlib.h>
struct Book
{
int num;
};
void saveBooks(struct Book head[], int total)
{
FILE*fp;
fp=fopen("d:\\libBook.txt","w+");
if(fp == NULL)
return ;
for(int i=0;i<total;i++)
fwrite(head[i],sizeof(Book),1,fp);
fflush(fp);
rewind(fp);
for(int j=0;j<total;j++)
{
fread(head[j],sizeof(Book),1,fp);
printf("%d",head[j].num);
}
fclose(fp);
}
int main()
{
struct Book book[2];
book[1].num = 1;
book[0].num = 2;
saveBooks(book,2);
return 0;
}
php 替换文件指定部分内容你得到一堆文件资源没法直接替换吧 ,只有string才能谈得上替换
你至少得这样
打开文件,得到文件资源
将文件资源用fread等读出转为一个大的string 然后进行你想要的各种替换,正则替换等等都行
替换完毕的string 再写入文件
关于phpfread换行的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpfread换行 php回车换行的详细内容...