這篇文章主要講解了“php如何實(shí)現(xiàn)批量轉(zhuǎn)成utf-8”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“php如何實(shí)現(xiàn)批量轉(zhuǎn)成utf-8”吧!
成都創(chuàng)新互聯(lián)公司是一家專注于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),垣曲網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:垣曲等地區(qū)。垣曲做網(wǎng)站價(jià)格咨詢:18980820575
php實(shí)現(xiàn)批量轉(zhuǎn)成utf-8的方法:1、創(chuàng)建一個(gè)PHP示例文件;2、通過“define('ICONV', 'UTF-8');function eachFile(){...}”方法實(shí)現(xiàn)批量轉(zhuǎn)換即可。

本文操作環(huán)境:Windows7系統(tǒng)、PHP7.1版、DELL G3電腦
php怎么實(shí)現(xiàn)批量轉(zhuǎn)成utf-8?
PHP-文件批量轉(zhuǎn)換編碼格式-GB2312轉(zhuǎn)UTF-8等
代碼
<?php
define('THIS_FILE', __FILE__); // 此文件路徑,請(qǐng)勿修改,將跳過此文件
define('THIS_PATH', dirname(THIS_FILE)); // 當(dāng)前路徑,可修改
define('Cover', 'new'); // 是否直接覆蓋本文件(改為 true 不加單引號(hào),危險(xiǎn)),建議寫入其他地址(相對(duì)于當(dāng)前路徑)
define('DS', DIRECTORY_SEPARATOR); // Linux改為'/',Windows為'\\'
define('ICONV', 'UTF-8'); // 最終轉(zhuǎn)換編碼格式
function eachFile($path, $files = [])
{
if (Cover !== true && $path == THIS_PATH . DS . Cover) {
return $files;
}
if (preg_match("/[\x7f-\xff]/", $path)) {
$path = iconv('UTF-8', 'GBK', $path);
}
if (is_file($path)) {
$files[] = $path;
return $files;
}
$list = scandir($path);
foreach ($list as $k => $v) {
if ($v !== '.' && $v !== '..') {
$p = $path . DS . $v;
// 路徑轉(zhuǎn)碼GBK
if (preg_match("/[\x7f-\xff]/", $p)) {
$p = iconv('UTF-8', 'GBK', $p);
}
if (is_dir($p)) {
$files = eachFile($p, $files);
} else {
$files[] = $p;
}
}
}
return $files;
}
$files = eachFile(THIS_PATH);
foreach ($files as $k => $v) {
$ext = pathinfo($v, PATHINFO_EXTENSION);
if (in_array($ext, ['txt', 'php', 'css', 'js', 'htm', 'html'])) {
if ($v == THIS_FILE) continue;
// 獲取內(nèi)容并轉(zhuǎn)碼
$contents_before = file_get_contents($v);
$oldIconv = mb_detect_encoding($contents_before, array('ASCII', 'GB2312', 'GBK', 'UTF-8', 'BIG5'));
$contents_after = iconv($oldIconv, ICONV, $contents_before);
if (Cover !== true) {
// 判斷新文件夾是否存在
$newPath = str_replace(THIS_PATH, THIS_PATH . DS . Cover, $v);
if (!file_exists(dirname($newPath))) {
mkdir(dirname($newPath), 0755, true);
}
// 覆蓋寫入文件(不存在自動(dòng)創(chuàng)建)
file_put_contents($newPath, $contents_after);
} else {
file_put_contents($v, $contents_after);
}
// 輸出
echo "{$v} 已轉(zhuǎn)換<hr>";
} else {
$newPath = str_replace(THIS_PATH, THIS_PATH . DS . Cover, $v);
if (Cover !== true && !file_exists($newPath)) {
if (!file_exists(dirname($newPath))) {
mkdir(dirname($newPath), 0755, true);
}
copy($v, $newPath);
echo "{$v} 復(fù)制文件到新路徑 {$newPath}<hr>";
}
}
}功能
自定義文件夾
跳過本文件(同一文件夾)及新文件夾(多次轉(zhuǎn)碼)
文件格式限制
轉(zhuǎn)換文件編碼到新文件夾(推薦)或本文件
復(fù)制無(wú)需轉(zhuǎn)碼文件到新文件夾
注意
暫未在Linux上測(cè)試
只能轉(zhuǎn)碼文本文件
感謝各位的閱讀,以上就是“php如何實(shí)現(xiàn)批量轉(zhuǎn)成utf-8”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)php如何實(shí)現(xiàn)批量轉(zhuǎn)成utf-8這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
當(dāng)前名稱:php如何實(shí)現(xiàn)批量轉(zhuǎn)成utf-8
網(wǎng)頁(yè)URL:http://chinadenli.net/article48/gphcep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)站排名、虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站制作、定制開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)