首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

即使文件不存在,PHP fwrite总是返回要写入的字节数,这是预期的行为吗?

这个问题涉及到PHP编程语言中的fwrite函数,以及文件写入操作的返回值。

首先,fwrite函数用于将数据写入文件。函数原型如下:

代码语言:txt
复制
int fwrite ( resource $handle, string $string [, int $length ] )

其中,$handle是一个文件句柄,$string是要写入文件的字符串,$length是要写入的最大字节数,默认为0,表示写入整个字符串。函数返回实际写入的字节数,如果发生错误,则返回false

关于这个问题,即使文件不存在,fwrite函数仍然会返回要写入的字节数,而不是false。这是因为fwrite函数在执行时,会先检查文件是否存在,如果不存在,则会尝试创建一个新文件。如果创建文件成功,则会继续执行写入操作,并返回实际写入的字节数。如果创建文件失败,则会返回false

因此,这个问题中的现象是预期的行为。如果你希望在文件不存在时,fwrite函数返回false,可以在调用fwrite函数之前,使用file_exists函数检查文件是否存在,如果不存在,则返回false

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PHP最简单写文件记日志当前时间

如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。 context 可选。规定文件句柄环境。Context 是可以修改流行为一套选项。...如果文件不存在则尝试创建之。 "w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 "a" 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。...定义和用法 fwrite() 函数写入文件(可安全用于二进制文件)。 语法 fwrite(file,string,length) 参数 描述 file 必需。规定要写入打开文件。...规定要写入文件字符串。 length 可选。规定要写入最大字节数。 说明 fwrite() 把 string 内容写入文件指针 file 处。...如果指定了 length,当写入了 length 个字节或者写完了 string 以后,写入就会停止,视乎先碰到哪种情况。 fwrite() 返回写入字符数,出现错误时则返回 false。 <?

80420

PHP文件写入和读取详解

一.实现文件读取和写入基本思路: 1.通过fopen方法打开文件:$fp =fopen(/*参数,参数*/),fp为Resource类型 2.进行文件读取或者文件写入操作(这里使用函数以1中返回...【注意】r+,a+,w+还有一个区别是a+,w+在文件不存在时则创建文件,r+文件不存在时报错 【吐槽】:关于r+和w+,a+区别,我找了网络上,包括W3C和各种博客文章以及那本“PHP圣经”上各种资料...,返回文件字节数,为整型数字 • unlink():删除一个文件 写入文件 fwrite(资源文件对象[string],写入方式[string]),资源文件对象即为fopen方法返回参数,为Resource...类型,写入方式可以是w(或者w+,a+,r+) 已经有上面的例子,这里就不放demo了 读取文件 这是我们读取文件内容: ?...1即使不手写fclose,在PHP脚本执行结束后,也会自动关闭文件 2但在一个长时间执行脚本中,如果不写关闭文件fclose(),在文件加锁情况下会造成操作阻塞,所以,写fclose是个好习惯

3.9K70

php面试笔记(7)-php基础知识-文件及目录处理考点

写入方式打开,清除文件内容,如果文件不存在则尝试创建之) "w+" (读写方式打开,清除文件内容,如果文件不存在则尝试创建之) "a" (写入方式打开,将文件指针指向文件末尾进行写入,如果文件不存在则尝试创建之...,如果文件已存在则返回 FALSE 和一个错误) "b" (以二进制方式打开) 2写入函数: fwrite(file,string,length) file:指定写入文件 string:指定写入内容...length:指定写入最大字节数(可选) fputs(file,string,length) fputs() 函数是 fwrite() 函数别名。...readfile() readfile() 函数读取一个文件,并写入到输出缓冲。 如果成功,该函数返回文件中读入字节数。如果失败,该函数返回 FALSE 并附带错误信息。...取得共享锁定(读取程序),将 lock 设为 LOCK_SH 取得独占锁定(写入程序),将 lock 设为 LOCK_EX 释放锁定(无论共享或独占),将 lock 设为 LOCK_UN 如果不希望

65221

跟我学习php文件和目录常用函数-下篇

