關於php的一些基礎知識
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的一些基礎知識