第一篇:四川商會php技能培訓(xùn)中心學(xué)習(xí)總結(jié)(二)
四川商會php技能培訓(xùn)中心學(xué)習(xí)總結(jié)
(二)問題5:NTFS權(quán)限問題。
這個問題ASP上也出現(xiàn)過,不過換在PHP環(huán)境就沒多一份心往這方面想,所以足足憋了我一上午,發(fā)現(xiàn)這個問題是在朋友的服務(wù)器上,前一天喝酒正好認(rèn)識一個哥們兒遇到php建站的問題了,接著酒勁我就裝了一把,說我php多牛多牛啊,知道的我才學(xué)2星期,哈哈哈,第二天就給人家解決問題吧,牛都吹出去了也不能不管人家,連上服務(wù)器一看原來是安裝phpcms的時候遇到了MySQL問題安裝無法繼續(xù)進行了,百度上一頓神搜找到問題關(guān)鍵了是NTFS權(quán)限問題,這就好解決了,加個Internet來賓用戶就解決了,估計自己以后也會遇到這問題,所以早遇到比晚遇到強,關(guān)鍵時候知道怎么回事兒!
問題6:Cookies讀寫問題。
這個問題應(yīng)該不是很大的問題,只不過當(dāng)天馬上下班了,沒有來得及解決,第二天很輕易的就搞定了,剛開始學(xué)習(xí)肯定語句掌握的不多,以為$_COOKIE[“xxx”]既可以讀也可以寫呢,用到這兒的時候才發(fā)現(xiàn)部對路子,上網(wǎng)隨便一搜“php cookies 寫入”答案就來了,setcookie即可,真簡單啊。
問題7:php分頁。
用ASP的時候SQL語句也沒深入研究,根本就不知道limit這回事兒,我說以前看淘寶、百度的分頁上有0 20、20 20這樣的參數(shù)傳遞呢,都是干分頁用的,稍補了一堂SQL課程問題迎刃而解,頁數(shù)判斷那里原理都一樣就沒當(dāng)成問題,一路綠燈解決戰(zhàn)斗!
問題8:創(chuàng)建utf-8文件寫入中文亂碼問題,問題2的后續(xù)問題。
一開始就把這個功能做好了,只不過沒用中文測試,后來做到有中文的地方發(fā)現(xiàn)這里不靈了,哎呀那個頭疼啊,這個問題收拾了我好幾天,一直沒解決,為了不被這個問題困擾,所以就先用英文寫入把這里條過去了,昨天必須得解決這里了,所以就硬下頭皮整吧,還是BOM的簽名問題,以下均為我自己理解,不知道對不對,Windows環(huán)境識別UTF-8與ANSI文件靠的是UTF-8文件前的一個叫做BOM簽名的東西,這個東西普通的文本編輯器是看不到的 xEF xBF xEE好像是這三個16進制字符,反正是三個東西,問題2里毛病也是他們?nèi)齻€整出來的,UTF-8在Windows下雖然要用這三個家伙區(qū)分,在php下確實沒有用的東西,要不問題2里面為啥要去掉BOM簽名呢,怪就怪我在做ASP的時候遇到過同樣的UTF-8文件寫入中文亂碼問題,所以就留了個心眼,先在網(wǎng)上艘了一個UTF-8文件在php寫入的函數(shù),里面就把那三個討厭的東西加進去了,哎呀我去,這就是聰明反被聰明誤,這頓調(diào)試就是不行啊,后來我也是恍然大悟,把這三個家伙去掉了,問題解決了,那個暢快啊。
還有很多小問題就不細(xì)說了,比如$的轉(zhuǎn)義符是chr(36)啊,SQL中的關(guān)鍵詞from啊(在asp中不是關(guān)鍵詞),時間函數(shù)的使用(巨方便,比ASP的用著舒服)。
第二篇:四川商會php技能培訓(xùn)中心學(xué)習(xí)總結(jié)(一)
四川商會php技能培訓(xùn)中心學(xué)習(xí)總結(jié)
(一)在四川商會培訓(xùn)php學(xué)習(xí)到今天也是快一個月時間了,然而到今天為止第一個php寫的網(wǎng)站已經(jīng)快要見亮了,中午后臺部分全部功能完成意味著以后做別的站可以拿來就用,不用再費太多精力編寫了,現(xiàn)在就簡單寫寫學(xué)習(xí)php的這一個月我遇到的主要問題。問題1:環(huán)境搭配
php最經(jīng)典的組合當(dāng)然是LAMP(Linux+Apache+MySQL+PHP)了,不過我沒有條件和精力弄Linux所以用Windows 2003代替Linux了,自己調(diào)試用,又不是做服務(wù)器,所以不要求性能足夠用了。
本身我的機器是Win2003+IIS+Framework環(huán)境能跑起來ASP和.net,并且裝有jdk+tomcat+oracle還能跑起來jsp,本打算不破壞這些環(huán)境再安裝apache和mysql,不過困難重重啊。
于是放棄jsp環(huán)境,并且用ghost備份了asp環(huán)境,刪掉IIS后重新安裝PHP環(huán)境,環(huán)境還是很好搭的,在百度上輕易的找到教程照著安裝就可以Apache+PHP+MySQL+PHPMyAdmin,沒有安裝Zend,以后深入學(xué)習(xí)的時候再說吧,沒有研究明白多個網(wǎng)站的時候怎么存在不同的路徑運行在不同端口,也先不管了,現(xiàn)在80端口跑吧,環(huán)境調(diào)試好了以后備份了一個ghost,算是php環(huán)境成功搭起來了。
問題2:對utf-8編碼文件的標(biāo)記BOM導(dǎo)致的頁面空行
這個問題以前在學(xué)習(xí)xhtml+css的時候遇到過,那時候是因為文檔聲明類型前面加別的代碼了或者沒有寫文檔聲明類型xhtml1.0卻用w3c的標(biāo)準(zhǔn)做頁面導(dǎo)致的,起初我以為也是把require寫在文檔聲明前面出的問題呢,后來反復(fù)調(diào)試發(fā)現(xiàn)不是這么簡單,后來上百度搜索了很多關(guān)于require引起空行的問題,有一個牛人提到了要在dreamweaver里面ctrl+j把utf-8編碼的BOM去掉,當(dāng)時也不懂BOM是啥,說去掉就去掉吧,確實解決問題了,這算是把這一關(guān)過去了,不過后面還有utf-8的問題呢,也是跟這個有關(guān)系。
問題3:php下checkbox的取值問題
這是我發(fā)現(xiàn)php唯一一個不方便的地方,不像asp那樣,所有同名的checkbox的值存成一個集合,php只能取同名里最后一個checkbox的值,在做多數(shù)據(jù)where in(aa,bb,cc,dd)查詢的時候很不方便,只能用js+一個hidden input的方法實現(xiàn),雖然有點小麻煩,不過不是大問題,很容易就解決了,上網(wǎng)查了一下也確實只有這么才能解決!
問題4:Access庫轉(zhuǎn)到MySQL的問題
畢竟數(shù)據(jù)庫已經(jīng)設(shè)計好了,再在PHPMyAdmin中建一次表也很麻煩,索性找個軟件來直接轉(zhuǎn)庫,還不錯讓我找到各爆好用的軟件,不過全英文界面,名字沒記住,明天去公司看看再發(fā)上來,庫很輕松的轉(zhuǎn)過來了,但是我手很賤,看到MySQL里面的data文件夾下有和我建的數(shù)據(jù)庫一樣名字的文件夾,我以為有這個文件夾就不用建庫倒庫了,一時興起把沒用的都刪掉了,問題來了PHPMyAdmin連不上庫了,這個倒是好解決,重裝了一次MySQL解決問題,可是我沒備份就換回ASP環(huán)境,再換回來的時候MySQL出大問題了,重裝都不管用了,上百度一頓神搜,最終csdn的牛人給了答案“把libmysql.dll和php5ts.dll考到system32下”,解決問題。
第三篇:php學(xué)習(xí)總結(jié)
調(diào)試/*………*/ //…….#..........插入時考慮清楚字段類型避免插入后出現(xiàn)缺值,亂碼
@ 屏蔽錯誤or die 條件顯示
以前學(xué)習(xí)php類的總結(jié):
1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實現(xiàn)新的重載
1.1 在子類中調(diào)用父類的覆蓋部分可以使用 父類名稱::方法名稱();
2.final 只能定義類和方法,不能使用final定義成員屬性,因為final是常量的意思,在php里定義常量使用的是define函數(shù)
2.1 final關(guān)鍵字標(biāo)記的類不能被繼承
2.2 final關(guān)鍵字標(biāo)記的方法不能被子類重寫
3.const是一個定義常量的關(guān)鍵字,在php中定義常量使用的是define()函數(shù),但是在類里定義常量使用的是“const” 這個關(guān)鍵字
3.1在程序中不能修改它的值。
3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關(guān)鍵字,但不使用“$”符號,也不能使用對象來訪問。
4.static關(guān)鍵字可以描述類中的成員屬性和成員方法
4.1 static 的成員屬于類,而不屬于任何對象,4.2 static的成員是在類第一次被加載的時候分配的空間,其他類無法訪問的,只對類的實例共享,能一定程度對類該成員形成保護
4.3 靜態(tài)成員放到了“初始化靜態(tài)段”,在類第一次加載的時候放入的,可以讓堆內(nèi)存里的每個對象共享。所以在靜態(tài)方法里,可以使用這個方法所在的類的“類名”,也可以使用“self”來訪問其他靜態(tài)成員。“self”代表這個靜態(tài)方法所在的類。
4.3.1 在類里的靜態(tài)方法是不能訪問類的非靜態(tài)成員的。
4.3.2 在類的非靜態(tài)方法里可以訪問靜態(tài)成員:”self:成員屬性“;
4.4類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態(tài)方法也是一樣,類似于全局函數(shù)。
4.5 在類內(nèi)函數(shù)訪問靜態(tài)變量時前面加self::靜態(tài)函數(shù)
4.6 靜態(tài)變量可以在類外直接訪問,訪問方法是類名::靜態(tài)變量
4.7 靜態(tài)函數(shù)可以在類外直接訪問,訪問方式是類名::靜態(tài)函數(shù)
4.8 在類內(nèi)靜態(tài)函數(shù)訪問另一個靜態(tài)函數(shù)時使用 類名::靜態(tài)函數(shù)名
4.8.1 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時,訪問方式是類名::靜態(tài)變量
4.8.2 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時,訪問方式除了是類名::靜態(tài)變量外,還可以使用self::靜態(tài)變量
4.9 在類內(nèi)靜態(tài)函數(shù)訪問另一個靜態(tài)函數(shù)時除了使用 類名::靜態(tài)函數(shù)名外,還可以使用self::靜態(tài)函數(shù)名,也可以直接調(diào)用靜態(tài)函數(shù)
4.10 靜態(tài)函數(shù)內(nèi)不能訪問非靜態(tài)變量
4.11 在類內(nèi)靜態(tài)函數(shù)不能使用$this->非靜態(tài)函數(shù)名訪問非靜態(tài)函數(shù),可以使用self::非靜態(tài)函數(shù)名
4.12
5.類里的”$this“,在php里面提供了一個本對象的引用$this,每個對象里面都有一個對象的引用$this來代表這個對象,完成對象內(nèi)部成員的調(diào)用。
5.1 $this 就是對象內(nèi)部代表這個對象的引用。
6.類里“self”,self 和$this相似,只不過self是代表這個靜態(tài)方法所在的類,所以在靜態(tài)方法里,可以使用這個方法所在的類的”類名“,也可以使用“self”來訪問其他的靜態(tài)成員,通常使用后者”self::成員屬性“。
7.類里”__“開頭的函數(shù)名
7.1類里”__“開頭的函數(shù)名都是在某一時刻不同情況下自動調(diào)用執(zhí)行的方法。
7.2__toString()方法也是自動被調(diào)用,是直接輸出對象引用時自動調(diào)用的。比如“$p = new Person()”,直接用echo輸出$p會產(chǎn)生錯誤,如果在類里定義了__toString()方法,再用echo直接輸出對象引用的時候就不會產(chǎn)生錯誤了
8.對象串行化
8.1 __sleep()方法,在對象串行化的時候,會調(diào)用一個__sleep()方法來完成一些睡前的事情,__sleep()函數(shù)不接受任何參數(shù),但返回一個數(shù)組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時被忽略,如果沒有__sleep()方法,php將保存所以屬性.8.2 __wakeup()方法,在重新醒來時,即由二進制串重新組成一個對象的時候,則會自動調(diào)用__wakeup(),做一些對象醒來就要做的動作。
8.3 有時你可能需要一個對象在反串行化后立即執(zhí)行.為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.9.protected 成員能被同個類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實例直接訪問。protected and public 可以動態(tài)綁定
10.private 大部分private屬性仍然可以被外部代碼共享.解決方法是用一對public方法,一個是get(獲取屬性的值),另一個是set(設(shè)置屬性的值).10.1private 不可以動態(tài)綁定。Private成員只存在于它們所在的類內(nèi)部.不像public和protected成員那樣,PHP模擬靜態(tài)綁定.10.2 什么時候用到private?private成員只有當(dāng)你不想讓子類繼承改變或特殊化父類的行為時才用到,這種情況比你想像的要少,通常來說,一個好的對象分層結(jié)構(gòu)應(yīng)當(dāng)允許絕大多數(shù)功能被子類特殊化,改進,或改變—這是面向?qū)ο缶幊痰幕A(chǔ)之一。一定的情況下需要private方法或變量,例如當(dāng)你確信你不想允許子類改變父類中的某個特定的部份。
11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個地方但不起作用),它與一般方法不同—沒有任何代碼.如果類中存在一個或更多抽象方法, 那么這個類就成了抽象類.你不能實例化抽象類.你必須繼承它們,然后實例化子類.你也可以把抽象類看成是子類的一個模板.如果你覆寫所有的抽象方法, 子類就變成一個普通的類.如果沒有覆寫所有方法, 子類仍是抽象的.如果一個類中中包含有抽象方法(哪怕只有一個), 你必須聲明這個類是抽象的, 在class關(guān)鍵字前加上abstract.聲明抽象方法的語法與聲明一般方法不同.抽象方法的沒有像一般方法那樣包含在大括號{}中的主體部份,并用分號;來結(jié)束.12.接口:如果你建立了一個只有抽象方法的類,你就定義了一個接口(interface).為了說明這種情況, PHP中有interface 和implements關(guān)鍵字.你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個接口.例如, 你可以寫一個myClass implements myIterface.這兩種方法可以依個人偏愛來選擇.12.1 如果接口中出現(xiàn)非抽象方法.會報錯
12.2 接口中的方法默認(rèn)是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final
12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態(tài)方法.12.5 在接口中可以有常量,e.g.:
interfaceUser{
const MAX_GRADE = 99;
function getName();
function setName($_name);
}
?>
13.Namespace關(guān)鍵字給一塊代碼命名.在這個代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個代碼塊.引用靜態(tài)的類成員也是用相同的方法.在命名空間內(nèi)代碼不需要聲明命名空間, 它本身就是默認(rèn)的.這種方法比添加前綴的方法好.你的代碼可由此變得更加緊湊和可讀.你可能想知道是否可以建立分層的(嵌套的)命名空間.答案是不可以.但你可以在命名空間名稱后加上冒號, 你可以再次調(diào)用在名稱中不包含冒號的變量,函數(shù)和類.命名空間允許存在冒號,只要不是第一個字符和最后一個字符或接著另一個冒號.命名空間的名稱中的冒號對于PHP來說沒有任何意義, 但如果你用他們來區(qū)分邏輯上的區(qū)塊, 他們可以很好地說明你的代碼中的父子(parent-child)關(guān)系.14.__toString()打印對象會調(diào)用它的__toString方法.15.不能實例化的類
//
//當(dāng)__construct()為public時可以實例化
class A{
private function __construct(){}
}
$a = new A();//fail
?>
15.1
//static的方法留給外部訪問.
class A{
private function __construct(){}
static function getClassA(){
return “這里是后門,可以通過這里進入類內(nèi)部..”;
}
}
echo A::getClassA();
?>
15.2
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內(nèi)部返回實例.
class A{
private function __construct(){
echo “this is construction
n”;
}
static function getClassA(){
$a = new A();
return $a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對象.”;
}else{
echo “
$a1 $a2 不是一個對象.”;
}
//this is construction
//this is construction
//$a1 的類是 A , $a2 是 A
//$a1 $a2 不是一個對象.?>
15.3
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內(nèi)部返回實例.
//定義靜態(tài)屬性保證這個實例能被靜態(tài)方法調(diào)用.
//增加判斷部分.
class A{
private static $a = null;
private function __construct(){}
static function getClassA(){
if(null == self::$a){
self::$a = new A();
}
return self::$a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對象.”;
}else{
echo “
$a1 $a2 不是一個對象.”;
}
//$a1 的類是 A , $a2 是 A
//$a1 $a2 指向同一對象.?>
第四篇:PHP 學(xué)習(xí)筆記(二):表單:表單處理,表單驗證,表單實例總結(jié)
PHP 學(xué)習(xí)筆記
(二):表單:表單處理,表單驗證,表單實例
PHP 表單
PHP 超全局變量 $_GET 和 $_POST 用于收集表單數(shù)據(jù)(form-data)。1 GET vs.POST
GET 和 POST 都創(chuàng)建數(shù)組(例如,array(key => value, key2 => value2, key3 => value3, …))。此數(shù)組包含鍵/值對,其中的鍵是表單控件的名稱,而值是來自用戶的輸入數(shù)據(jù)。
GET 和 POST 被視作 GET和_POST。它們是超全局變量,這意味著對它們的訪問無需考慮作用域并且應(yīng)該對其進行驗證。如果未提交,則跳過驗證并顯示一個空白表單。
PHP 表單驗證輸入字段
從上一節(jié)中的驗證規(guī)則中,我們看到 “Name”, “E-mail” 以及 “Gender” 字段是必需的。這些字段不能為空且必須在 HTML 表單中填寫。
在上一節(jié)中,所有輸入字段都是可選的。在下面的代碼中我們增加了一些新變量:$nameErr、$emailErr、$genderErr 以及 $websiteErr。這些錯誤變量會保存被請求字段的錯誤消息。我們還為每個 $_POST 變量添加了一個 if else 語句。這條語句檢查 $_POST 變量是否為空(通過 PHP empty()函數(shù))。如果為空,則錯誤消息會存儲于不同的錯誤變量中。如果不為空,則通過 test_input()函數(shù)發(fā)送用戶輸入數(shù)據(jù):
$nameErr = $emailErr = $genderErr = $websiteErr = “";$name = $email = $gender = $comment = $website = ”“;
if($_SERVER[”REQUEST_METHOD“] == ”POST“){
if(empty($_POST[”name“])){
$nameErr = ”Name is reqwww.tmdps.cnment“])){
$comment = ”“;
} else {
$comment = test_input($_POST[”comment“]);
}
if(empty($_POST[”gender“])){
$genderErr = ”Gender is required“;
} else {
$gender = test_input($_POST[”gender“]);
} } ?> PHP驗證 E-mail 和 URL
本節(jié)展示如何驗證名字、電郵和 URL。
PHP驗證 E-mail
以下代碼展示的簡單方法檢查 e-mail 地址語法是否有效。如果無效則存儲一條錯誤消息:
$email = test_input($_POST[”email“]);if(!preg_match(”/([w-]+@[w-]+.[w-]+)/“,$email)){
$emailErr = ”無效的 email 格式!“;}
PHP驗證 Name、E-mail、以及 URL
現(xiàn)在,腳本是這樣的:
$nameErr = $emailErr = $genderErr = $websiteErr = ”“;$name = $email = $gender = $comment = $website = ”“;
if($_SERVER[”REQUEST_METHOD“] == ”POST“){
if(empty($_POST[”name“])){
$nameErr = ”Name is required“;
} else {
$name = test_input($_POST[”name“]);
// 檢查名字是否包含字母和空格
if(!preg_match(”/^[a-zA-Z ]*$/“,$name)){
$nameErr = ”O(jiān)nly letters and white space allowed“;
}
}
if(empty($_POST[”email“])){
$emailErr = ”Email is required“;
} else {
$email = test_input($_POST[”email“]);
// 檢查電郵地址語法是否有效
if(!preg_match(”/([w-]+@[w-]+.[w-]+)/“,$email)){
$emailErr = ”Invalid email format“;
}
}
if(empty($_POST[”website“])){
$website = ”“;
} else {
$website = test_input($_POST[”website“]);
// 檢查 URL 地址語言是否有效(此正則表達式同樣允許 URL 中的下劃線)
if(!preg_match(”/b(?:(?:https?|ftp)://|www.tmdps.cnment“])){
$comment = ”“;
} else {
$comment = test_input($_POST[”comment“]);
}
if(empty($_POST[”gender“])){
$genderErr = ”Gender is required“;
} else {
$gender = test_input($_POST[”gender“]);
} } ?>
接下來向您講解如何防止表單在用戶提交表單后保留輸入字段中的值。
PHP-保留表單中的值
如需在用戶點擊提交按鈕后在輸入字段中顯示值,我們在以下輸入字段的 value 屬性中增加了一小段 PHP 腳本:name、email 以及 website。在 comment 文本框字段中,我們把腳本放到了 之間。這些腳本輸出 $name、$email、$website 和 $comment 變量的值。
然后,我們還需要顯示選中了哪個單選按鈕。對此,我們必須操作 checked 屬性(而非單選按鈕的 value 屬性):
Name: “>
E-mail: “>
Website: “>
Comment:
Gender:
value=”female“>Female value=”male">Male
echo
第五篇:php mysql學(xué)習(xí)總結(jié)剖析
php 字符串
反引號里面的字符必須是命令 如`pwd` 是查看當(dāng)前目錄
轉(zhuǎn)移字符:
符號
含義
”
雙引號
反斜線
n
換行
t
跳位(Tab)
常量和變量 _FILE_ 這個默認(rèn)常量是php程序文件名 _LINE_ 這個默認(rèn)常量是php程序行數(shù) E_ERROR 這個常量指到最近的錯誤處 E_WARNING 這個常量指到最近的警告處 E_PARSE 本常量為解析語法有何潛在問題處 自定義常量define(“
“,”
“);第一空格為常量,第二個為定義 或
define(‘
‘,);同上
有$為變量,無為常量 object為類變量,如 class foo{ function do-foo(){ echo”Doing foo”;} } $bar=new foo;
//建立變量,其他語言有(),php語言沒有。// $bar->do-foo();
//調(diào)用變量的方式。//->為調(diào)用類函數(shù)用的符號
變量區(qū)分大小寫
Php變量可以不用定義直接使用。局部變量和全局變量的區(qū)別見第二章,第21分鐘處圖。
全局變量必須用$GLOBALS數(shù)組和global聲明。配置文件的globals函數(shù)須打開
是什么????
$PHP_SELF
//php文件名,全局變量 echo $GLOBALS[“PHP_SELF”];或 globals $PHP_SELF;不能echo $PHP_SELF;
函數(shù)不區(qū)分大小寫
靜態(tài)變量static variable
老語法$foo直接用
新語法$_GET[‘foo’]
$_POST[‘foo’]
$_SESSION[‘foo’]
位運算符:
&與
|或
~非
^異或
<< 向左移位乘法
>> 向右移位除法 邏輯運算:
&& 而且AND
||或者OR
Xor異或
!不Not
符號
意義 $
變量
&
變量的地址(加在變量前)->
類的方法或?qū)傩?=>
數(shù)組的元素值
? :
三元運算符
數(shù)組
數(shù)組的下標(biāo)可以是整數(shù),也可以是字符串
如$user[0]=”張三”;
$user[‘zs’]=”張三”;
$user[“zs”]=”張三”;或$user=array(“張三”,//下標(biāo)0
echo $user[0];‘is’=>”李四”,//下標(biāo)is
echo $user[is];或echo $user[‘is’];“ww”=>”王五”
//下標(biāo)ww);
echo sizeof($user);
//記錄數(shù)
多維數(shù)組 $user=array(array(‘張三’,88), array(‘李四’,95), array(‘王五’,99));函數(shù)
函數(shù)不區(qū)分大小寫 函數(shù)原型:
返回類型 函數(shù)名稱(類型 參數(shù)1, 類型 參數(shù)2…..);
數(shù)學(xué)函數(shù)
number abs(number)取絕對值|x| float sin(float)
正弦計算sin(x)float cos(float)
余弦計算cos(x)float sqrt(float)
開平方根計算 float log(float)
自然對數(shù)計算lnx float log10(float)
lgx float exp(float)
e的x次方
float pow(float x,float y)
x的y次方
double pi()
圓周率
void srand(int)
配置隨機種子
int rand([int min],[int max])
取得隨機數(shù)
string strtolower(string str)
字符串全轉(zhuǎn)為小寫 string strtoupper(string str)
字符串全轉(zhuǎn)換為大寫 string trim(string str)
截去字符串首尾的空格 string substr(stringstring,int start,int[length])
取子串
下標(biāo)從0開始。從第start位取出length個字符,start為負(fù)數(shù),從尾端算起,length為負(fù)數(shù)表示取倒數(shù)length個字符。第三章第七分鐘 int strlen(string str)取得字符串長度
int strpos(string母串,string待查字符,int[offset])
尋找字符串中的某個字符最先出處 int strcmp(string str1,string str2)字符串比較
string md5(string str)計算字符串的MD5哈希值 fopen(“C: mpa.txt”,”r”);fopen(http://www.tmdps.cnmit
//提交,缺省自動提交 set autocommit=0
//取消自動提交 rollback
//回滾
事物可以用start transaction定義
有些語句自動提交,無法回滾,如DDL語句 save point //回滾點 鎖
lock tables 表名[read][write], 表名[read][write],… 解鎖
unlock tables
fulltext(title,body)
//在標(biāo)題和主體上建立全文索引
select * from articles where match(title,match)against(‘database’);
select * from articles where match(title,match)
against(‘+mysql-yoursql’ in boolean mode);
包含mysql不包含yoursql 邏輯全文索引 against:匹配串:
apple banana
//找至少包含上面詞中的一個的記錄行 +apple+juice
//兩個詞均被包含在內(nèi)
+apple macintosh
//包含詞”apple”,但是如果同時包含”macintosh”,它的排列將更高一點 + apple-macintosh
//包含”apple”但不包含” macintosh”
“some words”
//可以包含”some words of wisdom”但不是”some noice words”
grant
//授權(quán)
grant select,insert,update,delete on *.* to ‘test_user’@’%’ identified by ‘123’;%
//任何主機
*.*
//任何數(shù)據(jù)庫上的任何對象,*表示任何 123
//密碼
test_user
//用戶名
grant all privileges on *.* to admin@localhost identified by ‘123’ with grant option;
//創(chuàng)建本地的完全超級用戶”admin,口令’123’” all privileges //完全的權(quán)限
with grant option
//授權(quán)給其他用戶
刪除用戶
revoke all on *.* from ‘test_user’@ localhost;revoke all
//收回所有權(quán)限 flush privileges
//刷新內(nèi)存授權(quán)表
delete from user where user=’test_user’;
// 刪除用戶
delete from user where host=’localhost’ and user=’’;
//刪除匿名用戶
mysqladmin-uroot password 123
//添加密碼123 mysqladmin –uroot-p123 password 456
或
set password for root=password(“456”);
或
update user set password=password(‘456’)where user=’root’;
//再改密碼為456 mysqladmin –uroot –p456 password’’
optimize table 表1,表2…;
//mysql優(yōu)化
load data infile ‘路徑’ into table teacher;
或 mysqlimport school 路徑(如C:/a/b.txt)
//導(dǎo)入
mysqldump –opt school > school_2004_9.sql
//將數(shù)據(jù)庫school中的表全備份到school_2004_9.sql文本文件
mysqldump –opt school teacher student > school_2004_9.sql //僅備份表teacher和student mysqldump –databases school test > school_2004_9.sql
//備份多個數(shù)據(jù)庫
source school_2004_9.sql;
//從備份文件恢復(fù)數(shù)據(jù)
select * from emp limit(2,5);
//查第3到第7號員工的信息
select * from emp order by sal limit 0,5;= select * from emp order by sal limit 5;
mysql_data_seek(resource,int row_number)將指定的結(jié)果標(biāo)識所關(guān)聯(lián)的mysql結(jié)果內(nèi)部的行指針移動到指定的行號。接著用 mysql_fetch_row()將返回那一行,row_num從0開始
if(!($supername==$supervisor)||!($superpass==$superpsw))//如果用戶名和密碼有一個錯
action='$php_self’
//自身執(zhí)行
相對路徑是:../(表示當(dāng)前文件的上一級目錄);../../(表示當(dāng)前文件的上一級目錄的再上一級目錄);./(表是當(dāng)前目錄);/(表示根目錄)
$result=mysql_query(“update vote set $select_result='{$number}',total='{$total}' where id=$id”,$db);//當(dāng)用$select_result表示某個字段(如result1到result9)傳遞$number,值等可用此表示法(當(dāng)字段為變量)
路徑:
$tempdir = str_replace(“",”/“,substr(dirname(__FILE__),0,-6));//這樣做可以避免在虛擬空間站找不到路徑的問題,require $tempdir.”/include/config.inc.php";
解決亂碼
1選定代碼片段
2選定修改----頁面屬性----標(biāo)題/編碼 3選擇編碼類型
4重新載入(這步不能省)
不懂 可直接用教程中文件名直接在百度提問,肯定有人和我學(xué)一樣的東西