php程序員面試題目和答案總結_第1頁
php程序員面試題目和答案總結_第2頁
php程序員面試題目和答案總結_第3頁
php程序員面試題目和答案總結_第4頁
php程序員面試題目和答案總結_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——php程序員面試題目和答案總結php程序員面試題目和答案總結

PHP是一種用來制作動態網頁的服務器端腳本語言,你通過PHP和HTML創造頁面。今天我整理了php程序員面試題目和答案供大家參考,一起來看看吧!

php程序員面試題目和答案(精選篇1)

1、nginx的工作原理

Nginx由內核和模塊組成,其中,內核的設計分外微小和干脆,完成的工作也分外簡樸,僅僅

通過查找配置文件將客戶端苦求映射到一個locationblock(location是Nginx配置中

的一個指令,用于URL匹配),而在這個location中所配置的每個指令將會啟動不同的模塊

去完成相應的工作。

2、PHP-FPM

Master主進程/Worker多進程模式。

啟動Master,通過FastCGI協議監聽來自Nginx傳輸的苦求。

每個Worker進程只對應一個連接,用于執行完整的PHP代碼。

PHP代碼執行完畢,占用的內存會全部銷毀,下一次苦求需要重新再舉行初始化等各種繁瑣的操作。

只用于HTTPServer。

Swoole

Master主進程(由多個Reactor線程組成)/Worker多進程(或多線程)模式

啟動Master,初始化PHP代碼,由Reactor監聽Socket句柄的事情變化。

Reactor主線程負責子多線程的均衡問題,Manager進程管理Worker多進程,包括TaskWorker的進程。

每個Worker采納來自Reactor的苦求,只需要執行回調函數片面的PHP代碼。

只在Master啟動時執行一遍PHP初始化代碼,Master進入監聽狀態,并不會終止進程。

不僅可以用于HTTPServer,還可以建立TCP連接、WebSocket連接。

3、為什么PHP7比PHP5性能提升了?

(1)、變量存儲字節減小,裁減內存占用,提升變量操作速度

(2)、改善數組布局,數組元素和hash映射表被調配在同一塊內存里,降低了內存占用、提升了cpu緩存命中率

(3)、提升了函數的調用機制,通過優化參數傳遞的環節,裁減了一些指令,提高執行效率

3、mysql主從的同步原理是什么?

當主數據服務器master舉行寫入數據或者更新數據操作的時候,數據更改會記錄在二進制日志(binarylogfile)中,主服務器master與從服務器slave舉行通訊的是I/O線程,它將修改的數據異步復制寫入到slave服務器的中繼日志(relaylogfile)中,從服務器slave與中繼日志之間通信使用SQL線程,SQL線程可以異步從中繼日志中讀取數據后再寫入到自己的數據庫中,就完成了數據的主從同步功能。

主要:二進制日志

細節表達:

為什么有主從延遲:

1.Master負載過高、

Slave負載過高、

2.網絡延遲、

機器性能太低、

MySQL配置不合理

3.怎么預防主從延遲:

緩存

4.訂單為什么要拆單?假設拆單依據是什么?

由于考慮一個用戶添置多個商品,多個商品屬于多個商家。多個商家要發貨,并且分錢。所以拆單

1.按照店鋪拆分

2.按照商品類型拆分

假設拆單表設計如何設計?

5什么處境下使用不了索引

1.復合索引:不遵循最左原那么

2.模糊查詢“%k”

3.假設mysql認為全表掃面要比使用索引快,那么不使用索引。

4.有規律運算符////2+2

5.假設條件中有or,有條件沒有使用索引,即使其中有條件帶索引也不會使用,換言之,就是要求使用的全體字段,都務必單獨使用時能使用索引。

6.假設列類型是字符串,那么確定要在條件中使用引號引用起來,否那么不使用索引。

6.laravel和tp的識別

1.Laravel在表單提交的時候會有csrf跨站苦求偽造驗證,Tp5那么沒有

2.Laravel在苦求需要先定義路由,Tp5可以不定義,有pathinfo路由即可訪問

3.Laravel在苦求之前會有中間件,Tp5會有前置操作和鉤子

