首页 >后端开发 >PHP问题 >php gb2312怎么转换为utf8

php gb2312怎么转换为utf8

藏色散人
藏色散人原创
2021-09-19 15:00:202827浏览

php gb2312转换为utf8的方法:1、打开相应的PHP文件;2、检查原始编码;3、通过使用preg_replace和iconv函数将gb2312页面转换为utf8页面即可。

php 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 = &#39;The quick brown fox jumps over the lazy dog.&#39;;
$patterns = array();
$patterns[0] = &#39;/quick/&#39;;
$patterns[1] = &#39;/brown/&#39;;
$patterns[2] = &#39;/fox/&#39;;
$replacements = array();
$replacements[2] = &#39;bear&#39;;
$replacements[1] = &#39;black&#39;;
$replacements[0] = &#39;slow&#39;;
echo preg_replace($patterns, $replacements, $string);
?>
Example #1 
iconv() example
<?php
$text = "This is the Euro symbol &#39;€&#39;.";

echo &#39;Original : &#39;, $text, PHP_EOL;
echo &#39;TRANSLIT : &#39;, iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo &#39;IGNORE   : &#39;, iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo &#39;Plain    : &#39;, 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__).&#39;/lib/&#39;.$className.&#39;.php&#39;;
}

header(&#39;Content-Type: text/html; charset=UTF8&#39;);

// http://47.93.27.106:8064/testurl.php?url=https://www.sk666.vip
$url = $_GET[&#39;url&#39;];

try {
    $html = Curl::testURL($url);
    $html = preg_replace(&#39;/charset=gb2312/&#39;, &#39;charset=UTF8&#39;, $html);
    // $enc = mb_detect_encoding($html);
    $html = iconv(&#39;gbk&#39;, &#39;utf-8&#39;, $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(&#39;&&#39;, $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, [
            &#39;url&#39; => $u,
            &#39;apikey&#39; => &#39;******&#39;, // 发邮件至aiqing174@qq.com索取apikey
        ]);
    }

    public static function testURL($u) {
        $api = "http://qbview.url.cn/getResourceInfo";
        return self::get($api, [
            &#39;appid&#39; => 31,
            &#39;url&#39; => $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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn