導航:首頁 > 編程語言 > 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中文相關的資料

熱點內容
程序員這個工作好嗎 瀏覽:898
agps定位伺服器地址 瀏覽:659
用水做的解壓玩具怎麼做 瀏覽:418
安卓411能下載什麼 瀏覽:304
小海龜logo命令 瀏覽:493
java製作界面 瀏覽:895
台達plc編程電纜製作 瀏覽:249
30多歲當程序員 瀏覽:442
怎樣把表格轉換成pdf 瀏覽:514
行列式分解演算法 瀏覽:290
mscoreedll是什麼文件夾修復 瀏覽:697
什麼app測臉型 瀏覽:43
cf手游刀戰演算法 瀏覽:318
北京壓縮米飯 瀏覽:554
施工員與程序員哪個好 瀏覽:207
vc與word編程 瀏覽:951
androidmenu文字顏色 瀏覽:983
安卓手機玩游戲怎麼會閃退 瀏覽:554
聲控解壓球要晾幾天才能晾乾呢 瀏覽:562
安卓手機拍照如何自動調整 瀏覽:627