7.http和https識別

https數據加密===非對稱加密

http明文傳輸

8.接口安好如何處理

1.訪問

防刷

存儲ip地址

accessToken

2.數據

一個傳輸過程中

httphttps

數據本身加密

對稱加密

有一個秘鑰

非對稱加密

公鑰

私鑰

9.redis和memcache識別

1.數據類型

redis:字符串,hash,隊列,有序集合,集合memcache:字符串

2.存儲方式

memcache:內存存儲不支持耐久化redis:支持耐久化

3.內存管理

redis:直接納理空間memcache:將內存空間切割成大小不同的空間,按照存儲數據的大小進程存儲

10.如何理解雪崩,緩存穿透

緩存穿透:在緩存里面有數據,但是查詢不到。所以讀取數據庫。

緩存穿透

緩存穿透是指查詢一個確定不存在的數據,由于緩存是不命中時被動寫的,并且出于容錯考慮,假設從存儲層查不到數據那么不寫入緩存,這將導致這個不存在的數據每次苦求都要到存儲層去查詢,失去了緩存的意義。在流量大時,可能DB就掛掉了,要是有人利用不存在的key頻繁攻擊我們的應用,這就是漏洞。

解決方案

有好多種方法可以有效地解決緩存穿透問題,最常見的那么是采用布隆過濾器,將全體可能存在的數據哈希到一個足夠大的bitmap中,一個確定不存在的數據會被這個bitmap攔截掉,從而制止了對底層存儲系統的查詢壓力。另外也有一個更為簡樸粗暴的方法(我們采用的就是這種),假設一個查詢返回的數據為空(不管是數據不存在,還是系統故障),我們依舊把這個空結果舉行緩存,但它的過期時間會很短,最長不超過五分鐘。

緩存雪崩

緩存雪崩是指在我們設置緩存時采用了一致的過期時間,導致緩存在某一時刻同時失效,苦求全部轉發到DB,DB瞬時壓力過重雪崩。

解決方案

緩存失效時的雪崩效應對底層系統的沖擊分外可怕。大多數系統設計者考慮用加鎖或者隊列的方式保證緩存的單線程(進程)寫,從而制止失效時大量的并發苦求落畢竟層存儲系統上。這里共享一個簡樸方案就時講緩存失效時間分散開,譬如我們可以在原有的失效時間根基上增加一個隨機值,譬如1-5分鐘隨機,這樣每一個緩存的過期時間的重復率就會降低,就很難引發集體失效的事情。

11.反向代理主調度器掛掉如何處理

熱備開啟

12.http和websocket的識別

WebSocket是HTML5中的協議,支持耐久連接;而Http協議不支持耐久連接

13、¥this與$self的識別

1.self可以訪問本類中的靜態屬性和靜態方法,可以訪問父類中的靜態屬性和靜態方法。用self時,可以不用實例化的

1.this可以調用本類中的方法和屬性,也可以調用父類中的可以調的方法和屬性,可以說除過靜態和const常量,根本上其他都可以使用this聯絡

14、訂單合單怎么合單

我們在訂單處理工作中,假設一個交易單(父訂單)下的多個子訂單,客戶要求發往不同的地址,那么就要把這個“交易單”對應生成多個“物流單”,這叫“訂單拆分”。

假設客戶不是通過購物車,而是分兩次買下兩個商品,那么展現兩個“交易單”,且寄往同一個地址,我們對兩個交易單只需要產生一個“物流單”,這叫“訂單合并”。

15、支付同步和異步

同步是給客戶看的,異步是服務器處理苦求。

同步是客戶充值或者支付告成了,給客戶一個提示,報告客戶這個操作的結果是告成還是失敗。起到的作用就是提示客戶這個操作的結果是告成還是失敗。

異步是服務器在后端處理支付告成或失敗時的業務規律。同步通知:用于用戶在支付寶頁面付款完畢后自動跳轉;

異步通知:其實是處理業務規律,譬如說修改客戶的支付狀態;

同步得到通知后跳轉到自己的網址,然后根據參數報告客戶支付結果,然后在更新狀態。

