php gb2312怎么转换为utf8
程序员文章站
2022-04-02 12:53:45
...
php gb2312转换为utf8的方法:1、打开相应的PHP文件;2、检查原始编码;3、通过使用preg_replace和iconv函数将gb2312页面转换为utf8页面即可。
本文操作环境:Windows7系统、PHP7.1、Dell G3电脑。
php gb2312怎么转换为utf8?
PHP gb2312页面 转换为utf8页面
用到2个函数 preg_replace, iconv
$html = preg_replace('/charset=gb2312/', 'charset=UTF8', $html); // $enc = mb_detect_encoding($html); $html = iconv('gbk', 'utf-8', $html);
https://php.net/manual/en/function.iconv.php
https://www.php.net/manual/en/function.preg-replace.php
参考php官网的示例
Example #2 Using indexed arrays with preg_replace() <?php $string = 'The quick brown fox jumps over the lazy dog.'; $patterns = array(); $patterns[0] = '/quick/'; $patterns[1] = '/brown/'; $patterns[2] = '/fox/'; $replacements = array(); $replacements[2] = 'bear'; $replacements[1] = 'black'; $replacements[0] = 'slow'; echo preg_replace($patterns, $replacements, $string); ?> Example #1 iconv() example <?php $text = "This is the Euro symbol '€'."; echo 'Original : ', $text, PHP_EOL; echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL; echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL; ?>
* testurl.php
<?php /** * Created by PhpStorm. * User: mingzhanghui * Date: 8/30/2019 * Time: 09:38 */ function __autoload($className) { include dirname(__FILE__).'/lib/'.$className.'.php'; } header('Content-Type: text/html; charset=UTF8'); // http://47.93.27.106:8064/testurl.php?url=https://www.sk666.vip $url = $_GET['url']; try { $html = Curl::testURL($url); $html = preg_replace('/charset=gb2312/', 'charset=UTF8', $html); // $enc = mb_detect_encoding($html); $html = iconv('gbk', 'utf-8', $html); echo $html; } catch (Exception $e) { Response::fail($e->getMessage(), $e->getCode()); }
* Curl.php
<?php /** * Created by PhpStorm. * User: mingzhanghui * Date: 8/29/2019 * Time: 15:34 */ class Curl { /** * @param $map * @return string */ public static function buildQuery(/* array */ $map) { $a = []; array_walk($map, function($value, $name) use (&$a) { array_push($a, sprintf("%s=%s", urlencode($name), urlencode($value))); }); return implode('&', $a); } /** * https://www.ft12.com * @param $u * @return mixed * @throws Exception */ public static function shortURL($u) { $api = "http://api.ft12.com/api.php"; return self::get($api, [ 'url' => $u, 'apikey' => '******', // 发邮件至aiqing174@qq.com索取apikey ]); } public static function testURL($u) { $api = "http://qbview.url.cn/getResourceInfo"; return self::get($api, [ 'appid' => 31, 'url' => $u ]); } /** * @param $host string * @param $params array assoc * @return mixed * @throws Exception */ protected static function get($host, $params) { $ch = curl_init(); $headers = [ "Accept: application/json", "X-Requested-with: XMLHttpRequest", ]; $qs = self::buildQuery($params); $fullURL = sprintf("%s?%s", $host, $qs); curl_setopt_array($ch, [ CURLOPT_URL => $fullURL, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_HTTPHEADER => $headers, CURLOPT_CONNECTTIMEOUT => 5 ]); $data = curl_exec($ch); $errno = curl_errno($ch); if ($errno) { throw new Exception("%s\n", curl_error($ch), $errno); } curl_close($ch); return $data; } }
原网页内容如下:
<html><head> <meta http-equiv="Content-Language" content="zh-CN"> <meta http-equiv="content-type" content="text/html; charset=gb2312"> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta content="telephone=no" name="format-detection"> <link rel="stylesheet" type="text/css" href="http://rd.wechat.com/static/zh_CN/default/css/redirect_confirm.css?v=1375841702"> <title>͡ʾ</title> <style> .container { } .sectionContent { text-shadow:0 1px 0 #f5f5f5;font-size:18px; } .sectionPannel {} .firstP .lastP{ text-shadow:0 1px 0 #f5f5f5;} .lastP { font-size:14px; } a.normalLink { font-size:14px;text-decoration:none;color:#1587C1;font-weight:bold;text-shadow:0 1px 0 #f5f5f5; } .confirm{padding:20px 15px;} .confirm a.icon_info { display:block;border-radius:20px;background:#999;font-weight:bold;font-size:14px;color:#eee;text-shadow:0 1px 0 #333;border-top:1px solid #ddd;border-bottom:1px solid #fff;width:20px;height:20px;line-height:20px;margin:0 auto;text-decoration:none;padding:0;font-family:Georgia; } .confirm .greenBtn b{font-weight:400} .minorLink { margin-top: 20px;padding:10px;font-weight:normal;font-size:14px;text-shadow:0 1px 0 #f5f5f5;text-decoration:none;color:#737373;line-height:1.5;background:transparent url("http://rd.wechat.com/static/zh_CN/default/img/bg_line.png?v=") no-repeat top center; } .sectionPannel .sectionContent .url{max-height:100%;} .url_box{ margin: 5px; padding: 5px 0; border-top: 1px solid #B5B5B5; border-bottom: 1px solid #B5B5B5; box-shadow: inset 0 1px 0px #FEFEFE, 0 1px 0px #FEFEFE;} .url_box .url_wrp{margin: 0; max-height: 72px; overflow: hidden;} .icon_warn{ height:160px; background:url("http://rd.wechat.com/static/zh_CN/default/img/icon_warn.png?v=") no-repeat center; margin-bottom:20px; -webkit-background-size:160px; background-size:160px; } .icon_link{ height:100px; background:url("http://rd.wechat.com/static/zh_CN/default/img/icon_link.png?v=") no-repeat center; margin-bottom:20px; -webkit-background-size:100px; background-size:100px; } @media all and (-webkit-min-device-pixel-ratio: 1.5) { .icon_warn{ background-image:url("http://rd.wechat.com/static/zh_CN/default/img/icon_warn_1.5x.png?v="); -webkit-background-size:160px; background-size:160px; } .icon_link{ background-image:url("http://rd.wechat.com/static/zh_CN/default/img/icon_link_1.5x.png?v="); -webkit-background-size:160px; background-size:160px; } .minorLink{ background-image:url("http://rd.wechat.com/static/zh_CN/default/img/bg_line_1.5x.png?v="); -webkit-background-size:320px 6px; background-size:320px 6px; } } </style> </head> <body> <!-- Ԑɽ¸? 1 %mtt_original_url£¬֢ˇһ¸?§·ĎʵŔʼurl 2 %mtt_qbview_url£¬ѨҪ³ꈡ+תëµõrl£¬ԲĻט¶¨в+³ꈡ±늶 3 %mtt_proxy_url£¬ ǕͨOאתµŐ鈳¡£ --> <section class="container"> <p class="confirm" style="padding-top:0"> <!--alertIcon1 use for state1,alertIcon2 use for state2--> <p class="section icon_link "></p> <p class="section sectionPannel"> <p class="sectionContent" style="margin-bottom:20px;word-break: break-all"> <p class="url firstP" style="color:#737373;font-size:14px;"> ţ½«Ҫ·Ďʵ <p class="url_box"><p class="url_wrp" id="url">https://www.sk666.vip</p></p> <p style="color:red">´畚°²ȫ·萕£¬Ϊ±£֏źµİ²ȫ£¬ӑ°?9½ء£</p> </p> </p> </p> </p> </section>
推荐学习:《PHP视频教程》
以上就是php gb2312怎么转换为utf8的详细内容,更多请关注其它相关文章!
上一篇: 分享一则PHP定义函数代码_php技巧
下一篇: php简单分页类实现方法_php技巧