1. 程式人生 > >關於php的一些基礎知識

關於php的一些基礎知識

urn 高級 ddr atp ech utf-8 length 亂碼 數據

1.HTTP協議中幾個狀態碼的含義:503 500 401 403 404 200 301 302.

答案:

503 (服務不可用) 服務器目前無法使用(由於超載或停機維護)。 通常,這只是暫時狀態。

500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求。

401 (未授權) 請求要求身份驗證。 對於需要登錄的網頁,服務器可能返回此響應。

403 (禁止) 服務器拒絕請求。

404 (未找到) 服務器找不到請求的網頁。

200 (成功) 服務器已成功處理了請求。 通常,這表示服務器提供了請求的網頁。

301 (永久移動) 請求的網頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。

302 (臨時移動) 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來進行以後的請求。

技術分享

2.include require include_once require_once的區別。

引用文件的方法有兩種:require 及 include。

require 的使用方法如 require("file.php"); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。

include 使用方法如 include("file.php"); 。這個函數一般是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。

_once 後綴表示已加載的不加載

3.請寫出數據類型(int char varchar datetime text)的意思,請問varchar和char有什麽區別。

int:整數類型,4 字節大小,範圍(-2 147 483 648,2 147 483 647)

char:字符串類型,大小0-255字節

varchar:字符串類型,大小0-65535 字節

datetime:表示時間值的日期和時間類型,大小8個字節,格式:YYYY-MM-DD HH:MM:SS

text:字符串類型,0-65535字節,用於長文本數據存儲

char與varchar的區別:

char (13)長度固定, 如‘www.nynds.com‘ 存儲需要空間 13個字符

varchar(13) 可變長 如‘www.nynds.com‘ 需要存儲空間 14字符

從上面可以看得出來char 長度是固定的,不管你存儲的數據是多少他都會都固定的長度。

而varchar則處可變長度但他要在總長度上加1字符,這個用來存儲位置。所以實際應用中用戶可以根據自己的數據類型來做。

由於某種原因char 固定長度,所以在處理速度上要比varchar快速很多.

技術分享

4.Mysql的存儲引擎myisam和innodb的區別。

InnoDB和MyISAM是許多人在使用MySQL時最常用的兩個表類型,這兩個表類型各有優劣,視具體應用而定。基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持。MyISAM類型的表強調的是性能,其執行數度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持以及外部鍵等高級數據庫功能。

5.用PHP打印出前一天的時間格式是2006-5-10 22:21:21

echo date("Y-m-d H:i:s",time()-3600*24);

6.echo(),print(),print_r()的區別

echo是PHP語句, print和print_r是函數,語句沒有返回值,函數可以有返回值(即便沒有用)

print只能打印出簡單類型變量的值(如int,string)

print_r可以打印出復雜類型變量的值(如數組,對象)

7.如何實現字符串翻轉

(1)英文字符串反轉

$str = ‘abc,def.‘; // 時刻記住推薦使用單引號‘‘,效率高

$newstr = strrev($str);

echo ‘原字符串是:‘.$str; // ‘abc,def.‘

echo ‘ 翻轉後的字符串是:‘.$newstr; // ‘.fed,cba‘

echo ‘<br />‘;

// 但是當有中文存在的時候,則出現了亂碼

$str = ‘a這b是c子,符d串ef.‘;

$newstr = strrev($str);

echo ‘原字符串是:‘.$str; // ‘a這b是c子,符d串ef.‘

echo ‘ 翻轉後的字符串是:‘.$newstr; // 輸出一串亂碼

echo ‘<br />‘;

(2).中英文字符串反轉

echo "<meta charset = ‘utf-8‘>";

function myStrrev($str,$encoding=‘utf-8‘){

$newstr = ‘‘;

$len = mb_strlen($str);

for($i=$len-1; $i>=0; $i--){

$newstr .= mb_substr($str,$i,1,$encoding);

}

return $newstr;

}

$string = ‘相信women是正確的。‘;

echo $string;

echo ‘<br />‘;

echo myStrrev($string); // ‘的。的確正是nemow信相‘

技術分享

8.實現中文字符串截取無亂碼的方法

//$start:指定開始截取字符串的位置;$length指定截取字符的長度

function substr2($string, $start, $length)

{

$len = strlen($string);

if($len > $length)

{

$str = ‘‘;

$len1 = $start + $length; //截取到原字符串的位置

for($i=$start; $i<$len1; $i++)

{

if(ord(substr($string, $i, 2)) > 0xa0) //在ASCII中,0xa0表示漢字的開始

{

$str.=substr($string, $i, 2);

$i++;

}

else

{

$str.=substr($string, $i, 1);

}

}

return $str.‘...‘;

}

else

{

return $string;

}

}

9.如何用PHP的環境變量得到一個網頁地址的內容?IP地址又要怎樣得到?

"http://".$_SERVER [‘HTTP_HOST‘].$_SERVER[‘PHP_SELF‘] ;// 獲取網頁地址

$_SERVER[‘REMOTE_ADDR‘] //獲取IP地址

10.求兩個日期的差數,例如2017-2-5~2017-3-6的日期差數

$day=(strtotime(‘2017-2-5‘)-strtotime(‘2017-3-6‘))/8600;

關於php的一些基礎知識