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 相关文章推荐
在线增减.htpasswd内的用户
Oct 09 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
Nov 07 PHP
PHP 第一节 php简介
Apr 28 PHP
smarty表格换行实例
Dec 15 PHP
PHP实现适用于自定义的验证码类
Jun 15 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
Nov 05 PHP
CentOS 上搭建 PHP7 开发测试环境
Feb 26 PHP
yii框架redis结合php实现秒杀效果(实例代码)
Oct 26 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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
phpmyadmin操作流程
2006/10/09 PHP
PHP禁止页面缓存的代码
2011/10/23 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
jquery使用append(content)方法注意事项分享
2014/01/06 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
Bootstrap基本样式学习笔记之图片(6)
2016/12/07 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
[04:07]显微镜下的DOTA2第八期——英雄复活动作
2014/06/24 DOTA
详解Python3中的Sequence type的使用
2015/08/01 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
对python中的argv和argc使用详解
2018/12/15 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
带你彻底搞懂python操作mysql数据库(cursor游标讲解)
2020/01/06 Python
Python 实现进度条的六种方式
2021/01/06 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
美国高档帽子网上商店:Hats.com
2018/08/09 全球购物
What is the purpose of Void class? Void类的作用是什么?
2016/10/31 面试题
学生安全责任书
2014/04/15 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP