PHP與SQL 的基礎知識

       

php基礎階段內容:

 

1  php 基本概念,常規語法

什麼是php

  一種服務器端的 HTML 腳本/編程語言,是一種簡單的、面向對象的、解釋型的、健壯的、安全的、性能非常之高的、獨立於架構的、可移植的、動態的腳本語言。是一種廣泛用於 Open Source(開放源代碼)的尤其適合 Web 開發並可以嵌入 HTML 的多用途腳本語言。它的語法接近 CJava Perl,而且容易學習。該語言讓 Web 開發人員快速的書寫動態生成的網頁。

php的註釋方式

1. 多行註釋:/* */

2. 單行註釋:// 、#

php現在的最新版本

    5.5.36

    5.6.22

    7.0.7

wamp是什麼?

W:windows

A:apache

M:mysql

P:php 

一組常用來搭建動態網絡或服務器的開源軟件

php的數據類型

八種:

四種標量類型:

String(字符串)

Integer(整型)

Float(浮點型,也作double)

Boolean(布爾型)

兩種複合類型:

Array(數組)

Object(對象)

兩種特殊類型:

Resource(資源)

NULL()

php中字符串的單引號和雙引號的區別

    單引號比雙引號的效率高(某些特殊情況)

單引號:中的數據視爲普遍的字符串

    雙引號:要對其數據進行處理

php的隨機數函數?不帶參數和帶參數有什麼區別?

Rand(min,max)/Mt_rand(min,max)

Mt_rand的速度比rand

不帶參數時默認範圍(在0---32767之間)

帶參數的話rand(最小值,最大值)

怎麼定義常量?

    define("常量名","常量值");值只能是標量,數據類型只能是booleanintegerfloatstring;不需要加“$

怎麼輸出內容到頁面顯示?

Echoprint

echoprint_rvar_dump區別?

echo 用於輸出數值變量或者字符串。但使用echo來輸出引用變量時,如數組,僅輸出數組的名字

print_r 作用是輸出一個數組,實際上參數expression類型可爲數值變量和引用變量。

Var_dump 函數的輸出結果<變量類型,變量值,變量長度>參數expression表示各種變量類型,作用是輸出一個變量的詳細信息。

2  php基礎函數(數組、日期、字符串)

怎麼定義一個數組?

    $Arr = array();

怎麼給數組新增加1個值?

Array_push

Array_unshift

$arr[] = ;

foreach語法結構?

Foreach($arr as $key=>$value){

    

}

foreach僅用於數組和對象

刪除數組中的指定元素 array_splice()

數組的排序 sort()rsort()   按鍵值排序sort()從小到大,rsort()從大到小

array_unique() 去除數組中的相同元素