r+ 读写方式打开,将文件指针指向文件头。 w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。...如果文件不存在则尝试创建之。 a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。...对于php文件流不会主动被释放掉,因此需要主动释放资源空间。...其实其他语言也类似 6> int fwrite ( resource $handle , string $string [, int $length ] ) 将$string内容写入$handle资源句柄中...$length, 写入字节长度 $handle = fopen('1.txt', 'w+'); $str = '我真聪明'; fwrite($handle, $str); 7> string fread

52510

简明PHP进阶【5-文件处理】

名家之声 所谓科学论辩,从总体上来说则是没有多大效果,更不用说论辩几乎总是各持己见这个事实。 ——弗洛伊德 在PHP中后端开发中,像经常接触到Excel文件导入导出,这就涉及到文件处理。...1、readfile()函数 该函数用于读入一个文件,将读入文件写入到输出缓冲,返回文件中读入字节数。如果出错返回false。...4 写入文件 想在文件写入数据,PHP中使用函数是 fwrite()函数,如下语法格式: int fwrite(resource handle,string string[,int length]...再去看下我们文本文件,已经被写入:尊称“圣雄甘地” ? 5 删除文件PHP中,删除文件使用函数是 ulink()函数。我们使用电脑都知道,文件删除,前提是文件不能是在运行状态中。...同理,在使用这个删除函数时,确保文件是关闭(fclose函数关闭文件)。成功删除返回true,否则返回false。 此函数需慎重使用,一经删除文件就无法恢复。 <?php ulink(".

99130

嵌入式Linux:文件IO和标准IO库

需要将要写入数据文件对应文件描述符传递给 write 函数。 buf:指定要写入数据缓冲区。 count:指定要写入字节数返回值:成功时返回写入字节数(0 表示未写入任何字节)。...buf:用于存储读取数据缓冲区。 count:需要读取字节数返回值:如果读取成功,返回读取到字节数。实际读取到字节数可能小于请求字节数,也可能为0,例如当文件已到达末尾时。...这样做可以提高代码可读性和可靠性,并确保在后续修改时代码行为符合预期。此外,释放不再需要文件描述符可以有效地管理有限系统资源。...返回值:调用成功时,fwrite() 函数返回实际成功写入文件数据项数目。如果发生错误,则返回值可能小于参数 nmemb(或者等于 0)。...fwrite() 函数返回成功写入数据项数目,如果返回值与 nmemb 不同,则表示写入出现了错误。

6700

PHP文件系统函数(三)

'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。...如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。...这和给 底层 open(2) 系统调用指定 O_EXCL 'x+' 创建并以读写方式打开,其他行为和 'x' 一样。 'c' 只打开文件进行写入。如果文件不存在,则创建该文件。...其实就是我们可以执行一段操作系统进程代码,然后获得它结果,这个流会以文件形式返回PHP 形成一个文件流句柄。...// id,name // 1,Zyblog // 2,硬核项目经理 fwrite() 用于向文件句柄中写入内容。fputs() 是 fwrite() 别名,它们两个是一个东西。

1.2K60

PHP文件读取和写入(一)

PHP是一种服务器端脚本语言,用于构建动态Web应用程序。在PHP中,您可以使用各种函数来读取和写入文件。一、读取文件PHP中最常用读取文件函数是file_get_contents()。...它将整个文件读取到一个字符串中,并返回该字符串。...如果您只需要读取文件一部分,可以使用fread()函数。这个函数需要两个参数:文件句柄和读取字节数。...然后,它将这些字节输出到屏幕上,并关闭文件句柄。二、写入文件PHP中最常用写入文件函数是file_put_contents()。它将一个字符串写入文件,并返回写入字节数。...写入文件。然后,它将输出写入字节数。如果您需要向文件中添加内容,而不是覆盖文件内容,则可以使用fopen()和fwrite()函数。这个函数需要两个参数:文件句柄和要写入字符串。

1.7K10

深入浅出MATLAB数据处理之文件读写

这些参数都很关键,其实主要涉及到跨平台操作问题,python或者其它编译软件处理文件现在matlab需要处理,那么就必须字节顺序、编译方式一致,不然自然得不到我们想要结果。...Fopen函数讲完了,现在讲讲fwrite函数 fwrite(fileID,A,precision,skip,machinefmt) %该命令还指定将字节或位写入文件顺序 fileID:要写入内容文件...A:待写入文件中内容 Skip:在写入每个值之前跳过skip指定字节或位数 precision :写入文本到文件具体方式 precision: ?...两个函数函数一个是不能正确换行,一个是不能正确写入字符串,看来网上专家分享心得时候讲不够详细,等到具体做参考时,总是不能正确使用,幸亏你们点开matlab爱好者公众号,遇到了过冷水给你们曝露问题,...回过头来自己自己说matlab编程很精通?一个半罐水去否定另一个半罐水,这是不对。假设他们说是对呢?万一我电脑有故障呢?过冷水又尝试了一下。 ? 看来网上专家说是对

70420

C语言读写文件

文件写入 1、字符写入:fputc(); //参数1:写入字符 //参数2:文件流 //作用:将单个字符写入文件中 //返回值:成功时,返回写入字符ascii码值,错误返回EOF(-1) int...\n"; fputs(name, file); fclose(file); return 0; } 3、数据块写入fwrite(); //参数1:获取数据地址 //参数2...:要写入内容字节数 //参数3:要写入size字节数据项个数 //参数4:目标文件指针 //返回值:返回实际写入数据块数目 //作用:向文件写入数据块,以二进制形式对文件进行操作,不局限于文本文件...//参数2:存储数据大小 //参数3:读取文件流 //返回值:成功则返回读取buf,失败则返回NULL,这是,buf中数据不确定 //作用:读取指定场长度字符串存到字符数组中。...//参数2:读取每个数据项字节数 //参数3:读取数据项个数 //参数4:读取文件流 //返回值:返回真实读取数据项count数,错误时返回0 //作用:一次读取文件中由若干个数据项组成数据块

3.3K30

C++里面的文件处理方法

3) 用“w”打开文件只能向该文件写入。若打开文件不存在,则以指定文件名建立该文件,若打开文件已经存在,则将该文件删去,重建一个新文件。...4) 若要向一个已存在文件追加新信息,只能用“a”方式打开文件。如果指定文件不存在则尝试创建该文件。 5) 在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。...:每个数据项字节数,单位是字节 count:读count个数据项,每个数据项size个字节. stream:输入流 返回值:返回真实读取项数,若大于count则意味着产生了错误。...fwrite()函数: fwrite() 是 C 语言标准库中一个文件处理函数,功能是向指定文件写入若干数据块,如成功执行则返回实际写入数据块数目。...:是一个指针,对fwrite来说,是获取数据地址; (2)size:要写入内容字节数; (3)count:进行写入size字节数据项个数; (4)stream:目标文件指针; (5)返回实际写入数据项个数

