php基礎知識(四)

允許用asp風格的標誌

asp_tag

顯示錯誤信息到屏幕

Display_errors

設置錯誤的報告級別

Error_reporting

PHP的安全模式是爲了解決共享服務器安全問題而設立的

Safe_mode

出於安全的理由,禁用某些類

Disable_classes

出於安全的原因,禁止某些函數

Disable_functions

腳本解析輸入數據允許的最大時間

Max_input_time

腳本執行的時間

Max_execution_time

系統分配給php最大內存數量,防止內存溢出

Memory_limit

在設置的路徑尋找文件

Include_path

動態鏈接擴展庫存放的目錄

Extension_dir

給php動態添加擴展

Phpize

fopen打開一個網絡資源的時候可以設置超時時間嗎

Set_time_limit

進程和線程的解釋

進程:

進程是程序執行的一個實例。例如我們寫的代碼,就像地主一樣,有土地資源,可以分配給cpu,內存資源

 

線程:

就像農民,執行種地的人,它是進程的一個執行流,不能分配資源,是運行的單位

Php實現多線程

我們知道php本身是不支持多線程的,但是我們的web服務器是支持多線程的,也就是說可以同時讓多人一起訪問

假設我們現在運行的是a.php這個文件,但是我在程序中又請求web服務器運行另一個b.php,那麼這兩個文件都是同時執行的

Php實現多線程

Php5可以使用新增的strea_socket_client()函數直接替換掉fsocketopen();

Web服務器 && php

Web服務:

任何一臺電腦都可以作爲服務器,提供web服務,安裝的系統有windows,linux,ngigx,apache等

 

Php:

   是一種工具,一種腳本的語言

   實際上就是WEB服務器上添加一個php解釋程序

原型 && 原型鏈的理解

訪問一個不存在的屬性和方法時,會不斷地向上一級構造器的原型對象尋找。構造器函數裏面的prototype屬性,指向一個實際存在對象,主要是爲了繼承

作用域 && 作用域鏈的理解

作用域,變量的作用域無非就兩種,全局變量和局部變量

 

作用域鏈:從內到外,尋找var的聲明語句,直到找到爲止

JS執行流和錯誤影響範圍

函數提升

函數比變量優先

函數比字符串優先

常量的定義

 

== && ===

 

If...else..

Swith...case..的優化

If...else...

可能性最大的,儘量往前挪

Switch...case....

判斷的內容是一個比較複雜的內容,並且只是整數,浮點,字符串,可以使用這個優化

Static靜態變量關鍵字

初始化一次

初始化需要賦值

每次執行完後,該值會保留

可以記錄函數的調用次數,從而在某些條件下成立

修飾的變量是局部,在局部有效

外部文件的導入

 

系統內置函數

 

常見的正則表達式(URL,EMAIL,IP地址,手機號碼)

 

Php-FPM

Fast_cgi的管理器,負責管理各個php-cgi進程,可以提升效率,實現平滑重啓,可以使php在併發的情況下,也能安全穩定與web服務器合作,完成請求響應過程(高併發的情況下,也可以與web服務器保持聯繫)

 

Fastcgi program manage

Fastcgi的管理器

負責管理php-cgi的進程

即使在高併發的情況下,也可以與web服務器保持聯繫

Fastcgi

是對cgi的改進

當請求到達時,處理之;處理之後,並不會結束這個進程而是等待下一次連接)

如何進行防止SQL注入

就是通過把sql命令插入到表單提交或者頁面請求的查詢字符串,以達到欺騙服務器執行惡意sql命令。

 

  1. 表單儘量post提交
  2. 提交的數據正則驗證

3)開啓addslashes 轉義

4)密碼MD5加密

5)Http-referer判斷提交者的源頭

Php的數據類型

標量

浮點型,整型,字符串型,布爾型

複合

數組,對象

特殊

Null,resource

布爾類型的七種情況

0

0.0

‘0’

‘’

Null

Array()

False

Isset && empty

對不同數據判斷的結果

Isset

是否設置,存在,定義,賦值了沒有

Empty

值是否爲

Div && span

Div

級元素,例如項目中的錯誤提示

Span

級元素

 

它們之間的互換,可以通過display:inline(行)

Display:block(塊)

頁面之間傳遞變量

Get,post,cookie,session,ajax,curl

Get && Post

1)

Post發送請求的查詢字符串,是在http消息主體中發送的

Get發送請求的查詢字符串,是在url中發送到

2)

get請求在url中傳遞的參數的字符是有限制的,最大長度是2048個字符,當然也是根據瀏覽器而定

3)

Get比post更加不安全,因爲參數直接暴露在url中,不能用來傳遞敏感的信息

Mysql_fetch_row()

Mysql_fetch_assoc()

Mysql_fetch_array()

從結果集中取一行作爲數字數組,也就是說只能用索引來取值,偏移量從0開始

 

從結果集中取一行作爲關聯數組,也就是說只能用字段名來取值

 

從結果集中取一行作爲數字數組,關聯數組

Split && explode

都是可以把字符串轉換爲數組的格式

 

Split可以用正則表達式作爲分割用的標誌

Explode只能用固定的字符串

 

Explode速度會更快

不同瀏覽器的區別

Firefox,chrome

內核webkit   firebug

 

360瀏覽器

IE6       IEWebDeveloper

Session && Cookie

 

Open_door=>OpenDoor,make_by_id=>MakeById

 

1234567890 =>

1,234,567,890

 

Update A,B set A.c1 = B.c1,A.c2=B.c2 where A.id=B.id;

 

每天0點鐘重新啓動服務器

Crontab * * * * *(分時日月周)

Crontab 0 6 * * * echo hello world >> /tmp/text.txt

 

Crontab 0 */2  * * * echo xxx;

 

Crontab 0 23-7/2,8 * * *

晚上11點到早上7點之間,每2個小時 早上八點

Linux下指定文件showe.sh,爲使用/bin/bash,權限爲所有用戶可讀寫,可執行

 

對目錄文件爲showe.sh,修改其所有人爲root

 

通過js創建一個當前窗口的窗口,通過程序實現子窗口對父窗口的操作實現

父:

Function father(){}

子:

Function son(){

  Parent.father();

}

js實現頁面的前進,後退操作

History.go( 1 );

History.go( -1 );

IE瀏覽器和非IE瀏覽器的劃分,區別

 

優化數據表來提高活躍用戶的訪問度

 

Echo,print(),print_r(),

sprintf()

 

發佈了57 篇原創文章 · 獲贊 1 · 訪問量 3743
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章