異步其實就是一個雙保險,假設同步沒有跳轉你的網址,可能是關機了,或者網速慢,無法完成數據更新的狀態,這時候異步就發揮作用了,先判斷是否支付,支付了就不必更新了,只返回支付寶success就行了,不然會一向異步通知

16、接口安好

接口安好一般分三片面:調用方身份令牌token(防CSRF攻擊)、參數簽名sign(防篡改)、時效性timestamp(防Dos攻擊)

17、消息隊列

我們可以把消息隊列比作是一個存放消息的容器,當我們需要使用消息的時候可以取出消息供自己使用。消息隊列是分布式系統中重要的組件,使用消息隊列主要是為了通過異步處理提高系統性能和削峰、降低系統耦合性。

18、http協議

HTTP協議是構建在TCP/IP協議之上的,是TCP/IP協議的一個子集,所以要理解HTTP協議,有必要先了解下TCP/IP協議相關的學識

TCP/IP協議族是由一個四層協議組成的系統,這四層分別為:應用層、傳輸層、網絡層和數據鏈路層

19、TCP協議三次握手的描述如下:

第一次握手:客戶端發送帶有SYN標志的連接苦求報文段,然后進入SYN_SEND狀態,等待服務端確實認。

其次次握手:服務端接收到客戶端的SYN報文段后,需要發送ACK信息對這個SYN報文段舉行確認。同時,還要發送自己的SYN苦求信息。服務端會將上述的信息放到一個報文段(SYN+ACK報文段)中,一并發送給客戶端,此時服務端將會進入SYN_RECV狀態。

第三次握手:客戶端接收到服務端的SYN+ACK報文段后,會想服務端發送ACK確認報文段,這個報文段發送完畢后,客戶端和服務端都進入ESTABLISHED狀態,完成TCP三次握手。

發送的都是SYN,驗證ACK,再次回返

釋放的SYNACK的報文段

20、短連接

長鏈接,指在一個連接上可以連續發送多個數據包,在連接保持期間,假設沒有數據包發送,需要雙方發鏈路檢測包。

管線化機制須通過永久連接(persistentconnection)完成,僅HTTP/1.1支持此技術(HTTP/1.0不支持),管線化不需要等待上一次苦求得到響應就可以舉行下一次苦求。實現并行發送苦求。

21、苦求行:

方法:

GET獲取資源

POST向服務器端發送數據,傳輸實體主體

PUT傳輸文件

HEAD獲取報文首部

DELETE刪除文件

OPTIONS詢問支持的方法

TRACE追蹤路徑

協議/版本號

URL

苦求頭:

通用首部(GeneralHeader)

苦求首部(RequestHeader)

響應首部(ResponseHeader)

實體首部(EntityHeaderFields)

響應行

HTTP/1.1)說明HTTP版本為1.1版本,狀態碼為200,狀態消息為(ok)

響應頭

Date:生成響應的日期和時間;

Content-Type:指定了MIME類型的HTML(text/html),編碼類型是ISO-8859-1

響應體

22.laravel生命周期

1.加載public下index.php

2.通過composer加載bootstrap/app.php獲取laravel實例

3.創造一個服務容器

4.加載kernel.php文件

5.加載服務供給者

6.通過request分發苦求,經過路由,中間件,找到操縱器的方法

7.處理苦求,返回結果

23.laravel框架契約

Laravel中的契約是指框架供給的一系列定義核心服務的接口

契約作用::松耦合和簡樸。

簡樸

當全體Laravel服務都統一在簡樸接口中定義,很輕易判斷給定服務供給的功能。契約可以充當框架特性的簡明文檔。

此外,基于簡樸接口,代碼也更輕易理解和維護。在一個浩瀚而繁雜的類中,與其追蹤哪些方法是有效的,不如轉向簡樸、明凈的接口

松耦合

由于我們基于一個來自包的概括的緩存類,假設包的API變了,那么相應的,我們的代碼務必做修改。

24、分區類型

分區類型:

range分區:基于屬于一個給定連續區間的列值,把多行調配給分區

list分區:類似于按range分區,識別在于List分區是基于列值匹配一個離散值集合中的某個值來舉行選擇

hash分區:基于用戶定義的表達式的返回值來舉行選擇的分區,該表達式使用將要插入到表中的這些行的列值舉行計算。這個函數可以包含MySql中有效的、產生非負整數值得表達式

key分區:類似于按HASH分區,識別在于Key分區只支持計算一列或多列,且MySql服務器供給其自身的哈希函數。務必有一列或多列包含整數

RANGE分區(分區是按照依次定義的):

基于屬于一個給定連續區間的列值,把多行調配給分區

這些區間要連續且不能重疊,使用valueslessthan操作符來舉行定義

LIST分區(增刪變得輕易)

類似于按RANGE分區,識別在于List分區是基于列值匹配一個離散集合中的某個值來舉行選擇

List分區通過使用partitionbylist(expr)來實現,其中expr是某列值、并返回一個整數值的表達式,然后通過valusin(value_list)的方式來定義每個分區,其中value_list是一個通過逗號分隔的整數列表

HASH分區

基于用戶定義的表達式的返回值來舉行選擇的分區,該表達式使用將要插入到表中的這些列值舉行計算。這個函數可以包含MySQL中有效的、產生非負整數值的任何表達式。

要使用HASH分區來分割一個表,要在CREATETABLE語句上添加一個“PARTITIONBYHASH(expr)”子句,其中“expr”是一個返回一個整數的表達式。它可以僅僅是字段類型為MySQL整型的一列的名字。此外,你很可能需要在后面再添加一個“PARTITIONSnum”子句,其中num是一個非負的整數,它表示表將要被分割成分區的數量

KEY分區

類似于按HASH分區,識別在于KEY分區只支持計算一列或多列,且MySQL服務器供給其自身的哈希函數。務必有一列或多列包含整數值

25、線程和進程各自有什么識別和優劣呢?

進程是資源調配的最小單位,線程是程序執行的最小單位。

進程有自己的獨立地址空間,每啟動一個進程,系統就會為它調配地址空間,建立數據表來維護代碼段、堆棧段和數據段,這種操作分外昂貴。而線程是共享進程中的數據的,使用一致的地址空間,因此CPU切換一個線程的花費遠比進程要小好多,同時創造一個線程的開銷也比進程要小好多。

線程之間的通信更便當,同一進程下的線程共享全局變量、靜態變量等數據,而進程之間的通信需要以通信的方式(IPC)舉行。不過如何處理好同步與互斥是編寫多線程程序的難點。

但是多進程程序更剛強,多線程程序只要有一個線程死掉,整個進程也死掉了,而一個進程死掉并不會對另外一個進程造成影響,由于進程有自己獨立的地址空間。

26、接口調用這8種苦求方式:

1.GET:向特定資源發送苦求,查詢數據

2.POST:向指定的資源,提交數據舉行處理苦求,有可能創造或修改已有數據

3.HEAD:和Get苦求相一致,只不過不會返回響應體,這一方法可以再不必傳輸整個響應內容的處境下,就可以獲取包含在響應小消息頭中的元信息。(用于獲取報頭)

4.OPTIONS:返回服務器對特定資源所支持的http的苦求,可以用來向Web服務器發送苦求來測試服務器的功能性

5.PUT:向指定資源位置上傳最新的內容

6.DELETE:苦求服務器刪除Request-URI所標識的資源

7.TRACE:回顯服務器收到的苦求,主要用于測試或診斷

8.CONNECT:HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。

27.laravel容器

Laravel服務容器是一個用于管理類憑借和執行憑借注入的強大工具。憑借注入聽上去很花哨,其實質是通過構造函數或者某些處境下通過set方法將類憑借注入到類中。

28.laravelORM和查詢構建器關系?

所謂查詢構建器,就是操作數據庫的方法攏在一起組成個一個類!

在laravel的ORM中,一個類對應一張表,而一個模型可以當做一個Illuminate\Database\Eloquent\Builder的構建器使用

29.優化一個網站

頁面的ob緩存,動靜分開

架構上,反向代理,容災,熱備

緩存數據

