php使用fopen创建utf8编码文件的方法


Posted in PHP onOctober 31, 2014

本文实例讲述了php使用fopen创建utf8编码文件的方法。分享给大家供大家参考。具体实现方法如下:

一般来说,如果我们直接使用fopen创建会发现文件编码都不是uft-8的了,那么如果要创建uft8文件我们需要进行一些技术处理。具体步骤如下:

使用PHP创建编码格式为utf-8文件的方法:

第一步:新建一个txt文件,打开,文件->另存为xxx.php,并将编码改为UTF-8,保存。

第二部:在php文件中加入如下代码:

<?php

$filename=rand(100,999).".txt";//定义好要创建的文件名称和文件格式(按需要自己改)

$str = "PHP学习网[3water.com]";//待写入新建文件中的内容

if (!$head=fopen($filename, "w+")) {//以读写的方式打开文件,将文件指针指向文件头并将文件大小截为零,如果文件不存在就自动创建

die("尝试打开文件[".$filename."]失败!请检查是否拥有足够的权限!创建过程终止!");

}

if (fwrite($head,$str)==false) {//执行写入文件

fclose($head);

die("写入内容失败!请检查是否拥有足够的权限!写入过程终止!");

}

echo "成功创建UTF-8格式文件[".$filename."],并向该文件中写入了内容:".$str;

fclose($head);

?>

使用这种方法创建UTF-8编码文件的关键点:

① 保证PHP代码文件本身的编码格式为UTF-8
② php代码文件的编码格式是什么则创建出来的文件编码也是什么
③ 显示出现乱码的问题

控制页面显示的因素主要有三个:

1.HTML代码控制:标准HTML网页文件中的head标签内部包含了这一句代码<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />,代码中charset=utf-8这句就是告诉浏览器要以utf-8格式将网页中的内容显示出来。

2.PHP代码控制:如果在PHP文件的开头加上header("content-Type: text/html; charset=utf-8");这句代码,也是为了告诉浏览器要以utf-8格式将网页中的内容显示出来。(注:这句代码之前不能有类似echo的输出)

3.文件物理存储属性控制:用记事本打开一个文件,文件->另存为,你在“编码”中所看到的就是当前文件的真正的编码

补充一个fopen例子

<?php

$f=fopen("test.txt", "wb");

$text=utf8_encode("a!");

 

//先用函数utf8_encode将所需写入的数据变成UTF编码格式。

 

$text="\xEF\xBB\xBF".$text;

 

//"\xEF\xBB\xBF",这串字符不可缺少,生成的文件将成为UTF-8格式,否则依然是ANSI格式。

 

fputs($f, $text);

 

//写入。

 

fclose($f);

?>

这样创建出的文件编码格式确实是utf-8,但是放在文件中的汉字出现了乱码的现象,经过一番调试,代码如下:

<?php

$ctxtsubmit="好呀";

$f=fopen("../".$file, "wb");

    //$text=utf8_encode($ctxtsubmit);

    //先用函数utf8_encode将所需写入的数据变成UTF编码格式。

    $text="\xEF\xBB\xBF".$ctxtsubmit;

     //"\xEF\xBB\xBF",这串字符不可缺少,生成的文件将成为UTF-8格式,否则依然是ANSI格式。

    fputs($f, $text);

    //写入。

     fclose($f); 

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP函数解决SQL injection
Dec 09 PHP
php 异常处理实现代码
Mar 10 PHP
PHP MemCached高级缓存配置图文教程
Aug 05 PHP
PHP session会话的安全性分析
Sep 08 PHP
PHP使用CURL获取302跳转后的地址实例
May 04 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
php使用Jpgraph创建3D饼形图效果示例
Feb 15 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 #PHP
PHP页面实现定时跳转的方法
Oct 31 #PHP
Thinkphp多文件上传实现方法
Oct 31 #PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 #PHP
Laravel 4 初级教程之视图、命名空间、路由
Oct 30 #PHP
Laravel 4 初级教程之安装及入门
Oct 30 #PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
Oct 30 #PHP
You might like
isset和empty的区别
2007/01/15 PHP
Base64在线编码解码实现代码 演示与下载
2011/01/08 PHP
php限制文件下载速度的代码
2015/10/20 PHP
javascript之Partial Application学习
2013/01/10 Javascript
AngularJS初始化过程分析(引导程序)
2014/12/06 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
JavaScript实现仿网易通行证表单验证
2015/05/25 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
js编写选项卡效果
2017/05/23 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
浅谈Python 对象内存占用
2016/07/15 Python
Python中super函数的用法
2017/11/17 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
如何快速理解python的垃圾回收机制
2020/09/01 Python
详解Python中import机制
2020/09/11 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
员工自我鉴定范文
2013/10/06 职场文书
商务英语求职自荐信范文
2013/12/24 职场文书
捐书寄语赠言
2014/01/18 职场文书
交通安全寄语大全
2014/04/08 职场文书
岗位明星事迹材料
2014/05/18 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
商场周年庆活动方案
2014/08/19 职场文书
2015年班长个人工作总结
2015/04/03 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书