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环境搭建最新方法
Sep 05 PHP
实现分十页分向前十页向后十页的处理
Oct 09 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
php通过baihui网API实现读取word文档并展示
Jun 22 PHP
php自定义类fsocket模拟post或get请求的方法
Jul 31 PHP
Yii2.0高级框架数据库增删改查的一些操作
Nov 16 PHP
Zend Framework教程之模型Model用法简单实例
Mar 04 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
Apr 10 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
Jul 12 PHP
PHP7生产环境队列Beanstalkd用法详解
May 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
YB217、YB235、YB400浅听
2021/03/02 无线电
php 301转向实现代码
2008/09/18 PHP
php curl选项列表(超详细)
2013/07/01 PHP
ajax返回值中有回车换行、空格的解决方法分享
2013/10/24 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
jquery在IE、FF浏览器的差别详细探讨
2013/04/28 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
angular将html代码输出为内容的实例
2018/09/30 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
学习python (1)
2006/10/31 Python
python 正则表达式 概述及常用字符
2009/05/04 Python
python socket 超时设置 errno 10054
2014/07/01 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python实现Windows电脑定时关机
2018/06/20 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
违反工作纪律检讨书
2014/02/15 职场文书
公司会计主管岗位责任制
2014/03/01 职场文书
采购求职信
2014/03/17 职场文书
计算机专业求职信
2014/06/02 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
如何解决springcloud feign 首次调用100%失败的问题
2021/06/23 Java/Android
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs