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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
十天学会php之第十天
Oct 09 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
php中AES加密解密的例子小结
Feb 18 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
php数组中包含中文的排序方法
Jun 03 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
PHP中trait使用方法详细介绍
May 21 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
YII框架常用技巧总结
Apr 27 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
php 智能404跳转代码,适合换域名没改变目录的网站
2010/06/04 PHP
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
php简单复制文件的方法
2016/05/09 PHP
PHP中的表达式简述
2016/05/29 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
php注册审核重点解析(数据访问)
2017/05/23 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
深入理解python中的select模块
2017/04/23 Python
python 连接sqlite及简单操作
2017/06/30 Python
详解使用python绘制混淆矩阵(confusion_matrix)
2019/07/14 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
TensorFlow内存管理bfc算法实例
2020/02/03 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
优秀员工自荐信范文
2013/10/05 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
安全生产工作汇报
2014/10/28 职场文书
高中班主任培训心得体会
2016/01/07 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
利用Python实现模拟登录知乎
2022/05/25 Python