天天看點

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?=?'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' => '******', // ????浠惰??email?protected]绱㈠??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" target="_blank" rel="external nofollow" >
<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">
<div class="confirm" style="padding-top:0">
<!--alertIcon1 use for state1,alertIcon2 use for state2-->
<div class="section
icon_link
"></div>
<div class="section sectionPannel">

<div class="sectionContent" style="margin-bottom:20px;word-break: break-all">
<div class="url firstP" style="color:#737373;font-size:14px;">
牛陸蘆要路?實
<div class="url_box"><p class="url_wrp" id="url">https://www.sk666.vip</p></div>
<div style="color:red">麓??擄虜全路??攏盧為鹵攏?藕碌陌虜全攏盧?擄?9陸亍攏</div>
</div>
</div>

</div>
</div>
</section>
           

?

?