国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

2018 PHP 面試總結

William_Sang / 3819人閱讀

摘要:最近面試了不少公司,正好把記得的問題做個總結。抽象類的接口的區別,不在于編程實現,而在于程序設計模式的不同。一般來講,抽象用于不同的事物,而接口用于事物的行為。

最近面試了不少公司,正好把記得的問題做個總結。

本文 github 會持續更新

公眾號

搜索 蘇生不惑 或者掃二維碼關注,每周更新。

簡歷

關于簡歷怎么寫,知乎上有很多對應問題,可以自行搜索,這里推薦幾個簡歷相關的 repo

簡歷常用例句
程序員簡歷模板
在線簡歷

筆試題




寫一個email的正則
$mail = "test@sina.com";  //郵箱地址
$pattern = "/^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,})$/";
preg_match($pattern, $mail, $matches);
//驗證可以使用 filter_var($email, FILTER_VALIDATE_EMAIL)
關系比較

參考官網

echo (int)((0.1+0.7)*10);//7

看似有窮的小數, 在計算機的二進制表示里卻是無窮的 http://www.cnblogs.com/datang...
echo serialize(0.1+0.7); //d:0.79999999999999993;

熟悉的linux命令

ps cat tail top awk

javascript跨域如何實現

jsonp 和 cors

熟悉的5種設計模式及用單例模式建立一個數據庫連接

單例 工廠 策略 適配器 觀察者

link = mysql_connect($host, $username, $password);
        $this->query("SET NAMES "utf8"", $this->link);
        //echo mysql_errno($this->link) . ": " . mysql_error($link). "n";
        //var_dump($this->link);
        return $this->link;
    }
    private function __clone()
    {
    }
    public static function get_class_nmdb($host, $username, $password)
    {
        //$connector = new nmdb($host, $username, $password);
        //return $connector;

        if (FALSE == (self::$_instance instanceof self)) {
            self::$_instance = new self($host, $username, $password);
        }
        return self::$_instance;
    }
    // 連接數據表
    public function select_db($database)
    {
        $this->result = mysql_select_db($database);
        return $this->result;
    }
    // 執行SQL語句
    public function query($query)
    {
        return $this->result = mysql_query($query, $this->link);
    }
    // 將結果集保存為數組
    public function fetch_array($fetch_array)
    {
        return $this->result = mysql_fetch_array($fetch_array, MYSQL_ASSOC);
    }
    // 獲得記錄數目
    public function num_rows($query)
    {
        return $this->result = mysql_num_rows($query);
    }
    // 關閉數據庫連接
    public function close()
    {
        return $this->result = mysql_close($this->link);
    }
}
$connector = DBHelper::get_class_nmdb($host, $username, $password);
$connector -> select_db($database);
?>
冒泡排序 大數在前 小數在后
$arr=[5,2,8,1,9];
$len=count($arr);
for($k=1;$k<$len;$k++)
{
    for($j=0;$j<$len-$k;$j++){
        if($arr[$j]<$arr[$j+1]){
            list($arr[$j+1],$arr[$j])=[$arr[$j],$arr[$j+1]];
            
        }
    }
}
print_r($arr);
如何實現單點登錄

利用 jwt 實現 session 共享,具體使用 jwt 參考 http://blog.leapoahead.com/20...

出現性能瓶頸如何快速定位解決

服務器負載 慢日志 xhprof 慢sql

熟悉的 nosql 和 sql 有什么區別(優勢,劣勢)

Memcache,Redis 都是內存數據庫
redis是一個開源的支持多種數據類型的key=>value的存儲數據庫。支持字符串、列表、集合、有序集合、哈希五種類型
memcache 只支持簡單的key/value數據結構,不像Redis可以支持豐富的數據類型。
無法進行持久化,數據不能備份,只能用于緩存使用,且重啟后數據全部丟失

如何保證代碼質量

高質量代碼三要素:可讀性,可維護性,可變更性 代碼質量評價:低耦合,高內聚 https://segmentfault.com/a/11...

學習PHP的渠道 看過的PHP書,了解的PHP開源項目