in_array()檢測一個值是否在數組中(返回truefalse

array_search()返回的是鍵或值,返回的是鍵值所對應的鍵名

array_pop() - 刪除數組中的最後一個元素

array_push() 數組尾部添加一個或多個元素(入棧),返回新長度。

array_search()- 按元素值返回鍵名

怎麼獲取當前的日期時間?

date_default_timezone_get ()

gettimeofday ()

怎麼格式化顯示當前的日期時間?

Echo date(‘Y-m-d h:i:s’);

系統默認的是哪個地區的時間?

格林威治時間(GMT

怎麼修改系統的默認時區?

date_default_timezone_set(" PRC");中國時區

    修改配置文件php.ini  找到data.timezone = ;改爲data.timezone = Asia/shanghai;

獲取字符串的長度?

    $length = strlen($str);

將字符串全部轉換爲小寫或大寫?

字符串全部轉換爲小寫 : strtolower

字符串全部轉換爲大寫 :strtoupper

查找字符在字符串中第一次或最後一次出現的位置?

Stripos 第一次出現

Strrpos 最後一次出現【不區分大小寫】

Trrpos   【區分大小寫

 

3  web開發(http協議)

http的中文名稱?現在的最新版本是多少?訪問時的默認端口號?

超文本傳輸協議

2.4

3306

http協議的特點?

1. 支持客戶/服務器模式

2. 簡單快速

3. 靈活

4. 無連接

5. 無狀態

 

http的信息處理流程?

應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層、物理層

請求信息分爲幾個部分?

四個部分

通用頭域、請求消息、響應消息和主體消息

 

請求方式共計有幾種?我們常用的是哪2中請求方式?

八種

1. Get

2. Head

3. Put

4. Delete

5. Post

6. Options

7. Trace

8. Connect

最常用的兩種:post/get

請求行中包含哪些信息內容?

    請求方法、URIHTTP版本,最後以回車換行結尾,各個元素之間用空格字符隔開。 請求頭中會包含哪些信息?

通用頭域包含請求和響應消息都支持的頭域,通用頭域包含緩存頭部Cache-ControlPragma及信息性頭部ConnectionDateTransfer-EncodingUpdateVia

響應信息分爲幾個部分?

    狀態行,響應頭,空行,消息體

    一個狀態行、若個消息頭、已經響應正文、其中的一些消息頭和正文都是可選的,消息頭和正文內容之間要用空格隔開

狀態行中包含哪些信息?

    HTTP版本號

狀態碼分幾類?分別代表啥意思?列舉常見的狀態碼及其含義?

100-199 用於指定客戶端應相應的某些動作。
200-299 用於表示請求成功。
300-399 用於已經移動的文件並且常被包含在定位頭信息中指定新的地址信息。
400-499 用於指出客戶端的錯誤。
500-599 用於支持服務器錯誤。

常見:

200:服務器成功返回網頁

302:臨時移動

404:請求的網頁不存在

502:錯誤網關    503:服務器超時

 

100 Continue
  初始的請求已經接受,客戶應當繼續發送請求的其餘部分

101 Switching Protocols
  服務器將遵從客戶的請求轉換到另外一種協議

200 OK
  一切正常,對GETPOST請求的應答文檔跟在後面

201 Created
 服務器已經創建了文檔,Location頭給出了它的URL

202 Accepted
  已經接受請求,但處理尚未完成。

203 Non-Authoritative Information
  文檔已經正常地返回,但一些應答頭可能不正確,因爲使用的是文檔的拷貝

204 No Content
  沒有新文檔,瀏覽器應該繼續顯示原來的文檔。如果用戶定期地刷新頁面,而Servlet可以  確定用戶文檔足夠新,這個狀態代碼是很有用的

205 Reset Content
  沒有新的內容,但瀏覽器應該重置它所顯示的內容。用來強制瀏覽器清除表單輸入內容

206 Partial Content
  客戶發送了一個帶有Range頭的GET請求,服務器完成了它

300 Multiple Choices
  客戶請求的文檔可以在多個位置找到,這些位置已經在返回的文檔內列出。如果服務器要提出優先選擇,則應該在Location應答頭指明。

301 Moved Permanently
  客戶請求的文檔在其他地方,新的URLLocation頭中給出,瀏覽器應該自動地訪問新的  URL

302 Found
  類似於301,但新的URL應該被視爲臨時性的替代,而不是永久性的。

303 See Other
  類似於301/302,不同之處在於,如果原來的請求是POSTLocation頭指定的重定向目標文檔應該通過GET提取

304 Not Modified
  客戶端有緩衝的文檔併發出了一個條件性的請求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務器告訴客戶,原來緩衝的文檔還可以繼續使用。

305 Use Proxy
  客戶請求的文檔應該通過Location頭所指明的代理服務器提取

307 Temporary Redirect
  302Found)相同。許多瀏覽器會錯誤地響應302應答進行重定向,即使原來的請求是 POST,即使它實際上只能在POST請求的應答是303時才能重定向。由於這個原因,HTTP 1.1新增了307,以便更加清除地區分幾個狀態代碼: 當出現303應答時,瀏覽器可以跟隨重定向的GETPOST請求;如果是307應答,則瀏覽器只能跟隨對GET請求的重定向。

400 Bad Request
  請求出現語法錯誤。

401 Unauthorized
  客戶試圖未經授權訪問受密碼保護的頁面。應答中會包含一個WWW-Authenticate頭,瀏  覽器據此顯示用戶名字/密碼對話框,然後在填寫合適的Authorization頭後再次發出請求。

403 Forbidden
  資源不可用。

404 Not Found
  無法找到指定位置的資源

405 Method Not Allowed
  請求方法(GETPOSTHEADDeletePUTTRACE等)對指定的資源不適用。

406 Not Acceptable
  指定的資源已經找到,但它的MIME類型和客戶在Accpet頭中所指定的不兼容

407 Proxy Authentication Required
  類似於401,表示客戶必須先經過代理服務器的授權。

408 Request Timeout
  在服務器許可的等待時間內,客戶一直沒有發出任何請求。客戶可以在以後重複同一請求。

409 Conflict
  通常和PUT請求有關。由於請求和資源的當前狀態相沖突,因此請求不能成功。

410 Gone
  所請求的文檔已經不再可用,而且服務器不知道應該重定向到哪一個地址。它和404的不同在於,返回407表示文檔永久地離開了指定的位置,而404表示由於未知的原因文檔不可用。

411 Length Required
 服務器不能處理請求,除非客戶發送一個Content-Length頭。

412 Precondition Failed
  請求頭中指定的一些前提條件失敗

413 Request Entity Too Large
  目標文檔的大小超過服務器當前願意處理的大小。如果服務器認爲自己能夠稍後再處理該  請求,則應該提供一個Retry-After

414 Request URI Too Long
  URI太長

416 Requested Range Not Satisfiable
  服務器不能滿足客戶在請求中指定的Range

500 Internal Server Error
  服務器遇到了意料不到的情況,不能完成客戶的請求服務器不支持實現請求所需要的功能。例如,客戶發出了一個服務器不支持的PUT502 Bad Gateway
 服務器作爲網關或者代理時,爲了完成請求訪問下一個服務器,但該服務器返回了非法的應答

503 Service Unavailable
  服務器由於維護或者負載過重未能應答。例如,Servlet可能在數據庫連接池已滿的情況下 返回503。服務器返回503時可以提供一個Retry-After

504 Gateway Timeout
  由作爲代理或網關的服務器使用,表示不能及時地從遠程服務器獲得應答

505 HTTP Version Not Supported
  服務器不支持請求中所指明的HTTP版本

 

EGPCS指代的是什麼?

    指的是可以從服務器配置和請求的信息中獲取的信息,它包括了environmentGETPOSTcookieserver

怎麼獲取訪問用戶的IP地址?

    getenv(HTTP_ X_FORWARDED_FOR)

請求中的GetPost區別?

    get是從服務器上獲取信息,post是向服務器傳送數據,現在都是提交

如果要上傳文件需要進行哪些設置?

    enctype="multipart/form-data"

上傳文件的信息怎麼提取?

    FILES[]

怎麼獲取當前文件的路徑和名稱?

     echo $_FILES['img']['tmp_name']

     echo $_FILES['img']['name']

怎麼獲取當前文件的文件夾路徑?

     Echo __FILE__ 

怎麼解決http無狀態的問題?

    創建  表單隱藏字;   Cookie   Session  URL重寫;

什麼是cookie

    Cookie基本上就是一個包含多個字段的字符串。一臺服務器可以在響應頭部發送一個或多個cookie到瀏覽器。一些cookie的字段指明哪些瀏覽器頁面可以在請求中發送

什麼是session

    Session 是存儲在服務器端的會話,相對安全

cookiesession的區別?

cookie數據存放在客戶的瀏覽器上,session數據放在服務器上;

Cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙(考慮到安全應當使用session);

Session會在一定時間內保存在服務器上。當訪問增多時,會比較佔用你服務器的性能(考慮到減輕服務器性能方面,應當使用Cookie);

單個cookie保存的數據不能超過4k,很多瀏覽器都限制一個站點最多保存20cookie

綜上所述

將登錄信息等重要信息保存到session中,

其他信息需要保留,可放在cookie中。

 

怎麼創建設置cookie信息?

使用cookie前必須設置cookie.
int setcookie(string  name, string  value, int   expire,

string  path, string  domain, int  secure)

怎麼使用session

<?php  

    //  啓動Session  

    session_start();  

    // 聲明一個名爲 admin 的變量,並賦空值。  

    $_SESSION["admin"] = null;  

 $_SESSION[“count"] = $_SESSION[count"]+1;

 echo “這裏已經有 $_SESSION[count"] 人瀏覽過了”;

?> 

 

session的常見函數有哪些?各有什麼用處?

 ession_start();    //初始化session.需在文件頭部

 $_SESSION[name]=value; //配置Seeeion

echo $_SESSION[name]; //使用session

isset($_SESSION[name]); // 判斷

unset($_SESSION[name]); //刪除

session_destroy(); //刪除所有session,但是寫入cookie的信息無法自動去掉 

 

如果客戶端禁止了cookie怎麼處理?

4  ajax

ajax的中文名稱?

    異步JavaScriptXML

ajax簡述?

    也就是說AJAX 是與服務器交換數據並更新部分網頁的藝術,在不重新加載整個頁面的情況下。

AJAX 是一種用於創建快速動態網頁的技術。

通過在後臺與服務器進行少量數據交換,AJAX 可以使網頁實現異步更新。這意味着可以在不重新加載整個網頁的情況下,對網頁的某部分進行更新。

傳統的網頁(不使用 AJAX)如果需要更新內容,必需重載整個網頁面。

 

ajax中包含哪些技術?

    7項技術,其中JavascriptXMLHttpRequestDomXML是最爲重要

ajax對象有哪些常用函數,及其功能?

 Abort():停止當前請求;

getAllResponseHeaders():作爲字符串返回完整的headers;

getResponseheader(“hederLabel):作爲字符串返回單個的header標籤;

Open(“method,URL[,asyncFlag[,userName[,password]]]):設置未決的請求的目標URL方法和其他參數;

Send(content):發送請求;

setRequestHeader(“label,value):設置header並和請求一起發送;

 

ajax對象的常用屬性有哪些?

  Onreadystatechange:狀態改變的事件觸發器

readyState:對象狀態(integer):0=未初始化,1=讀取中,2=已讀取,3=交互中,4=完成

responseText:服務器進程返回數據的文本

responseXML:服務器進程返回數據的兼容DOMXML文檔對象

Status:服務器返回的狀態碼,如404=“文件未找到”、200=“成功”

statusText:服務器返回的狀態文本信息

 

jqueryajax函數格式及其常用參數、寫法?

$.ajax({

    type: "POST",   //請求方式

    url: "jqajax1.php",    //請求的地址

         data: "username="+$("input[type='text']").val(),  //請求的參數字符串

    dataType: "json",   //設置返回的數據類型,默認值爲"text"

    success: function(msg){//接收成功返回的數據結果

              $("#div1").html( "接收的返回值: " + msg );

    },error: function(msg){

              $("#div1").html( "有錯誤了: " + msg );

    }

 });

 

5  php+mysqlmysql函數)

要連接mysql之前的要設置什麼?

    在您能夠訪問並處理數據庫中的數據之前,您必須創建到達數據庫的連接。

php操作mysql數據庫的步驟?

 mysql_connect()         建立數據庫連接

mysql_select_db()       選擇操作的數據庫

mysql_query()             執行SQL語句

mysql_fetch_array()     返回一行記錄(數組)

Mysql_result(),mysql_fetch_row(),mysql_fetch_array()

mysql_num_rows()      返回結果集中行的數目

mysql_close()              關閉數據庫

 

創建數據庫連接的函數?參數有幾個?每個參數代表什麼含義?

mysql_connect() 建立數據庫連接

參數共計5個:

第一個參數:服務器名稱或者地址,同時可以加上端口號(如果是默認的3306,則可以省略);

第二個參數:登錄的用戶名;

第三個參數:登錄密碼;

第四個參數:是否使用可能重名的相同連接對象(如果該對象已經創建),默認爲false

第五個參數:常量組合,設置連接的模式,默認值爲0

(連接成功,返回結果爲資源類型;如果失敗,報錯並且返回false

 

怎麼選擇要操作的數據庫名稱?

    mysql_select_db(數據庫名稱)       選擇操作的數據庫

執行sql語句的函數?該函數返回值是什麼類型?

 mysql_query() ;僅對select,show,describeexplain等語句如果成功就返回資源類型;

對於updatedeletedropinsert等語句,成功返回true,失敗返回false

怎麼獲取查詢結果集的數量?

Mysql_result(),

mysql_fetch_row(),

mysql_fetch_array()

 

怎麼提取結果集中的數據?提取出來的數據是什麼樣的格式?

  mysql_fetch_array();

MYSQL_ASSOC():返回的數組將以該記錄的字段名稱作爲下標

MYSQL_NUM():返回的數組以從0開始的數字爲下標

MYSQL_BOTH:返回的數組既可以用字段名爲下標,也可以用數字爲下標

 

怎麼關閉數據庫連接?

     mysql_close();

6  其他

empty()

    empty()函數檢查一個變量是否爲空或零值,如果變量值是非空或非零值,則empty()返回FALSE,否則返回TRUE

isset()

    isset()函數來檢查變量是否存在

gettype()

    gettype()獲取變量的類型

settype()

  一種強制轉換類型的函數方法

語法格式:bool settype(mixed $var, string $type)

例如:$var="123hello"; //$var爲字符串

settype($var, "int"); //$var現在爲整型(值爲123

 

錯誤控制運算符 @

    將其放置在PHP表達式之前,該表達式可能產生的任何錯誤信息都將被忽略

執行運算符 `

   PHP支持一個執行運算符,即反引號(``

PHP腳本中,將外部程序的命令行放入反引號中,並使用echo()print()函數將其顯示,PHP將會在到達該行代碼時啓動這個外部程序,並將其輸出信息返回,其作用效果與shell_exec()函數相同

反引號運算符在激活了安全模式或者關閉了 shell_exec() 時是無效的。

與其它某些語言不同,反引號不能在雙引號字符串中使用。

 

字符串拼接 .

    使用“.

定界符 <<<+名稱

    <<<”之後提供一個標誌符,然後是字符串,最後用同樣的標誌符結束字符串。結束標誌符必須從行的第一列開始,標誌符必須遵循PHP中標記的命名規則:只能包含字母、數字、下劃線,而且必須以下劃線或非數字字符開始

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章