數據庫的索引,主從

30、上線流程?

1.把應用從負載均衡器上摘除(markdown)

留神:利用haproxy舉行markdown,通過管理頁面把服務標記成下線的狀態,但是要留神這個時候正在處理的苦求是還在處理的只是新的苦求進不來,這一步是分外重要的,涉及到服務的可用性問題;并且markdown之后是不能馬上中斷服務的,一般要等10~20秒的時間給未處理完的苦求預留時間

還要留神假設你使用手動markdown是很煩人的,假設機器有好多臺你還要一臺臺去markdown上線好之后還要去markup只要是人舉行的工作都是會有錯誤產生的,所以可以使用基于內容的狀態檢測頁面,,當檢測到某字段或內容時把服務markup,當服務器數量較多時可使用自動化運維工具例如ansible也分外簡樸

2.stopservice

3.deploywar自動部署

4.changenewlink就是第三步中說到的內容

一般在工作中是用links軟鏈接,譬如這里有war2.1war2.2war2.3war2.4,我要上線的時候只需要改一下軟鏈接(這樣就不必去修改配置文件了)并且使用軟鏈接還有一個好處是當你察覺新上線的包有問題時可以快速回滾,當然還有其它方法可以實現,但是一般大公司譬如騰訊,百度,阿里都采用這種上線方式

5.startservice

6.markup

31、php垃圾回收機制?

1.php引用計數根本學識點

每個php變量存在一個叫zval的變量容器中。一個zval變量容器,除了包含變量的類型和值,還包括兩個字節的額外信息。第一個是is_ref,是個bool值,用來標識這個變量是否是屬于引用集合(referenceset)。通過這個字節,php引擎才能把普遍變量和引用變量區分開來,由于php允許用戶通過使用來使用自定義引用,zval變量容器中還有一個內部引用計數機制,來優化內存使用。其次個額外字節是refcount,用以表示指向這個zval變量容器的變量(也稱符號即symbol)個數。全體的符號存在一個符號表中,其中每個符號都有作用域(scope),那些主腳本(譬如:通過欣賞器苦求的的腳本)和每個函數或者方法也都有作用域

2.php的內存管理機制

https://./myJuly/p/10002397.html:轉載

3.php中垃圾是如何定義的?

判斷是否為垃圾,主要看有沒有變量名指向變量容器zval,假設沒有那么認為是垃圾,需要釋放

4.老版本php中如何產生內存泄漏?

產生內存泄漏主要真兇:環形引用。

5.5.3版本以后php是如何處理垃圾內存的?

1.假設一個zval的refcount增加,那么此zval還在使用,不屬于垃圾

2.假設一個zval的refcount裁減到0,那么zval可以被釋放掉,不屬于垃圾

3.假設一個zval的refcount裁減之后大于0,那么此zval還不能被釋放,此zval可能成為一個垃圾

來個白話文版:就是對此zval中的每個元素舉行一次refcount減1操作,操作完成之后,假設zval的refcount=0,那么這個zval就是一個垃圾

6.涉及到垃圾回收的學識點

gc_enable():開啟GC

gc_disable():關閉GC

gc_collect_cycles():在節點緩沖區未滿的處境下強制執行垃圾分析算法

mysql默認編碼?

拉丁編碼

32、什么是索引籠罩?

假設一個索引包含(或籠罩)全體需要查詢的字段的值,稱為‘籠罩索引’。即只需掃描索引而無須回表。

只掃描索引而無需回表的優點:

1.索引條目通常遠小于數據行大小,只需要讀取索引,那么mysql會極大地裁減數據訪問量。

2.由于索引是按照列值依次存儲的,所以對于IO密集的范圍查找會比隨機從磁盤讀取每一行數據的IO少好多。

3.一些存儲引擎如myisam在內存中只緩存索引,數據那么憑借于操作系統來緩存,因此要訪問數據需要一次系統調用

4.innodb的聚簇索引,籠罩索引對innodb表更加有用。(innodb的二級索引在葉子節點中保存了行的主鍵值,所以假設二級主鍵能夠籠罩查詢,那么可以制止對主鍵索引的二次查詢)