php.net sf google
《Modern PHP》《PHP核心技術和最佳實踐》《PHP the right way》
laravel carbon queryphp等

mysql innodb 有哪些索引類型 分別在什么場景下使用

索引的本質還是提升查詢數據庫的速度,減少服務器I/O開銷
主鍵 唯一 普通 聯合

對一個鏈表順序反轉 實現PHP5中的 var_dump 函數
function mydump() {
        $args   = func_num_args();
        for($i = 0;$i < $args; $i ++) {
            $param = func_get_arg($i);
            switch(gettype($param)) {
                case "NULL" :
                    echo "NULL";
                    break;
                case "boolean" :
                    echo ($param ? "bool(true)" : "bool(false)");
                    break;
                case "integer" :
                    echo "int($param)";
                    break;
                case "double" :
                    echo "float($param)";
                    break;
                case "string" :
                    dumpString($param);
                    break;
                case "array" :
                    dumpArr($param);
                    break;
                case "object" :
                    dumpObj($param);
                    break;
                case "resource" :
                    echo "resource";
                    break;
                default :
                    echo "UNKNOWN TYPE";
                    break;
            }
        }
    }
 
 
function dumpString($param) {
    $str = sprintf("string(%d) %s",strlen($param),$param);
    echo $str;
}
 
function dumpArr($param) {
    $len = count($param);
    echo "array($len) {
";
    foreach($param as $key=>$val) {
        if(is_array($val)) {
            dumpArr($val);
        } else {
            echo sprintf("["%s"] => %s(%s)",$key,gettype($val),$val);
        }
    }
    echo "}
";
}
 