85910

【C语言】看了这篇文章,如果你还不会文件操作的话,我把这篇文章给吃了(doge)

当我们程序退出时候,我们在通讯录当中所输入数据就自然而然不存在了。当我们需要下次运行时候,数据又要重新输入。那么此时这就非常难受。...输出操作总是文件末尾写入数据,并展开它。重新定位操作(fseek, fsetpos,倒带)被忽略。如果文件不存在,则创建该文件。 "r+"读取/更新:打开一个文件进行更新(包括输入和输出)。...所有与流关联内部缓冲区都与流分离并刷新:任何未读输出缓冲区内容都被写入,任何未读输入缓冲区内容都被丢弃。 即使调用失败,作为参数传递流将不再与文件或其缓冲区相关联。 ...对于二进制流,这是文件开始字节数。 对于文本流,数值可能没有意义,但仍然可以使用fseek将位置恢复到相同位置(如果使用ungetc返回字符在被读取时仍然挂起,该行为是未定义)。...二进制文件读取结束判断,判断返回值是否小于实际当中个数。 fread判断返回值是否小于实际个数。 文件缓冲区 文件是指存储在外部存储介质上、由文件名标识一组相关信息集合。

76720

基于PHP常用文件函数和目录函数整理

参数:filename 文件路径。 返回值:返回文件大小字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级错误。 <?...,本函数将根据相应文件系统或磁盘分区返回所有的字节数。...'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。 'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。...'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。...'x' 创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

