> 백엔드 개발 > PHP 문제 > PHP gb2312를 utf8로 변환하는 방법

PHP gb2312를 utf8로 변환하는 방법

藏色散人
풀어 주다: 2023-03-12 18:52:01
원래의
2839명이 탐색했습니다.

php gb2312를 utf8로 변환하는 방법: 1. 해당 PHP 파일을 엽니다. 2. 원본 인코딩을 확인합니다. 3. preg_replace 및 iconv 함수를 사용하여 gb2312 페이지를 utf8 페이지로 변환합니다.

PHP gb2312를 utf8로 변환하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP7.1, Dell G3 컴퓨터.

php gb2312를 utf8로 변환하는 방법은 무엇입니까?

PHP gb2312 페이지가 utf8 페이지로 변환됩니다

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