function dumpObj($param) {
    $className = get_class($param);
    $reflect = new ReflectionClass($param);
    $prop = $reflect->getDefaultProperties();
    echo sprintf("Object %s #1(%d) {
",$className,count($prop));
    foreach($prop as $key=>$val) {
        echo "["$key"] => ";
        mydump($val);
    }
    echo "}";
}
 
class MyClass
{
    protected $_name;
    function test()
    {
        echo "hello";
    }
}
 
$str    = "test";
mydump(new MyClass(),$str);
echo "
";
$arr2   = array(
    "1"     => "Ddaddad",
    "one"   => array("two" => "Dffffd" ),
    "three" => 1
);
mydump($arr2); 
mydump(1,true,null);
如何設計一個微博

用戶可以關注他人 可以發布微博 可以查看關注人的微博 可以評論微博

用戶表 關注表 微博表 評論表

獲取上周一和周日的日期

echo date("Y-m-d",strtotime("monday last week"));
echo date("Y-m-d", strtotime("-" . (6+date("w")) . " days"));
echo date("Y-m-d",strtotime("sunday last week"));

對數組實現去除空元素 排重 按值從大到小排序 重新建立數字索引

array_values(rsort(array_unique(array_filter($arr))))

對二維數組按照 title+pubscore 去重
function unique_by_key($arr, $key1,$key2) {
  $tmp_key = [];
  foreach ($arr as $key => $item) {
      if ( in_array($item[$key1].$item[$key2], $tmp_key) ) {
        unset($arr[$key]);
      } else {
        $tmp_key[] = $item[$key1].$item[$key2];
    }
  }
  return $arr;
}
//使用示例:
$arr = array(
  array("id" => 1, "title" => "a","pubscore"=>1),
  array("id" => 2, "title" => "a","pubscore"=>1),
  array("id" => 3, "title" => "b","pubscore"=>2),
  array("id" => 4, "title" => "c","pubscore"=>3),
  array("id" => 5, "title" => "d","pubscore"=>3),
);
print_r(unique_by_key($arr,"title","num"));
寫一個正則 匹配新聞標題不能為數字,純字母,不能包含 彩票/廣告/啟示 linux 壓縮 解壓縮命令

tar -cvf jpg.tar *.jpg
tar -xvf jpg.tar

linux下后臺執行 test.php 將結果輸出到test.log

php test.php & >test.log

寫一個shell命令 實現找出所有包含 spread的進程,殺死這些進程并記錄日志,日志包含殺死進程名稱和殺死進程的時間

ps -ef |grep spread |grep -v grep |awk "{print $2}"|xargs kill -9
kill -9 $(ps -ef | grep spread| grep -v grep | awk "{print $2}")

一個json 轉化輸出有層級的文本

參考 https://segmentfault.com/a/11...

排行榜統計 sql

訂單表有如下字段
id 自增id
user_id 購買者id
product_id 商品id
time 購買時間
price 訂單總價
找出銷量大于1000的商品,按銷量倒序 和 找出消費最多的10個用戶

select product_id,count(*) s from orders group by product_id order by s having s>1000;

select user_id,sum(price) s from orders group by user_id order by s desc limit 10;

列出你知道的魔術方法 ,并說明他們的用途

參考手冊 http://php.net/manual/zh/lang...

寫出你知道的http頭部屬性 注意大小寫 并說明用途

Accept 指定客戶端能夠接收的內容類型 Accept: text/plain, text/html
Accept-Charset 瀏覽器可以接受的字符編碼集。 Accept-Charset: iso-8859-5
Accept-Encoding 指定瀏覽器可以支持的web服務器返回內容壓縮編碼類型。 Accept-Encoding: compress, gzip
Accept-Language 瀏覽器可接受的語言 Accept-Language: en,zh
Accept-Ranges 可以請求網頁實體的一個或者多個子范圍字段 Accept-Ranges: bytes
Authorization HTTP授權的授權證書 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Cache-Control 指定請求和響應遵循的緩存機制 Cache-Control: no-cache
Connection 表示是否需要持久連接。(HTTP 1.1默認進行持久連接) Connection: close
Cookie HTTP請求發送時,會把保存在該請求域名下的所有cookie值一起發送給web服務器。 Cookie: $Version=1; Skin=new;
Content-Length 請求的內容長度 Content-Length: 348
Content-Type 請求的與實體對應的MIME信息 Content-Type: application/x-www-form-urlencoded
Date 請求發送的日期和時間 Date: Tue, 15 Nov 2010 08:12:31 GMT
Expect 請求的特定的服務器行為 Expect: 100-continue
From 發出請求的用戶的Email From: user@email.com
Host 指定請求的服務器的域名和端口號 Host: www.zcmhi.com
If-Match 只有請求內容與實體相匹配才有效 If-Match: “737060cd8c284d8af7ad3082f209582d”
If-Modified-Since 如果請求的部分在指定時間之后被修改則請求成功,未被修改則返回304代碼 If-Modified-Since: Sat, 29 Oct 2010 19:43:31 GMT
If-None-Match 如果內容未改變返回304代碼,參數為服務器先前發送的Etag,與服務器回應的Etag比較判斷是否改變 If-None-Match: “737060cd8c284d8af7ad3082f209582d”
If-Range 如果實體未改變,服務器發送客戶端丟失的部分,否則發送整個實體。參數也為Etag If-Range: “737060cd8c284d8af7ad3082f209582d”
If-Unmodified-Since 只在實體在指定時間之后未被修改才請求成功 If-Unmodified-Since: Sat, 29 Oct 2010 19:43:31 GMT
Max-Forwards 限制信息通過代理和網關傳送的時間 Max-Forwards: 10
Pragma 用來包含實現特定的指令 Pragma: no-cache
Proxy-Authorization 連接到代理的授權證書 Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Range 只請求實體的一部分,指定范圍 Range: bytes=500-999
Referer 先前網頁的地址,當前請求網頁緊隨其后,即來路 Referer: http://www.zcmhi.com/archives...
TE 客戶端愿意接受的傳輸編碼,并通知服務器接受接受尾加頭信息 TE: trailers,deflate;q=0.5
Upgrade 向服務器指定某種傳輸協議以便服務器進行轉換(如果支持) Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11
User-Agent User-Agent的內容包含發出請求的用戶信息 User-Agent: Mozilla/5.0 (Linux; X11)
Via 通知中間網關或代理服務器地址,通信協議 Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)
Warning 關于消息實體的警告信息 Warn: 199 Miscellaneous warning

有一個文本文件,內容為ip 每行一個ip 格式為