籠罩索引務必要存儲索引列的值,而哈希索引、空間索引和全文索引不存儲索引列的值,所以mysql只能用B-tree索引做籠罩索引。

索引的數據布局?

索引的數據布局:B-、B+、R-、散列

laravel框架門面?

1.購物車商品價格變化?

購物車儲存一個商品id,商品其他屬性數據庫讀取

監聽服務器端保存價格的數據庫。如何價格發生變化,在啟動客戶端時,對價格根據服務器的數據庫數據舉行刷新就可以了

33.事務的操作?

34.事務的隔離級別,幻讀,臟讀如何出來的.

1.臟讀:

臟讀就是指當一個事務正在訪問數據,并且對數據舉行了修改,而這種修改還沒有提交到數據庫中,這時,另外一個事務也訪問這個數據,然后使用了這個數據。

3.幻讀:

是指當事務不是獨立執行時發生的一種現象,例如第一個事務對一個表中的數據舉行了修改,這種修改涉及到表中的全部數據行。同時,其次個事務也修改這個表中的數據,這種修改是向表中插入一行新數據。那么,以后就會發生操作第一個事務的用戶察覺表中還有沒有修改的數據行,就好象

發生了幻覺一樣。

6.事務特性哪些

7.索引種類

35、解析PHP全過程

用戶苦求-》PHP處理-》zend轉化成中間嗎(c編寫)-opcache-操作系統-》轉成匯編-計算器識別-》ob緩存-》nginx-》協議-》客戶端

php程序員面試題目和答案(精選篇2)

PHP常見的運行模式有2種,分別是php-fpm和php-cli。當PHP選擇運行在php-fpm模式下,全體的變量都是頁面級的,無論是全局變量還是類的靜態成員,都會在頁面執行完畢后被清空。運行在php-cli模式下可以實現程序常駐內存,各種變量和數據庫連接都能長久保存在內存實現資源復用,性能可以得到很大的提升,php-cli雖然開發對比繁雜,但是能夠獲取更高的性能,對開發者的要求對比高需要對比高的開發水平,對比常用的模式是結合swoole組件編寫cli框架,各種變量能保存在跨進程的高性能共享內存Table,可以開發出支持熱啟動的php-cli穩當各類應用系統。

php-fpm在PHP5.3.3版本成為了官方正式組件(2022-07-22),它供給了穩定穩當的進程管理服務,進程缺乏時候可以智能擴展數量,閑置時候可以自動回收銷毀多余的進程,同時它對程序的容錯才能很強大運行分外穩定,可以應付企業級的開發需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互聯網協議下舉行的用戶的輸入輸出,頁面級生命周期各種資源用完即釋放,不存在內存泄漏的問題。php-fpm也供給有一些常駐內存的技術支持,例如PHP7.4引入的opcache.preload也能實現局部的PHP類和函數的常駐內存,不過這個方法不夠生動,和服務器配置捆綁的太死了。

php-cli由于能實現各類資源的常駐內存,所以可以資源復用,更高效完成多進程編程和異步編程,可以開發出負載才能更高的應用系統。但是相對php-fpm的簡樸編程開發,開發者要留神好多的事項和需要做好多附加的操縱器開發,否那么就無法實現期望中的高性能。

首先開發者需要去實現穩當的進程管理服務,保證系統進程遇到各類錯誤退出運行后能夠自動創造新的進程,只有這樣才能保證后續的服務苦求有足夠空閑進程可調配。每個業務代碼段都要做奇怪處理,讓進程遇到非致命錯誤時候不會退出,由于進程重啟意味程序和各類資源需要再次加載,這個過程性能消耗不小,所以只有進程穩定運行了常駐內存才有意義。

其次由于常駐內存,編寫的新的程序務必重啟服務才能生效,這一點習慣了fpm模式的開發者會感到對比目生。另外開發者需要手工釋放內存,否那么系統長時間運行后會展現內存泄露。同時在cli模式下,我們不能像fpm里直接用$_SERVER、$_POST、$_GET、$_COOKI和$_FILES舉行編程工作,需要自己去解析各種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論