77、寫幾個魔術方法并說明作用?
-
__call()當呼叫不存在的方法時會自動呼叫的方法
-
__autoload()在實體化一個尚未被定義的類是會自動呼叫次方法來加載類檔案
-
__set()當給未定義的變數賦值時會自動呼叫的方法
-
__get()當獲取未定義變數的值時會自動呼叫的方法
-
__construct()構造方法,實體化類時自動呼叫的方法
-
__destroy()銷毀物件時自動呼叫的方法
-
__unset()當對一個未定義變數呼叫unset()時自動呼叫的方法
-
__isset()當對一個未定義變數呼叫isset()方法時自動呼叫的方法
-
__clone()克隆一個物件
-
__tostring()當輸出一個物件時自動呼叫的方法
點擊加入我的企鵝群
78、$ _REQUEST、$ _POST、$ _GET、$ _COOKIE、$ _SESSION、$_FILES的意思是什么?
它們都是PHP預定義變數
-
$_REQUEST用來獲取post或get方式提交的值
-
$_POST用來獲取post方式提交的值
-
$_GET用來獲取get方式提交的值
-
$_COOKIE用來獲取cookie存盤的值
-
$_SESSION用來獲取session存盤的值
-
$_FILES用來獲取上傳檔案表單的值
79、陣列中下標最好是什么型別的,為什么?
陣列的下標最好是數字型別的,數字型別的處理速度快,
80、++i和i++哪一個效率高,為什么?
++i效率比i++的效率更高,因為++i少了一個回傳i的程序,
81、magic_quotes_gpc()、magic_quotes_runtime()的意思是什么?
Magic_quotes_gpc()是php組態檔中的,如果設定為on則會自動POST,GET,COOKIE中的字串進行轉義,在‘之前加\
Magic_quotes_runtime()是php中的函式,如果引數為true則會資料庫中取出來的單引號、雙引號、反斜線自動加上反斜杠進行轉義,
82、框架中什么是單一入口和多入口,單一入口的優缺點?
(1)多入口就是通過訪問不同的檔案來完成用戶請求,
單一入口指web程式所有的請求都指向一個腳本檔案的,
(2)單一入口更容易控制權限,方便對http請求可以進行安全性檢查,
缺點:URL看起來不那么美觀,特別是對搜索引擎來說不友好,
83、你對Memcach的理解,優點有哪些?
Memcache是一種快取技術,在一定的時間內將動態網頁經過決議之后保存到檔案,下次訪問時動態網頁就直接呼叫這個檔案,而不必在重新訪問資料庫,使用memcache做快取的好處是:提高網站的訪問速度,減輕高并發時服務器的壓力,
Memcache的優點:穩定、配置簡單、多機分布式存盤、速度快,
84、對關系型資料庫而言,索引是相當重要的概念,請回答有關索引幾個問題:
a) 索引的目的是什么?
-
快速訪問資料表中的特定資訊,提高檢索速度
-
創建唯一性索引,保證資料庫表中每一行資料的唯一性
-
加速表和表之間的連接
-
使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間
b) 索引對資料庫系統的負面影響是什么?
負面影響:創建索引和維護索引需要耗費時間,這個時間隨著資料量的增加而增加;索引需要占用物理空間,不光是表需要占用資料空間,每個索引也需要占用物理空間;當對表進行增、刪、改的時候索引也要動態維護,這樣就降低了資料的維護速度,
c) 為資料表建立索引的原則有哪些?
-
在最頻繁使用的、用以縮小查詢范圍的欄位上建立索引
-
在平頻繁使用的、需要排序的欄位上建立索引
d) 什么情況下不宜建立索引?
-
對于查詢中很少涉及的列或者重復值比較多的列,不宜建立索引
-
對于一些特殊的資料型別,不宜建立索引,比如文本欄位(text),值范圍較少的知道等,
84、web應用中,資料庫的讀取頻率遠高于寫入頻率, 如何優化MySQL而應對此種情景?
使用memcache快取技術,將動態資料快取到檔案,訪問動態頁面時直接呼叫快取檔案,而不必重新訪問資料庫,這樣就減少了查詢資料庫的次數,
如果網站的訪問量很大,可以把資料庫讀寫服務器分開,使用多臺服務器去處理資料庫查詢,使用較少的服務器去處理資料庫的寫入和修改,
85、include與require的區別?
-
include()在執行檔案時每次都要進行讀取和評估
-
require()檔案只處理一次(實際上檔案內容替換了require()陳述句)
-
require()通常放在PHP腳本程式的最前面
-
include()的使用和require()一樣,一般放在流程控制的處理區段中,PHP腳本檔案讀到include()陳述句時,才將它包含的檔案讀進來,這種方式,可以把程式執行時的流程簡單化
-
require()和include()陳述句是語言結構,不是真正的函式,可以像PHP的其他語言結構一樣
-
include_once()和require_once()陳述句也是在腳本執行期間包括并運行指定檔案,與include()require()唯一的區別是如果檔案中的代碼已經被包括了,則不會再次包括.
-
require()包含檔案失敗,停止執行,給出錯誤(致命的)
-
include()常用于動態包含.
-
通常是自動加載的檔案,即使加載出錯,整個程式還是繼續執行
-
一個頁面宣告,另一個頁面呼叫
-
包函檔案失敗,繼續向下執行,回傳一條警告
86、PHP字串中單引號與雙引號的區別?
單引號不能解釋變數,而雙引號可以解釋變數,
單引號不能轉義字符,在雙引號中可以轉義字符,
87、php中,模板引擎的目的是什么? 你用過哪些模板引擎?
使用模板引擎的目的是使程式的邏輯代碼和html界面代碼分離開,是程式的結構更清晰,
使用過的模板引擎:Smarty、ThinkPHP的ThinkTemplate
88、指出以下代碼片段中的SQL注入漏洞以及解決方法(magic_quotes_gpc = off)
mysql_query(“select id,title from content where catid=’{$_GET[catid]}’ and title like ’%$_GET[keywords]%’”, $link);
注入漏洞主要存在用戶提交的資料上,這里的注入漏洞主要是 G E T [ c a t i d ] 和 _GET[catid]和 G?ET[catid]和_GET[keyword]
解決注入漏洞:
$_GET[catid]=intval($_GET[catid]);
$sql=”select id,title from content where catid=’{$_GET[catid]}’ and title like ’%$_GET[keywords]%”;
$sql=addslashes($sql);
Mysql_query($sql);
89、分別指出php.ini中 magic_quotes_gpc, magic_quotes_runtime兩項引數的作用.
Magic_quotes_gpc的作用是在POST、GET、COOKIE資料上使用addslashes()自動轉義,
Magic_quotes_runtime引數的作用是設定狀態,當狀態為0時則關閉自動轉義,設定為1則自動轉義,將資料庫中取出來的單引號、雙引號、反斜線這些字符加上反斜杠轉義,
90、寫出以下php代碼的運行結果:
function foo($i) {
$i++;
echo $i ;
}
function bar(&$i) {
}
$i = 10 ;
echo $i++ , ++$i; 輸出:10,12
foo($i); 輸出:13
bar($i); 輸出:無輸出
91、如何快速下載一個遠程http服務器上的圖片檔案到本地?
$file=”";
$fp=fopen($file,’rb’);
$img=fread($fp,10000);
$dir=”./”;
$local=fopen($dir.’/’.basename($file),’w');
Fwrite($local,$img);
92、什么是時間戳? 如何取得當前時間戳?
時間戳是從1970年1月1日 00:00:00到指定日期的秒數,
獲取當前時間戳:time()
93、了解XSS攻擊嗎? 如何防止 ?
XSS是跨站腳本攻擊,首先是利用跨站腳本漏洞以一個特權模式去執行攻擊者構造的腳本,然后利用不安全的Activex控制元件執行惡意的行為,
使用htmlspecialchars()函式對提交的內容進行過濾,使字串里面的特殊符號物體化,
94、SQL注入漏洞產生的原因 ? 如何防止?
SQL注入產生的原因:程式開發程序中不注意規范書寫sql陳述句和對特殊字符進行過濾,導致客戶端可以通過全域變數POST和GET提交一些sql陳述句正常執行,
防止SQL注入:
-
開啟組態檔中的magic_quotes_gpc和magic_quotes_runtime設定
-
執行sql陳述句時使用addslashes進行sql陳述句轉換
-
Sql陳述句書寫盡量不要省略小引號和單引號
-
過濾掉sql陳述句中的一些關鍵字:update、insert、delete、select、*
-
提高資料庫表和欄位的命名技巧,對一些重要的欄位根據程式的特點命名,取不易被猜到的,
-
Php組態檔中設定register_globals為off,關閉全域變數注冊
-
控制錯誤資訊,不要再瀏覽器上輸出錯誤資訊,將錯誤資訊寫到日志檔案中,
95、一個位元組占多少bit ? 一個IPv4地址占幾個位元組? 一個IPv6地址呢?
一個位元組占8bit,一個IPV4占用4位元組,一個IPV6占用16位元組,
96、M ADSL寬帶連接, 理想情況下, 最大下載速度是多少KB/s ?
256KB/s
97、請寫出一個正則運算式,用于匹配一個HTML檔案中標記中的圖片地址
$url=””;
//
98、Fatal error: Call to undefined method ge_user() in /website/index.php on line 39
呼叫了未定義的方法ge_user(),檢查程式中有沒有定義此方法
99、Fatal error: Class ’client’ not found in /website/index.php on line 173
類client沒有找到,檢查檔案中有沒有client類,或者有沒有包含client類檔案
Warning: Cannot modify header information - headers already sent by (output started at /website/index.php:1) in /website/index.php on line 3
提示檔案前面有輸出,檢查是否有輸出,或者編碼
100、Warning:session_start(): open(/website/tmp/sess_47e067121facf033785f9a1cb16d243b, O_RDWR) failed: No such file or directory (2) in /website/index.php on line 10
沒有找到檔案或目錄,檢查檔案是否存在
點關注,不迷路
好了各位,以上就是這篇文章的全部內容了,能看到這里的人呀,都是人才,之前說過,PHP方面的技術點很多,也是因為太多了,實在是寫不過來,寫過來了大家也不會看的太多,所以我這里把它整理成了PDF和檔案,如果有需要的可以
點擊進入暗號: PHP+「平臺」


更多學習內容可以訪問【對標大廠】精品PHP架構師教程目錄大全,只要你能看完保證薪資上升一個臺階(持續更新)
以上內容希望幫助到大家,很多PHPer在進階的時候總會遇到一些問題和瓶頸,業務代碼寫多了沒有方向感,不知道該從那里入手去提升,對此我整理了一些資料,包括但不限于:分布式架構、高可擴展、高性能、高并發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階干貨需要的可以免費分享給大家,需要的可以加入我的 PHP技術交流群
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/164596.html
標籤:其他
下一篇:html進階:1、【Meta 標簽的 http-equiv 屬性使用指南】content-Type(顯示字符集的設定)、Refresh(重繪)2、用 iframe 解決跨域請求問題
