1. 程式人生 > >一些總結

一些總結

誤報 ransac 冗余 接口 傳值 date pda 建立索引 ssi

1.本地IP$_SERVER[‘REMOTE_ADDR‘] 服務器端IP$_SERVER[‘HTTP_HOST‘]

2.對於大流量的網站,您采用什麽樣的方法來解決訪問量問題?
確認服務器硬件是否支持當前流量,用nginx作為服務器實現負載均衡,數據庫讀寫分離,搭建主從、主主服務器,優化數據表、優化查詢語句,程序功能規則、防止外部盜鏈、控制大文件的下載

3.require和include的區別,為避免多次包含同一文件,可用(?)語句代替它們
require是無條件包含,如果在一個流程內加入require,無論引入成功與否都會先執行require
include有返回值,require 沒有
包含文件不存在時,require會返回一個致命的錯誤,而include會繼續執行
require_once include_once

4.如何修改session的生命周期。
session_set_cookie_params()

5.http狀態碼。
200:請求成功。
301:頁面已永久重定向
303:查看其它地址
304:所請求的資源未修改
403:服務器已拒絕請求
404:服務器無法找到頁面
500:服務器內部錯誤,無法完成請求。

6.php中傳值和傳引用的區別。
按值傳遞:函數範圍內任何改變在函數外部都會被忽略。
按引用傳遞:函數範圍內任何改變在函數外部也能反映。
按值傳遞時,必須復制值,在值的長度較長時,會影響效率。按引用傳遞時,不需要復制值,對於性能提高有好處。

7.寫一個函數,統計文件夾下所有文件的大小。
答:
function dirSize($path){

//2.打開目錄
$resource = opendir($path);

//定義一個統計大小的變量
$count = 0;

//3.讀取目錄
while($file = readdir($resource)){

//過濾特殊目錄
if($file=="." || $file==".."){
continue;
}

//拼接完整的文件路徑
$filename = rtrim($path,"/")."/".$file;

//判斷是不是一個文件
if(is_file($filename)){
$count+=filesize($filename);
}

//判斷是不是一個目錄
if(is_dir($filename)){
$count += dirSize($filename);
}
}

//4.關閉目錄
closedir($resource);

//返回統計目錄的大小
return $count;
}

8.燒一根不均勻的繩,從頭燒到尾總共需要1個小時。現在有若幹條材質相同的繩子,問如何用燒繩的方法來計時一個小時十五分鐘呢?

先用2根繩子,其中1根一頭點火,另1根兩頭點火,當第2根燒完的時候(即半小時),把第1根的另一頭也點火,則當第1根燒完的時候,時間為45分鐘;再另外用第3根繩子兩頭同時點火,燒完為30分鐘,加起來為1小時15分鐘.

9.8個鐵球,中間有一個是空心的,請問用天平稱最少幾次稱出?那18個呢?

把8個鐵球編號為1到8.
在天平兩邊個放上3個.1到6號,如果相等 那麽再把7、8號放上,即可
如果1到6號不相等.1.2.3號或是4.5.6號 把1.2號放上,即可 ,如果是4.5.6號照做即可.
所以8個鐵球只用2次稱.
18個鐵球,也按號1到18號
先拿出17.18號
一邊各放8個鐵球.如果1到8號和9到16號相等,那17.18稱一次即可.只需兩次
如果不相等 責排除17.18 在1到8號 或是9到16號中 余下就按照上面的8個做法來做.
則需要三次.

10.什麽是面向對象?主要特征是什麽?
面向對象是程序的一種設計方式,它利於提高程序的重用性,使程序結構更加清晰。
主要特征:封裝、繼承、多態

11.date_default_timezone_set();設置默認時區

12.開啟php錯誤報告的方法。
display_errors = On

13.
function myfunc($argument)
{
echo $argument + 10;
}

$variable = 10;

echo "myfunc($variable)=".myfunc($variable);

結果為:20myfunc(10)=

14. php開發接口

目錄結構:App 項目目錄
Config 配置目錄
Core 核心目錄

15.php的閉包。
閉包是引用了自由變量的函數,這個被應用的自由變量將和這個函數一同存在,即使離開了創建它的環境也一樣,所以閉包也可認為是有函數和與其相關引用組合而成的實體。
在一些語言中,在函數內定義另一個函數的時候,如果內部函數引用到外部函數的變量,則可能產生閉包。

16.數據庫優化。
  選取合適的字段:長度盡可能小、數字>時間>枚舉>字符串,盡量不要使用null類型。

  數據庫分庫分表。

  數據庫讀寫分離,搭建主從主主服務器

  中文分詞 scws

  三範式標準:原子性、無冗余性、唯一性
  使用JOIN連接代替子查詢
  使用UNION來代替手動創建的臨時表
  多個語句後面跟一個UNION
  使用事務處理
    $pdo = new PDO(‘mysql:host=localhost;dbname=test;charset=utf8;‘, ‘root‘, ‘‘);
    $pdo -> beginTransaction();
    $num1 = $pdo->exec();
    if (!num1){$pdo->rollback();}
    $pdo->commit();
  鎖定表
    LOCK TABLE inventory WRITE SELECT Quantity FROM inventory WHERE Item=‘book‘;
    UPDATE inventory SET Quantity=11 WHERE Item=‘book‘;UNLOCKTABLES
  使用外鍵
  使用索引
  優化查詢語句
    首先,最好是在相同類型的字段間進行比較的操作
    其次,在建有索引的字段上盡量不要使用函數進行操作
    最後,避免使用like關鍵字

17.sql語句優化
  避免全表掃描,在where及order涉及的列上建立索引。
  應盡量避免判斷null值。
  應盡量避免在where子句中使用!=和<>操作符,否則將放棄索引而進行全表掃描。
  應盡量避免在where子句中使用or來連接條件
  謹慎使用in和not in
  能用between就不要用in
  用exist代替in
  應盡量避免使用like關鍵字
  應盡量避免在where子句中對字段進行函數操作
  數據量大的表使用join,要先分頁在join
  避免頻繁創建和刪除臨時表。

一些總結