导航:首页 > 编程语言 > phptxt中文

phptxt中文

发布时间:2023-08-31 10:48:11

‘壹’ php读取txt文本输出时乱码如何解决

$text = file_get_contents($filePath);
//$encodType = mb_detect_encoding($text);
define('UTF32_BIG_ENDIAN_BOM', chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define('UTF32_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define('UTF16_BIG_ENDIAN_BOM', chr(0xFE) . chr(0xFF));
define('UTF16_LITTLE_ENDIAN_BOM', chr(0xFF) . chr(0xFE));
define('UTF8_BOM', chr(0xEF) . chr(0xBB) . chr(0xBF));
$first2 = substr($text, 0, 2);
$first3 = substr($text, 0, 3);
$first4 = substr($text, 0, 3);
$encodType = "";
if ($first3 == UTF8_BOM)
$encodType = 'UTF-8 BOM';
else if ($first4 == UTF32_BIG_ENDIAN_BOM)
$encodType = 'UTF-32BE';
else if ($first4 == UTF32_LITTLE_ENDIAN_BOM)
$encodType = 'UTF-32LE';
else if ($first2 == UTF16_BIG_ENDIAN_BOM)
$encodType = 'UTF-16BE';
else if ($first2 == UTF16_LITTLE_ENDIAN_BOM)
$encodType = 'UTF-16LE';

//下面的判断主要还是判断ANSI编码的·
if ($encodType == '') {//即默认创建的txt文本-ANSI编码的
$content = iconv("GBK", "UTF-8", $text);
} else if ($encodType == 'UTF-8 BOM') {//本来就是UTF-8不用转换
$content = $text;
} else {//其他的格式都转化为UTF-8就可以了
$content = iconv($encodType, "UTF-8", $text);
}

‘贰’ PHP无法读取显示TXT中的某些汉字,并且编码转换的过程中会丢失一部分数据

iconv是很容易出错的,$str=iconv("gb2312","utf-8",$str);
最好是改成
$str=iconv("gb2312","utf-8//IGNORE",$str);
这个可以减少转换编码带来的错误。

‘叁’ php 怎么修改txt文本

PHP有两种方法读写文件,方法一、file、file_get_contents、file_put_contents三个函数整体读写文本,适合文本文件不太大的情况。两个函数的的典型应用是:

$text=file_get_contents('a.txt');//把文本文件的所有内容取到字符串变量$text里面

$arr=file('a.txt');//把文本文件的所有内容,取到数组$arr里面,$arr[0]就是第一行,以此类推

$arr[1]='abc';//或者通过其它途径修改变量值

$text=implode($arr);//把数组连接为字符串

file_put_contents('a.txt', $text);//把字符串变量的内容写入到文本文件里面。


方法二、使用fopen、fgets、fputs、fclose函数读写文件,可以应付特大文件的修改。文件的修改一般方法是新建立一个文件,把源文件全部扫描一遍,遇到需要的部分进行处理,最后删除源文件,更名新文件。例如下面的代码把a.txt里面的abc修改为def:

$fp1=fopen('a.txt','r');
$fp2=fopen('a.tmp','w');
while(!feof($fp1)){
$line=fgets($fp1);
$line=str_replace('abc','def',$line);
fputs($fp2,$line);
}
flcose($fp1);
fclose($fp2);
unlike('a.txt');
rename('a.tmp','a.txt');

‘肆’ 主要是这样的,我想用php读取txt文件里每一行的汉字 并实现16进制转码

题义是要将gbk编码先转换成utf8编码然后在转成urlecode。
写代码如下
<?php
$a=file('old.txt'); //旧文本
$f=fopen('new.txt','wt'); //新生成文本
foreach($a as $k=>$l){
$l=urlencode(iconv('gbk','utf-8',trim($l))); //cp936即gbk的早期版本
echo $l.'<br/>';
fwrite($f,$l."\n");
}
fclose($f);
=============
原文件内容:
汉字汉字
数字数字
网络网络

输出文件内容:
%E6%B1%89%E5%AD%97%E6%B1%89%E5%AD%97
%E6%95%B0%E5%AD%97%E6%95%B0%E5%AD%97
%E7%99%BE%E5%BA%A6%E7%99%BE%E5%BA%A6

‘伍’ PHP写入到文本文件乱码

php处理中文编码老是有问题,这是编码的问题,可以将txt文件另存为UTF-8的编码再处理;

参考如下:

functionfile_utf8($filepath){
$f_contents=file_get_contents($filepath);

$encoding=mb_detect_encoding($f_contents,array('GB2312','GBK','UTF-16','UCS-2','UTF-8','BIG5','ASCII'));

$content_u="";
$handle=fopen($filepath,"r");
if($handle){
while(!feof($handle)){
$buffer=fgets($handle);
if($encoding!=false){
if(mb_detect_encoding($buffer)!='UTF-8'){
$buffer=iconv($encoding,'UTF-8',$buffer);
}
}else{
$buffer=mb_convert_encoding($buffer,'UTF-8','Unicode');
}
$content_u.=$buffer;
}
fclose($handle);
return$info=array('status'=>1,'message'=>$content_u);
}else{
return$info=array('status'=>0,'message'=>'打开文件失败');
}
}
阅读全文

与phptxt中文相关的资料

热点内容
百度能解压rar 浏览:863
ping查询ip地址服务器 浏览:496
车辆抵押后没有解压能过户吗 浏览:149
无中文水果溯源码 浏览:989
服务器中roce是什么 浏览:368
我的世界命令方块辅助箱子指令 浏览:403
c源码调试 浏览:859
银行app如何加入支付保护中心 浏览:348
如何让qq和别的app解绑 浏览:409
贵阳哪里有华大单片机 浏览:755
ps4手柄怎么连接安卓 浏览:490
夫妻生活pdf 浏览:367
android的广播和服务 浏览:318
linux下载浏览器 浏览:109
荣耀30服务器地址 浏览:971
用什么框架写restful服务器 浏览:188
产品狗程序员项目 浏览:454
命令方块建家园 浏览:261
m3为什么连接不到服务器 浏览:825
代刷网服务器错误是什么意思 浏览:110