63330

CCPP输入输出函数汇总分析

size 是每个元素字节数。 count 是读取元素数量。 stream 是文件指针,指向读取文件。 fread() 函数返回实际读取元素数量。...实现:内存始址ptr-写N个对象-> 流(由fp所指) 格式化输入:文件-流->格式转换->内存变量中 fwrite()函数是C++中用于向文件写入二进制数据函数。...fwrite()函数返回写入元素数量。...使用fwrite()函数将数组写入文件,最后关闭文件。...:返回-1; 实现:文件(fd)->内存buf中 原因:管道、FIFO以及某些设备,特别是终端、网络和STREAMS设备有下列两种性质:一是,一次read操作所返回数据可能少于所要求数据,即使还没达到文件尾端也可能是这样

1.7K20

【C文件操作1】如何写入读取?fopen6种组合参数怎么用?

但,区别就在于第1部分r与w,一个是文件必须存在,一个是不存在则会先创建 疑问2:w与w+作用有区别?a与a+作用有区别?...,将1Byte作为1个数据读取,则读取个数是sizeof(buf) 读取成功返回实际写入数据个数(单位为Byte) fwrite fwrite()函数用于将内存区域中数据写入到本地文本 函数原型:...将1Byte作为1个数据写入,则写入个数是sizeof(buf) 成功写入返回实际写入数据个数(单位为Byte) fclose 写完数据后调用fclose()关闭流,不关闭流情况下,每次读或写数据后...读(fread)或写(fwrite)文件后,关闭(fclose)文件。 打开(fopen)文件时,特别注意打开参数指定。 带r参数打开文件时,该文件必须存在。...带w参数打开文件时,该文件会被先清空,若文件不存在会先创建。 带a参数打开文件时,写入内容将会在文件尾部添加,若文件不存在会先创建。 带b参数打开文件时,打开是二进制文件

1.7K50

c语言文件读写操作

当使用打开函数时,必须给出文件名、文件操作方式(读、写或读写),如果该文件不存在,就意味着建立(只对写文件而言,对读文件则出错),并将文件指针指向文件开头。...关闭文件函数fclose() 文件操作完成后,必须要用fclose()函数进行关闭,这是因为对打开文件进行写入时,若文件缓冲区空间未被写入内容填满,这些内容不会写到打开文件中去而丢失。...int read(int handle, void *buf, int count); read()函数从handle(文件描述字)相连文件中, 读取count个字节放到buf所指缓冲区中, 返回值为实际所读字节数...相连文件中, 返回值为实际写入字节数。...,buffer就是一个索引) size 是每次读取字节数 count 是读取次数 stream 是读取文件指针 size_t fwrite ( const void * ptr, size_t

1K10

Linux:基础IO(一.C语言文件接口与系统调用、默认打开文件流、详解文件描述符与dup2系统调用)

如果文件不存在,则返回 NULL。 “w”:只写模式 打开文件以供写入。如果文件存在,则会被截断(即文件内容会被清空);如果文件不存在,则会创建一个新文件。 如果文件打开成功,则返回指向文件指针。...文件必须存在,否则打开操作将失败。 如果文件打开成功,则返回指向文件指针。 “w+”:读写模式(文件不存在则创建) 打开文件以供读取和写入。...如果文件存在,则会被截断;如果文件不存在,则会创建一个新文件。 如果文件打开成功,则返回指向文件指针。 “a+”:读写模式(追加模式,文件不存在则创建) 打开文件以供读取和写入,不会截断文件。...buf 是一个指向要写入数据缓冲区指针。 count 是要写入数据字节数。 write() 函数返回实际写入字节数。在成功时,返回值通常等于 count,除非到达文件末尾或发生其他错误。...buf 是一个指向存储读取数据缓冲区指针。 count 是读取字节数

13310
领券