1.2.3.4
4.5.6.7
2.3.4.5
1.2.3.4
寫出 shell命令 統計 ip出現的次數 結果類似
1.2.3.4 2
4.5.6.7 1
2.3.4.5 1

awk "{arr[$1]++;}END{for(i in arr){print i , arr[i] }}" test.txt

__destruction() 和 __autoload()觸發時機

unset 和 加載一個為包含的文件

如何實現一個數組[1,2,3]連續復制3次變為[1,2,3,1,2,3,1,2,3]
$arr=[1,2,3];
print_r(f($arr,3));
function f($arr,$num){
    return array_filter(explode(",",str_repeat(implode(",",$arr).",",$num)));
}
抽象類和接口的區別,分別在什么場景使用

抽象類可以實現的功能,接口也可以實現。
抽象類的接口的區別,不在于編程實現,而在于程序設計模式的不同。
一般來講,抽象用于不同的事物,而接口用于事物的行為。
參考 https://segmentfault.com/a/11...

猴子選大王

一群猴子排成一圈,按1,2,...,n依次編號。然后從第1只開始數,數到第m只,把它踢出圈,從它后面再開始數,再數到第m只,在把它踢出去...,如此不停的進行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。要求編程模擬此過程,輸入m、n,輸出最后那個大王的編號

echo monkey(10,4);//5
function monkey($m,$n){
    $arr=range(1,$m);
    $i=0;
    while(count($arr)>1){
        if(($i+1)%$n==0){
            unset($arr[$i]);
        }else{
            $arr[]=$arr[$i];
            unset($arr[$i]);
        }
        $i++;
    }
    return $arr[$i];
}
寫一個快速排序
function quickSort($arr) {
    $len = count($arr);
    if($len <= 1) {
        return $arr;
    }

    $base = $min = $max = [];

    $base_item = $arr[0];

    for($i = 0; $i < $len ; $i++) {
        if($arr[$i] < $base_item) {
            $min[] = $arr[$i];
        }elseif($arr[$i] > $base_item) {
            $max[] = $arr[$i];
        }else {
            $base[] = $arr[$i];
        }
    }

    $min = quickSort($min);
    $max = quickSort($max);
    return array_merge($min,$base,$max);
}
實現一個發紅包功能,100元發給8人 實現斐波那契數列
function fib($n) {
    if($n <= 0) return 0;
    if ($n <= 2) return 1;
    return fib($n - 1) + fib($n - 2);
} 
 
function fib2($n) {
if ($n <= 2) return 1;
$arr = [0,1,1];
for ($i = 3; $i <= $n; $i++) {
    $arr[$i] = $arr[$i - 1] + $arr[$i - 2];
}
return $arr[$n];
} 
二分查找
function binSearch($arr,$search){
$height=count($arr)-1;
$low=0;
while($low<=$height){
$mid=floor(($low+$height)/2);//獲取中間數
if($arr[$mid]==$search){
return $mid;
}elseif($arr[$mid]<$search){//當中間值小于所查值時,則$mid左邊的值都小于$search,此時要將$mid賦值給$low
$low=$mid+1;
}elseif($arr[$mid]>$search){//中間值大于所查值,則$mid右邊的所有值都大于$search,此時要將$mid賦值給$height
$height=$mid-1;
}
}
return "查找失敗";
}
二維數組轉換成一維數組
$user = array(
     array("id" => 100, "username" => "a1"),
     array("id" => 101, "username" => "a2"),
     array("id" => 102, "username" => "a3"),
     array("id" => 103, "username" => "a4"),
     array("id" => 104, "username" => "a5"),
);
$result = array_reduce($user, function ($result, $value) {
    return array_merge($result, array_values($value));
}, array());
/*
Array
(
    [0] => 100
    [1] => a1
    [2] => 101
    [3] => a2
    [4] => 102
    [5] => a3
    [6] => 103
    [7] => a4
    [8] => 104
    [9] => a5
)
*/
$result = [];
array_walk_recursive($user, function($value) use (&$result) {
    array_push($result, $value);
});
$result = [];
array_map(function ($value) use (&$result) {
    $result = array_merge($result, array_values($value));
}, $user);
2次foreach 輸出什么
//參考https://segmentfault.com/q/1010000008279730
$arr = [1,2,3];
    foreach($arr as &$v) {
        //nothing todo.
    }
    foreach($arr as $v) {
        //nothing todo.
    }
    var_export($arr);
    //output:array(0=>1,1=>2,2=>2)
面試題 nginx 熱啟動

nginx -s reload

讀取1G大文件

使用游標或者yield生成器來獲取數據庫的數據 https://segmentfault.com/a/11...

http https 區別

HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,要比http協議安全。 參考 https://www.itcodemonkey.com/...

redis 持久化

aof rdb http://www.hoohack.me/2018/04...
https://juejin.im/entry/5b35a...

權限如何設計

user用戶表、role角色表、perm權限表、role-user用戶角色關聯表、role-perm角色權限關聯表

apache nginx 區別

https://juejin.im/entry/5b34b...
nginx從入門到實踐 https://juejin.im/post/5a2600...

數據庫鎖的了解

樂觀鎖(代碼處理)與悲觀鎖( select for update) http://www.hollischuang.com/a...

2038 時間問題
 //解決:DateTime 或者 使用64位操作系統

$str_time = "2100-10-02"; 
 function newStrToTime($str_time) { 
$result = strtotime($str_time);
if(empty($result)) { 
$date = new DateTime($str_time); 
$result = $date->format("U"); 
} 
return $result; 
} 
談談最近微信支付 xxe 漏洞

php 調用simplexml_load_string之前把外部引用實體關掉:
libxml_disable_entity_loader(true);
$data = json_decode(json_encode(simplexml_load_string($xml, "SimpleXMLElement", LIBXML_NOCDATA)), true);

寫個定時任務

*  *  *  *  *  command
分 時 日 月 周 命令
工具 https://crontab-generator.org/
https://crontab.guru/
https://tool.lu/crontab/
https://atool.vip/crontab

opcache了解

緩存字節碼

array_merge + 區別

參考

如何實現多繼承

trait的出現就是一種解決需要多繼承場景的方式。 使用場景是如果多個類都要用到同樣的屬性或者方法,這個時候使用Traits可以方便的給類增加這些屬性或方法,而不用每個類都去繼承一個類,如果說繼承類是豎向擴展一個類,那么Traits是橫向擴展一個類,從而實現代碼復用。

PHP中Trait詳解及其應用

PHP 多線程

https://www.cnblogs.com/kluan...
https://www.cnblogs.com/zhenb...

class Request extends Thread {
    public $url;
    public $response;
    public function __construct($url) {
        $this->url = $url;
    }
    public function run() {
        $this->response = file_get_contents($this->url);
    }
}
$ch = new Request("www.baidu.com");
$ch ->start();
php執行流程

瀏覽器輸入URL->Nginx(從配置文件中加載nginx的fast-cgi模塊)->php-fpm(fastcgi的進程管理器)
先到php-fpm的master進程(負責監聽端口,接收Nginx的請求,據子進程的狀態將請求分配給子進程去處理)->worker進程負責處理請求
worker 進程則一般有多個(具體數量根據實際需要配置),每個進程內部都嵌入了一個 PHP 解釋器,是 PHP 代碼真正執行的地方。
master 進程做的事情是 PHP環境初始化、事件監聽(重啟/重載、關閉、分發請求)、子進程狀態
https://youngperson.github.io...

如何優化 mysql

數據庫字段冗余,增添索引、優化sql、分庫分表 主從分離

常用 git 命令

git add git log git pull git push git remote git checkout

php7常用新特性

比如標量類型聲明、返回類型聲明

自動加載如何實現的

spl_autoload_register composer

用過哪些PHP擴展

curl mb

php 異步如何實現

curl_multi_exec

了解的微服務 redis 過期如何處理

惰性刪除與定期刪除

explain 關注哪些

type 字段 const、eq_reg、ref、range、index和ALL

對你最有挑戰的項目是怎樣的 laravel 優勢是什么

Laravel核心代碼學習

非技術問題

為什么從上家公司離職?
未來三年的職業規劃的怎樣的?
你有什么問的?

資源

PHP面試準備

關于面試/談Offer/程序員職場生涯等

少寫PHP "爛"代碼

PHP工程師面試題目

PHPer 面試指南

一個16年畢業生所經歷的php面試

找工作遇到的面試題目

大話編程

https://mp.weixin.qq.com/s/13...
strace幫助你調試PHP代碼

Resetful API 設計規范

Java 基礎知識、底層原理 面試

PHP基礎數據結構專題系列目錄地址

后端架構師技術圖譜

記一次面試,分享我整理的答案

PHP 面試知識點匯總

平時積累

PHP 代碼簡潔之道

PHP PSR 標準規范

https://laravel-china.org/doc...
PHP 開發知識結構

PHP多進程系列筆記

Redis從入門到實踐

淺談消息隊列及常見的消息中間件

《程序員練級攻略》推薦必讀書籍清單

redis開發設計規范及案例分析

MySQL運維:索引與查詢性能優化

從輸入URL到頁面展示到底發生了什么

數據結構與算法

PHP面試:說說你理解的二叉樹吧

初中級PHP面試基礎匯總

https://segmentfault.com/a/11...
php 經典排序算法(解析)

PHP面試之一:PHP基礎知識點

PHPer、Laravel 面試可能會遇到的問題及答案

PHPer 面試指南-擴展閱讀資源整理

3年PHPer的面試總結

PHP 無限級分類最佳實踐

數據庫面試題(開發者必看)

10個值得深思的PHP面試問題

php 高并發

SegmentFault 技術周刊 Vol.31 - 碼農也要學算法

SegmentFault 技術周刊 Vol.6 - 面試那些事兒

筆試面試

PHP常見算法-面試篇

PHPer 面試指南-擴展閱讀資源整理

shell在手分析服務器日志不愁

PHP 試題

2018年最新PHP面試題

你“聽”過這些經典排序算法嗎

面試必備之樂觀鎖與悲觀鎖

InterviewMap 是一份打造最好的面試圖譜

給準備秋招面試的同學們

程序猿成長計劃

laravel學習筆記

PHP招人困境

算法系列

PHP技能樹

程序員如何寫好簡歷

程序員簡歷應該怎么寫?

那些年,我們踩過的PHP的坑

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40012.html

相關文章

  • 2018 PHP 面試總結

    摘要:最近面試了不少公司,正好把記得的問題做個總結。抽象類的接口的區別,不在于編程實現,而在于程序設計模式的不同。一般來講,抽象用于不同的事物,而接口用于事物的行為。 最近面試了不少公司,正好把記得的問題做個總結。 本文 github 會持續更新 公眾號 搜索 蘇生不惑 或者掃二維碼關注,每周更新。 showImg(https://segmentfault.com/img/bVbsYyM?w...

    lunaticf 評論0 收藏0
  • 2018年騰訊前端一面總結(面向2019屆學生)

    摘要:前言騰訊一面,相比阿里一面來說,騰訊一面先給打電話預定時間,這也給了我們這些面試者去準備的時間。其實閉包也就是指有權訪問另一個函數作用域的函數而已。常用的創建閉包的方法就是在函數內部創建另一個函數。 前言 騰訊一面,相比阿里一面來說,騰訊一面先給打電話預定時間,這也給了我們這些面試者去準備的時間。但是也正是因為這種確定性,也有在等待電話的時候的心情的忐忑。 背景 我是一名大三學生,大一...

    Kosmos 評論0 收藏0
  • 阿里巴巴2018秋招總結

    摘要:作為一個前端人,阿里巴巴,是我最想去的國內公司,我看重的也不是他薪水如何,完全在于他的技術,這一點可以說明一切。阿里是個十分重視基礎的公司,和浮躁的前端大環境形成鮮明的對比。我不是第一次投阿里巴巴,所以心態一開始還是挺平和的。 這是去年8月份秋招的面試,五面都面完了,給大家貢獻干貨吧。我沒寫問題的答案,有什么問題可以留言區問我。 一面 電話面(1小時)電話面問題不多,但是十分考驗對相關...

    AWang 評論0 收藏0

發表評論

0條評論

William_Sang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<