LAMP
0、使用include和require命令來包含外部PHP文件。
使用include_once命令,但是include和include_once命令相比的不足就是這兩個命令并不關心請求的文件是否實際存在,如果不存在,PHP解釋器就會直接忽略這個命令并且顯示一個錯誤消息,而程序繼續運行。
解決以上問題的方式就是使用require命令:這個命令當PHP找不到文件時就會直接提示錯誤信息并終止程序運行,最好的解決方法是使用require_once命令,也會只使用這種方式。
一般使用命令來包含插件或者是文件的時候要注意作用域的關系,一般都是在文檔程序的開頭插入,而很少在函數的內部插入。
強烈推薦require_once命令
?
1、區分一個網站是否是動態網站的主要關鍵點是:是否采用了基于數據庫的開發模式。動態網站就是使用戶自主創造,根據用戶的不同選擇來顯式不同的頁面。
2、開發一個動態網站需要的語言及技術:(1)客戶端瀏覽器(2)html(3)css(4)javascript(5)apache(6)php(7)mysql
3、什么是HTML超文本標記語言:想向網站上放東西就選擇HTML,而普通的文本只能使用文本編輯器。
4、CSS用來設置改變頁面布局,美化界面,比如改寫字體、背景、外觀改變,HTML只是把東西放在上面了,還比較亂。
5、JavaScript是用來進行頁面特效的開發,比如滾動、提醒之類的,完成用戶與瀏覽器的交互。
6、Aparch服務器:WEB服務器是用來保存并發布網站的服務器。
7、PHP是后臺腳本編程語言,是服務器端進行業務邏輯的處理工作,相當于掛載到web服務器工作。
8、Mysql數據庫,負責存儲和管理網站數據內容。
9、URL(統一資源定位符)的組成部分:協議(http/ftp/https)+域名(尋找到某個主機)+端口(http默認端口是80,web服務器,存儲發布網站的端口)+某個目錄下的index.html文件+附加資源(eg:?id=10&username=asdh&passworld=dshfds)
?
10、web服務器的原理就是一個請求和響應的模式,當我們在瀏覽器中有一個向服務器發出的請求后,我們的web服務器接收到后就會把它所管理的一個目錄下對應文件直接發回響應給我們的客戶端瀏覽器,瀏覽器把服務器發回來的代碼、資源、文件進行解釋顯示即可。
11、因為我們的Aparch服務器只能管理目錄以及目錄下的相關文件資源,當瀏覽器客戶端進行請求的時候只需要把這些文件回應給瀏覽器,然后由瀏覽器去解釋即可;但是當瀏覽器請求的是.php文件的時候,Aparch服務器是沒有辦法解釋的,這時候就需要使用應用服務器(PHP應用服務器、Asp應用服務器、Jsp應用服務器等);但是這些應用服務器是不能單獨工作的,它像一個外掛一樣依靠Aparch服務器工作,比如我們在Aparch服務器中設定,遇到PHP后綴文件的時候就直接交給PHP應用服務器去完成,而不是直接響應給瀏覽器。所以啟動了Aparch服務器就啟動了PHP應用服務器。只要是服務器端的后臺業務就交給PHP應用服務器處理,處理完成后告訴Aparch服務器,Aparch服務器將處理好的數據再轉換為html/css/javascript代碼響應給瀏覽器解析顯式。
12、我們這里選用Linux+Aparch+Mysql+PHP=LAMP(開發效率高、開源、安全性高、性能穩定、價格成本低、執行靈活、簡易型)
? ? ? ? ? ? ? ? ? ? ? ? ? ? Unix+Tomcat+Oracle+JSP=J2EE
? ? ? ? ? ? ? ? ? ? ? ? ? ? Windows+IIS+SQLserver+ASP=ASP.NET
13、PHP是一種嵌入在html中的腳本語言。html配合css進行布局美化。css是網頁排版,使界面更加友好;JavaScript也可以嵌入到html中的語言,具有交互性網頁設計。html是web頁面的描述性語言。
14、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???HTML基礎
(1)html就是向網頁中添加東西的。超文本就是除了文字外可以添加圖片、表格、文本、鏈接、視頻等元素;所謂標記語言就是標記添加上具體什么東西。html文件的后綴名.html或.htm。每個標簽符號都是一個命令,這個命令告訴瀏覽器怎么去解釋執行顯示。
(2)css就是層疊樣式表,是一種用來表現html樣式的語言,它不能獨立使用,沒有html就沒有css,它用來控制html里面內容的外觀,布局。能夠改變字體大小、背景顏色、文本間距、位置、邊框、列表等,也是用瀏覽器來解釋的。層疊樣式就是指對某一個東西的操作能不斷疊加,既能實現這樣一個功能樣式,也能實現另一個功能樣式,,,,,,多個樣式對一個html標記進行修飾。
(3) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? html語法規則:
0、元素:是一個整體、是一個對象。eg:<a href="www.baidu.com">百度地址</a>,元素也就是說一個完整的標簽。
使用標記來描述元素的,html文檔就是由標記和元素組成的文件。
1、成對標簽(標記):<標記名></標記名>,也成為容器
2、獨立的標簽:<br>
3、標簽中也可以嵌套其他的標記:<tag1><tag2></tag2></tag1>
4、帶屬性的標簽,不同屬性之間用空格隔開:<tag pro="value" pro1="value1"></tag>
5、既帶屬性又帶內容的標簽:<tag pro="value" pro1="value1">content</tag>
注意:在標記中使用:【屬性=屬性值】,多個屬性之間使用空格分開,屬性的值可以使用單引號,雙引號(推薦,標準格式),不加引號三種
屬性的作用:屬性是對標記功能的行為修飾或者說是功能擴展,html中的標記每個屬性幾乎都是可選的。
6、html標記和屬性名都是不區分大小寫的(推薦使用小寫)。
7、html文檔注釋:<!--這是一個注釋--> ? 不能在注釋中再包含注釋,也不能在標記中使用注釋,在注釋掉的標記之后還是一個結構完整的文檔。
8、任何回車和空格在源代碼中都不起作用。使用回車或者空格進行代碼排版。
9、html字符實體:在 HTML 中,某些字符是預留的。在 HTML 中不能使用小于號(<)和大于號(>),這是因為瀏覽器會誤認為它們是標簽。如果希望正確地顯示預留字符,我們必須在 HTML 源代碼中使用字符實體(character entities)。如需顯示小于號,我們必須這樣寫:< 或 <提示:使用實體名而不是數字的好處是,名稱易于記憶。不過壞處是,瀏覽器也許并不支持所有實體名稱(對實體數字的支持卻很好)。

10、html中顏色的設置:設置顏色時可以是顏色的關鍵字(white、red、blue、green、gray、yellow等)或者是RGB(red、green、blue)的數字格式(大部分使用以"#"開頭的十六進制數字組合,顏色數字大概為:255*255*255種顏色)
(4) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?html具體標簽使用
1、html的主體架構:代碼分為3部分編寫:頭標簽head、體標簽body、html標簽
<html> ? ? ?是網頁文件的最外層標記,是html文件的開始點
? ??<head> ?頭標簽里面的內容不會顯式在瀏覽器的窗口中,一般包括頁面的基本描述,整個網頁的公共屬性
?
? ??</head>
?
? ??<body> 體標簽是網頁文件的主體部分,是網頁的正文,比如文字、圖片、鏈接、表單等
?
? ??</body>
</html> ?是html文件的結束點
2、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<head>content</head>;其中頭之間可以放4個標簽:
(1)<title></title>標簽:只能有一個,用來定義網頁的標題,顯示在瀏覽器的標題欄上,有利于搜索引擎(也是在搜索引擎中的標題)
(2)<base/>標簽:只能有一個,基底網址標記,用來設定瀏覽器中資源文件的絕對路徑,網頁中的文件只需要寫下文件的相對路徑即可,這個路徑就是base標簽設定下的路徑
(3)<link>標簽:可以有多個,用來設置外部文件的鏈接標記,用來確定本頁面與其他文檔之間的關系,自動讀取加載相連接的文件
(4)<meat>標簽:可以有多個, META標簽用來描述一個HTML網頁文檔的屬性,例如作者、日期和時間、網頁描述、關鍵詞、頁面刷新等。該標簽有兩種用法:
1)、<meat name="" ? content="">:Name用于在網頁中加入一些關于網頁的描述信息,網頁的關鍵字,網頁描述信息。name屬性不是隨意指定的值,有一些固定的值:eg:Keywords:網頁關鍵字;Description:網頁的描述;Robots:index,noindex,follow,nofollow(是否允許把自己的網頁收錄到搜索引擎的緩存數據庫中或者是否同意別人使用你的網頁尋找其他人的網頁,可以利用這個屬性屏蔽掉一些搜索);author:作者;copyright:版權
eg:
<meta?name="keywords"? ? content="HTML,ASP,PHP,SQL">
<meta?name="description?"?content="網頁的中心思想,網頁是干嘛的">
<meta?name="robots?" ??? ?content="all"> ? ??
2)、<meat http-equiv="" ?content="">:http-equiv用于在html文檔中模擬http協議的響應消息頭,例如告訴瀏覽器是否緩存頁面,使用什么樣的字符集顯示網頁內容,什么時候刷新網頁等。eg:Content-Type:指定整個網頁的類型,字符集格式;Refresh:每隔幾秒刷新或者說刷新完跳轉到哪個頁面、網址;Expires:是否允許頁面緩存;Windows-Target:把自己的頁面占領整個窗體,不允許小窗口頁面放在別人的頁面里
eg:
<meat http-equiv="Content-Type" ?content="text/html; charset=utf-8">
<meat http-equiv="refresh" ?content="3;url=“www.baidu.com”">
<meat http-equiv="expires?" ?content="0"> ? ? //不允許頁面緩存
<meat http-equiv="Windows-Target?" ?content="_top">
(5)<style>樣式標簽:可以利用這個標簽在本文件中加入css樣式控制代碼
(6)</script>標簽:利用該標簽加入js代碼。
3、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?<body>content</body>主體標簽
(1)只要是可以用css樣式控制的就不用html本身的屬性。
(2)通用屬性:id、name、class、style
(3)DTD文件:文檔類型定義
(4)格式標簽:該標簽用于定義網頁中文本的布局、縮進、位置、換行、列表等。
eg:
<br> ? ? ? ? 換行(單獨使用)
<p> ? ? ? ?? 換段(可以成對使用也可以獨立使用,最好是成對使用成為一個元素,這樣就可以使用樣式)
<center> ?居中
<pre> ? ? ? 保留文字在源代碼中的格式
<hr> ? ? ? ? 水平分割線,用于段落之間的分割
<ul><li> ?無序的列表(列表是可以嵌套的)
<ol><li> ?有序的列表(有阿拉伯數字序號、英文字母表順序等)
注意:在標簽中不是所有的屬性都是要給值的,例如bool類型的屬性不需要寫成:noshade=true的形式,直接noshade即可;對于一些屬性值是使用固定值的形式還是使用百分比的形式要取決與你想讓頁面是否隨著你的窗口改變而改變,如果想要隨著窗口大小的改變而改變就使用百分比的形式,反之使用固定值。
(5)文本標簽:該標簽用于在網頁中為了著意強調某一部分文字,或者為了讓文字有所變化
eg:
<hn> ? ? ? ? 其中n為1----6(用來調整字體的大小,h1的字體是最大的)
<b> ? ? ? ? ? 粗體
<i> ? ? ? ? ? ?斜體
<u> ? ? ? ? ?下劃線 ? ? ? ? ? ? ? //b、u、i三個標簽可以嵌套使用
<sub>
<sup>
<font> ? ? ?指定文本字體(宋體、黑體之類的)、顏色、大小等屬性
<tt> ? ? ? ? ?輸出打印機字體
<cite> ? ? ? 輸出引證、舉例的斜體字
<em> ? ? ? ?輸出強調的斜體字
<strong>??輸出強調的粗體字
<small> ? ?輸出小型的字體
<big> ? ? ??輸出大型的字體
(6)超鏈接標簽:該標簽用于鏈接文本或者是其他鏈接資源,有相對URL和絕對URL之分
eg:
<a href="URL">content</a> ?注意:target屬性:target值:_self(在自己窗體里跳轉);_blank(打開一個新的窗體跳轉);_top;name
<a href="URL" ?target="_self">content</a>//在自己窗口打開一個新的鏈接
(7)錨點標簽:<a name ="自定義名稱">內容</a>;使用時<a href="#name">定位位置</a> ? “#”代表本頁面
例如我們在做一個很長的網頁時,需要在頁面內做一個導航,點擊導航里的鏈接不是新開一個窗口或者跳轉到其他網址,而是跳轉到當前頁的某一個位置。那么所要跳轉到的那個位置,我們就叫做錨點,它是一種在頁面內部定位的方式。
?
設置錨點也是很簡單的,例如一個文章分了三段,每段有個標題,標題的代碼是這樣的
<h2>我是標題一</h2>
<h2>我是標題二</h2>
<h2>我是標題三</h2>
?
如果我想要在頁面內設置錨點,做一個索引,點擊相應的索引標題就跳轉到相應的段落,那么就只要在標題所在的html標簽里面設置一個ID,然后鏈接過去即可,可以像下面這樣設置ID:
<h2 id="a">我是標題一</h2>
<h2 id="b">我是標題二</h2>
<h2 id="c">我是標題三</h2>
?
然后在索引里面這樣設置超鏈接就可以實現和錨點的連接了
<a href="#a">點擊我就會跳到第一段</a>
<a href="#b">點擊我就會跳到第二段</a>
?
<a href="#c">點擊我就會跳到第三段</a>
(8)圖像標簽:<img>標簽
eg:<img>標簽
屬性:1、src:指定圖片所在的URL ? ? ?2、border:?指定圖片?邊框的寬度 ? ?3、alt :鼠標放上有黃色小圖標 ;當圖片不存在或者是還沒有加載完的時候會顯式自定義文字;另外搜索引擎可以通過它指定的文字搜索該圖片。?? 4、width:?指定圖片的寬度? 5、height :指定圖片的高度 6、usemap:使用熱點屬性,用于圖像地圖
<img src="logo.jpg">
給圖片加上鏈接:<a href ="www.baidu.com"><img src="logo.gif"></a><br>
(9)圖像地圖標簽:一個圖像只能加一個a標簽,做一個鏈接;如果把一副圖像分成多個區域,每個區域指向不同的URL地址(為一個圖片加上多個鏈接),這種方式就需要先指定熱點;使用map標簽指定熱點區域,然后使用<area>指定圖片中每個URL,使用shape指定形狀:rect、poly、circle
,使用coords確定形狀;使用href指定鏈接的位置;在圖像<img>中使用usemap屬性去使用地圖
eg:<map name="自定義名稱"> ? <img src="" usemap"#自定義名稱">
<map name="mapd">
? ? ?<area shape="rect" coords="3,4,5,5" href="www.baidu.com" target="_blank">
</map>
<img src="logo.gif" usemap="#mapd">
(10)
表格標簽:<table>標簽;align屬性:left,right,center?? ?border屬性:是否有邊線 ? width ?height ?cellspacing:指定格子與格子之間的距離
cellpadding:指定表格中的內容距離格子的距離 ? ? bgcolor:表格背景顏色屬性 ? ?bordercolor:邊線背景顏色
行標簽:<tr>標簽,有幾行就有幾個<tr>標簽;align屬性:left,center,right?
列標簽:<td>標簽
<tr>標簽一定在<table>標簽里,而<td>標簽一定在<tr>標簽里面.
<th>標簽是一個字段標簽(列名),它和<td>標簽的用法一致,但是它的文字是粗體居中顯式,也就是說th標簽往往被用來作為表格的列名。
(11)窗口分幀:一般用在后臺的管理頁面
1、<frameset>標簽:屬性:rows、cols、可以使用固定值、百分比和*三種來計算出頁面的比例大小;frameborder屬性規定是否需要使用邊框的存在
注意:分幀<frameset>?標簽不能和body體及體中的body標簽及內容體共同存在。
eg:
?
//一個frame代表一個窗體
<frameset> | ? |
? | <frameset rows="10%,80%,*"> |
? | <frame src="http://www.baidu.com" ?name="left"> |
? | ? |
? | <frameset cols="10%,*"> |
? | <frame src="http://www.youku.com"?name="left"?> |
? | <frame src="http://www.hao123.com"?name="left"?> |
? | </frameset> |
? | <frame src="http://www.360.com"?name="right"?> |
? | </frameset> |
? | ? |
</frameset> | ? |
2、<frame>標簽? ?屬性:src設置可以鏈接的文本文檔、name別的鏈接target指定值、scrolling:?規定是否在框架中顯示滾動條。值為yes,no,auto;noresize屬性:?規定無法調整框架的大小。
?
3、<a href="" target="left">的target屬性:四個內置的取值:_blank、_parent、_self(默認就是在自己的窗口)和_top
4、<iframe>標簽用在前臺界面中的標簽。該標簽可以放在body體里面。 ? 可以說是瀏覽器中的瀏覽器。
iframe 元素會創建包含另外一個文檔的內聯框架(即行內框架)。
提示:您可以把需要的文本放置在 <iframe> 和 </iframe> 之間,這樣就可以應對無法理解 iframe 的瀏覽器。
iframe標簽是成對出現的,以<iframe>開始,</iframe>結束
iframe標簽內的內容可以做為瀏覽器不支持iframe標簽時顯示
(12)html的表單應用<form></form>標簽。
?
15、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???CSS+DIV基礎
(0)
CSS 概述
- CSS 指層疊樣式表 (Cascading?Style?Sheets)
- 樣式定義如何顯示?HTML 元素
- 樣式通常存儲在樣式表中
- 把樣式添加到 HTML 4.0 中,是為了解決內容與表現分離的問題
- 外部樣式表可以極大提高工作效率
- 外部樣式表通常存儲在?CSS 文件中
- 多個樣式定義可層疊為一
(1)?樣式表允許以多種方式規定樣式信息。樣式可以規定在單個的 HTML 元素中,在 HTML 頁的頭元素中,或在一個外部的 CSS 文件中。甚至可以在同一個 HTML 文檔內部引用多個外部樣式表。
(2)
當同一個 HTML 元素被不止一個樣式定義時,會使用哪個樣式呢?
一般而言,所有的樣式會根據下面的規則層疊于一個新的虛擬樣式表中,其中數字 4 擁有最高的優先權。
- 瀏覽器缺省設置
- 外部樣式表
- 內部樣式表(位于 <head> 標簽內部)
- 內聯樣式(在 HTML 元素內部)
?
因此,內聯樣式(在 HTML 元素內部)擁有最高的優先權,這意味著它將優先于以下的樣式聲明:<head> 標簽中的樣式聲明,外部樣式表中的樣式聲明,或者瀏覽器中的樣式聲明(缺省值)。
(3)CSS基礎語法:

?
?

?
?
(4)CSS高級語法:選擇器的分組及屬性的繼承問題:

?

?
?
(5)CSS的上下文選擇器(派生選擇器)
?
CSS里面通過各種選擇器來定位元素。?CSS里面選擇器有很多種,今天就只想說說 “派生選擇器”。
一聽“派生選擇器”這個名字,我真心做不到見名知義地感覺它是什么選擇器。一看英文名叫“contextual selectors” ,如果直譯就叫“上下文選擇器”。雖然名字不文雅,但是我更偏向這個名字。
contexual selector是通過依據元素在其位置的上下文關系來定義樣式的。
上下文選擇器的情況有三種:后代選擇器,子元素選擇器,相鄰兄弟選擇器。?
?
后代選擇器(descendant selector)
?
eg:
HTML代碼:
????<h1>This is a<em>important</em>heading</h1>
CSS代碼:?
????h1?em {color:red;}
語法規則是 h1 和 em 之間有一個空格。那么這一條CSS代碼就會運用于包含在<h1></h1>標簽內的所有<em>元素。
關于后代選擇器,很重要的一點是第一個參數和第二個參數之間的代數是可以無限的。
eg:
HTML代碼:
<ul>?
? ? <li>
????????<ul>
????????????<li>
????????????????<em>This will be styled.</em>
?????????????</li>
????????</ul>
????</li>
? ? <li>
????????<em>This will be styled too.</em>
????</li>
</ul>
CSS代碼:
ul em{color:red;}
以上css的樣式會運用于HTML代碼中兩處橘色的<em>元素。
?
子選擇器(child selector)?
?子選擇器只會選擇某個元素的直接子元素,而不會擴大到任意的后代元素。
eg:
HTML代碼:
<h1>This is?<strong>This will be styled.</strong>?important.</h1>
<h1>This is <em>really <strong>This will not be styled.</strong></em> important.</h1>
CSS代碼:
h1 > strong {color:red;}
語法規則是h1和strong之間會有一個“>”符號。而這個“>”和前面的h1或者是后面的strong之間的空格都是可有可無的。
?
在以上的例子中,第一行HTML代碼里,<strong>元素是<h1>的子元素,所有h1 > strong這個選擇器會選擇到它。
第二行HTML代碼里,<strong>?不是<h1>的子元素,而是<h1>的孫子,所有h1 > strong這個選擇器不會選擇到它。
?
相鄰兄弟選擇器(Adjacent sibling selector)
相鄰兄弟選擇器會選擇某一元素緊隨其后的元素,但是前提是他們擁有相同的父級。?
eg:
HTML代碼:
<h1>
? ? <h2>This is a heading<h2>
? ? <strong>This will be styled.</strong>
? ? <strong>This will not be styled.</strong>
<h1>
CSS代碼:
h2?+ strong {color:red;}?
?
語法規則是h2和strong之間有一個“+”,“+”和前面的h1或者后面的strong之間的空格都是可有可無的。
在?以上例子中,第一個strong緊鄰著h2并且他們擁有相同的父級(h1),所以h2 + strong會選擇到第一個<strong>而不會選到第二個<strong>.
eg2:
HTML代碼:
<div>?
????<ul> ????
????????<li>List item 1</li>?
????????<li>List item 2</li>?
????????<li>List item 3</li>?
????</ul>?
?????<ol>?
?????????<li>List item 1</li>?
?????????<li>List item 2</li>?
?????????<li>List item 3</li>?
????</ol>?
</div>
CSS代碼:
li + li {color:red;}
在以上的例子中li+li是選擇緊挨著li后面的第一個<li>,所以第一個<li>不會被選擇;而第二個<li>是緊挨著第一個li的,所有會被選擇;第三個<li>是緊挨著第二個<li>的,也會被選擇。
?
?
(6)CSS的ID選擇器:?id 選擇器可以為標有特定 id 的 HTML 元素指定特定的樣式。

?
?

?
?
(7)CSS的類選擇器

?
也就是說當元素基于他們的類而被選擇的時候某一個特定的標簽元素可以選擇不同類中其中一個類的樣式,這對于范圍的選擇是不同的。中間是沒有空格的。
(8)CSS的屬性選擇器

?
(9)CSS的創建

?

?
?
?
? |
?
? |
(10)css的背景屬性:

?
(11)HTML中的DIV標簽:div+css
?

?
?
margin設置外邊距,padding設置內邊距。
?
關于在一個頁面布局中是選用id還是class屬性,id屬性是當只有一次用到該樣式的時候使用,而class屬性是當一類或多次使用到一個屬性的時候用的。
? ?
16、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?JS+jquery基礎
(1)
?
<script> 標簽
如需在 HTML 頁面中插入 JavaScript,請使用 <script> 標簽。
<script> 和 </script> 會告訴 JavaScript 在何處開始和結束。
<script> 和 </script> 之間的代碼行包含了 JavaScript
(2)

?
(3)

?

?
(4)
?
JavaScript 對大小寫敏感。
JavaScript 對大小寫是敏感的。當編寫 JavaScript 語句時,請留意是否關閉大小寫切換鍵。函數 getElementById 與 getElementbyID 是不同的。同樣,變量 myVariable 與 MyVariable 也是不同的。
提示:JavaScript 是腳本語言。瀏覽器會在讀取代碼時,逐行地執行腳本代碼。而對于傳統編程來說,會在執行前對所有代碼進行編譯。
(5)
JavaScript 變量
與代數一樣,JavaScript 變量可用于存放值(比如 x=2)和表達式(比如 z=x+y)。
變量可以使用短名稱(比如 x 和 y),也可以使用描述性更好的名稱(比如 age, sum, totalvolume)。
- 變量必須以字母開頭
- 變量也能以 $ 和 _ 符號開頭(不過我們不推薦這么做)
- 變量名稱對大小寫敏感(y 和 Y 是不同的變量)
提示:JavaScript 語句和 JavaScript 變量都對大小寫敏感。
JavaScript 數據類型
JavaScript 變量還能保存其他數據類型,比如文本值 (name="Bill Gates")。
在 JavaScript 中,類似 "Bill Gates" 這樣一條文本被稱為字符串。
JavaScript 變量有很多種類型,但是現在,我們只關注數字和字符串。
當您向變量分配文本值時,應該用雙引號或單引號包圍這個值。
當您向變量賦的值是數值時,不要使用引號。如果您用引號包圍數值,該值會被作為文本來處理。
例子:
var?pi=3.14;
var?name="Bill?Gates";
var?answer='Yes?I?am!';
(5)
?
JavaScript 數組
下面的代碼創建名為 cars 的數組:
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
或者 (condensed array):
var cars=new Array("Audi","BMW","Volvo");
或者 (literal array):
實例
var?cars=["Audi","BMW","Volvo"];
(6)

?
(7)

?
(8)
JavaScript 中的所有事物都是對象:字符串、數字、數組、日期,等等。
在 JavaScript 中,對象是擁有屬性和方法的數據。
屬性和方法
屬性是與對象相關的值。
方法是能夠在對象上執行的動作。

?
(9)
?
對字符串和數字進行加法運算
請看這些例子:x=5+5;
document.write(x);
x="5"+"5";
document.write(x);
x=5+"5";
document.write(x);
x="5"+5;
document.write(x);
規則是:
如果把數字與字符串相加,結果將成為字符串。
(10)JavaScript錯誤:throw、try和catch
?
?
?
?
?
?
?
?
(11)JavaScript的表單驗證:
JavaScript 可用來在數據被送往服務器前對 HTML 表單中的這些輸入數據進行驗證。
?
JavaScript 表單驗證
JavaScript 可用來在數據被送往服務器前對 HTML 表單中的這些輸入數據進行驗證。
被 JavaScript 驗證的這些典型的表單數據有:
- 用戶是否已填寫表單中的必填項目?
- 用戶輸入的郵件地址是否合法?
- 用戶是否已輸入合法的日期?
- 用戶是否在數據域 (numeric field) 中輸入了文本?
必填(或必選)項目
下面的函數用來檢查用戶是否已填寫表單中的必填(或必選)項目。假如必填或必選項為空,那么警告框會彈出,并且函數的返回值為 false,否則函數的返回值則為 true(意味著數據沒有問題):
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false}
else {return true}
}
}
下面是連同 HTML 表單的代碼:
<html>
<head>
<script type="text/javascript">
function validate_required(field,alerttxt)
{
with (field)
{
if (value==null||value=="")
{alert(alerttxt);return false}
else {return true}
}
}
?
function validate_form(thisform)
{
with (thisform)
{
if (validate_required(email,"Email must be filled out!")==false)
{email.focus();return false}
}
}
</script>
</head>
?
<body>
<form action="submitpage.htm" οnsubmit="return validate_form(this)" method="post">
Email: <input type="text" name="email" size="30">
<input type="submit" value="Submit">
</form>
</body>
?
</html>
E-mail 驗證
下面的函數檢查輸入的數據是否符合電子郵件地址的基本語法。
意思就是說,輸入的數據必須包含 @ 符號和點號(.)。同時,@ 不可以是郵件地址的首字符,并且 @ 之后需有至少一個點號:
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false}
else {return true}
}
}
下面是連同 HTML 表單的完整代碼:
<html>
<head>
<script?type="text/javascript">
function?validate_email(field,alerttxt)
{
with?(field)
{
apos=value.indexOf("@")
dotpos=value.lastIndexOf(".")
if?(apos<1||dotpos-apos<2)?
? {alert(alerttxt);return?false}
else?{return?true}
}
}
?
function?validate_form(thisform)
{
with?(thisform)
{
if?(validate_email(email,"Not?a?valid?e-mail?address!")==false)
? {email.focus();return?false}
}
}
</script>
</head>
?
<body>
<form?action="submitpage.htm"οnsubmit="return?validate_form(this);"?method="post">
Email:?<input?type="text"?name="email"?size="30">
<input?type="submit"?value="Submit">?
</form>
</body>
?
</html>
(12)?絕不要使用在文檔加載之后使用 document.write()。這會覆蓋該文檔。
?
?
16、 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??PHP基礎
(1)PHP在web開發中的應用:1、收集表單數據 ? 2、生成動態網頁 ?3、字符串處理 ?4、動態輸出圖像 ?5、服務器端文件系統操作 6、編寫數據庫支持的網頁 ?7、會話跟蹤控制 8、處理XML文件 ?9、支持利用大量的網絡協議 ?10、服務器端的其他相關操作
(2)PHP配置文件所在位置:D:\phpStudy\php54n\php.ini
(3)第一個PHP程序:
<?php
phpinfo(); ? ?//該函數用來看一下配置環境內容
(4)PHP中可以使用系統關鍵字作為變量名。PHP變量和常量區分大小寫,但是函數名以及其他關鍵字是不區分大小寫的。
(5)PHP中變量的類型:PHP是弱類型的語言。PHP中共有8種類型:
4種標量:整型: ? ? ?int ?integer ?
? ? ? ? ? ? ? ? 布爾型: ?bool ? boolean
? ? ? ? ? ? ? ? 浮點型: ?float double real
? ? ? ? ? ? ? ? 字符串: ?string
2種符合類型:數組:array
? ? ? ? ? ? ? ? ? ? ? 對象:object
2種特殊類型:資源類型:resource
? ? ? ? ? ? ? ? ? ? ? ?空類型: ? null
?
(6)數據類型之間的相互轉換:
1、強制類型轉換:setType(變量,類型);//類型是數據類型,成功返回真,失敗返回假,這個函數是將原變量的類型進行改變
2、在賦值前使用(類型)的形式,不會改變原變量的類型。
3、系統自動類型轉換
與類型轉換有關的一些函數:
$變量=intval(變量或值);
$變量=floatval(變量或值);
$變量=stringval(變量或值);
?
與變量和類型有關的一些常用函數:
isset(); ? ? ? ? ?//判斷一個變量是否存在
empty(); ? ? ?//判斷一個變量的數據是否為空
unset(); ? ? ? //刪除一個變量
setType(); ? //設置變量類型
getType(); ?//得到變量類型 ? ?var_dump();//既能夠得到數據類型,也能夠得到數據
?
(7)常量:
1、常量是一個簡單值的標識符
2、常量定義后不能再改變它的值,也不能使用unset()取消。
3、常量可以不用理會變量范圍的規則而在任何地方都能夠定義和訪問,也就是說常量的作用域范圍要比變量大。
4、常量使用define(”常量名“,值)的方式定義和聲明。
5、常量名稱和習慣都使用大寫
6、常量不管在什么時候都不使用"$"符號
7、常量一定要在聲明的時候就給他值
8、defined(”常量名“); ? //判斷常量是否存在
(8)PHP中的運算符:
===全等于,比較時不僅要求內容相同,也要求類型相同。
!==全不等于,比較時不僅要求內容不相同,也要求類型不相同。
& 和 | 既可以作為邏輯運算符,又可以作為位運算符。它與 && 和 ?|| 的區別就是短路問題,&&在作運算時,如果前面的數是false,則無論后面是否為true,整個表達式都是false;而& 和 | 在運算時兩邊都會執行。
(9)PHP面向對象(OOP):
面向對象和面向過程之間的區別:
面向過程的最小單位:函數
面向對象的最小單位:對象
(10)類的聲明:一個類就是將來實例化某個對象的基本。
1】你要開發的是什么?確定寫什么類。
2】格式:
【修飾類的關鍵字】 ?class 類名
{
成員(包括成員變量和成員方法)
}
注意:一個文件只保存一個類,文件名中包含類名 ? eg: ?類名.class.php?? 這種起名方式也可以方便于自動加載
類名每個單詞的首字母都要大寫AaBbCc;常量所有字母都是大寫AABBCC;函數和變量使用駝峰式起名aaBbCc。總之聲明要有意義。
(11)PHP的類中成員變量的聲明一定要加訪問修飾符
(12)在類中修飾成員屬性的時候前面一定要有修飾詞。eg:【public private protected const var static ?.......】$daXiao = 54;當不知道要具體用哪個的時候就使用var或者public.
(13)只有對象在內存中才會有存儲空間,對象需要被一個類來實例化。
對象需要通過類來進行實例化,使用new關鍵字新建一個對象;格式為: ? $對象引用=new ?類名;只要有一個new關鍵字就是創建一個對象,創建一個對象就會在內存(堆內存)中分配一個空間。
(14)對象的實例化: ? $a=new ?Person;對于這一條語句而言,右邊是一個對象,一個對象會在堆內存中開辟一個空間,然后把這個對象的首地址賦給左邊的變量,左邊的變量是在棧內存中存儲的,也就是每個對象的引用句柄。

?
?
對象的使用:對象中的成員必須通過對象的引用來訪問,格式:對象->成員;對象->成員屬性/成員方法。eg: ? $p1->name="wyc";$p2->eat();//注意name前面沒有$符號
(15)在對象中的方法中默認都會有一個$this關鍵字,這個關鍵字代表調用這個方法的對象。也就是說this關鍵字代表第一人稱:我。
(16)構造方法和析構方法:
構造方法也稱為構造器:它是一個對象創建完成以后,“”第一個“”“”自動調用“”的方法。
構造方法的定義格式:
在PHP4中:function ? ? ? 類方法名
在PHP5中:選擇使用魔術方法 ?__construct();所有類中聲明構造方法都使用這個名稱。優點就是當類名發生改變時,構造方法名稱不會改變。
構造方法的作用:為成員屬性進行初始化
魔術方法:
?* ? 在類中寫出了某個魔術方法, 這個方法對象的功能 就會添加上
?*?? ?方法名稱都固定的(都是系統給我們提供好),沒有自己定義的,
?* ??每一個魔術方法, 都是在不同時刻為了完成某一功能自動調用的方法
?* ? 不同的魔術方法有不同調用 時機
?* ??都是以 __開頭的方法
?*
?*? ? ? ? ? ? __construct();
?*? ? ? ? ? ? __destruct();
?*
?*? ? ? ? ? ? __set();
?*? ? ? ? ? ? __get();
?*? ? ? ? ? ? __isset();
?*? ? ? ? ? ? __unset();
?*
?*? ? ? ? ? ? __clone();
?*
?*? ? ? ? ? ? __call();
?*
?*? ? ? ? ? ? __sleep();
?*
?*? ? ? ? ? ? __weakup();
?*
?*? ? ? ? ? ? __toString()
?*
?*? ? ? ? ? ? ...
?*
?*? ? ? ? ? ? ? __autoload();
?* ?
析構方法:
1. 當對象被釋放之前最后一個 “自動”調用的方法
2.使用垃圾回收器(java PHP)而C++是需要手動的釋放,當引用變量與對象之間的鏈接線斷了之后就會回收。
3.作用:關閉一些資源, 作一些清理的工作
4.格式:__destruct(); ? 注意這個釋放順序是:先進后出(引用在棧內存中存放)
(17)PHP封裝性:
?
/*
?*? 封裝性: 面向對象的三大特性之一
?*
?* 1. 就是把對象的成員(屬性,方法)結合成一個獨立的相同單位,并盡可能隱藏對象的內部細節
?*?public? protected?
?*?private 私有的, 用這個關鍵字修飾的成員,只能在對象內部訪問(只有用$this訪問),不能在對象外部使用
?*?屬性可以封裝:
?*? ? ? ? ? ?只要一個變量,需要在多個方法使用,就將這個方法聲明為成員屬性,可以直接在這個對象中的所有方法中使用 ,我稱它為全局成員變量
?*
?*? ? ? ? ? ?成員屬性,就相當于這個對象中的全局變量
?*
?*? ? ? ? ? ?成員屬性都會在方法中使用, 成員屬性值的變化其實就是在改變方法的執行行為, 也就是改變了對象的功能
?*
- ? ? ? ? ? ? 成員屬性的值如果不正常, 方法執行的功能也就不正常 了
?*
?*? ? ? ? ?450ma--650mA --- 5A
?*
?*? ? ? ? ?3.8--4.2V? ---? 220v
?*
?*? ? ? ? 作用:不需要在對象外部改變或讀取它的值
?*
?*? ? ? ? ? ? 1. 封裝
?*
?*? ? ? ? ? ? 再提供一個公有的方法(經過方法對象成員屬性進行賦值和取值就可以控制)
?*? ?方法也可以封裝:
?*
?*? ? ? ?作用:
?*? ? ? ? ? ?1. 使用private修飾使用其只能在內部使用
?*? ? ? ? 2. 一個類中有100個方法, 封裝了95個(為另外的5個服務的方法), 只有5個方法可以使用
?*? ? ? ? ?
?*? ? ?
?*? ? ? 100成員屬性,都讓取值,值都不可以改值
?*
?*? ? ? 和封裝有關的魔術方法:
?*
?*? ? ? ?__set():是直接設置成員屬性值時,自動調用的方法
?*? ? ? ?__get():是直接獲取成員屬性值時,自動調用的方法
?*? ? ? ?__isset();
?*? ? ? ?__unset();
?*/
(18)PHP繼承性:
/*
?* 繼承性:
?*? ? ?1. 也是面向對象的三大特性之一
?*? ? ?2. 開放性、可擴充性
?*? ? ?3. 增加代碼的重用性
?*? ? ?4. 提高了軟件的可維護性
?*
?*? ? ? 5. 繼承就是用子類去”擴展“父類
?*
?*? ? ? 6. 鳥--- 磚頭
?*
?*? ? ? C++ 屬于多繼承, 同一個類可以有多個父類
?*
?*? ? ? PHP和Java屬于單繼承, 同一個類只能有一個父類
?*
?*? ? ? 不管多繼承的還是單繼承的都可以有多個子類
?*
?*? ? ? 只要你在設計兩個類時,有可以共享的成員,就將可以共享的內容拿出來,單獨作為一個基類使用
?*
?*? ? ? 父類--基類
?*? ? ? 子類--派生類
?
?*? ? ?作用:
?*
?*
?* 一、類繼承的應用
?*
?*? ? ?1.? ? ?聲明一個子類,使用 extends 關鍵字 去繼承(擴展)一個父類
?*
?*? ? ?2.? 子類可以從父類,繼承所有的內容,包括成員屬性,成員方法, 構造方法 ..., 在子類中都可以直接使用
?*
?*? ? ?3. 父之間的層次關系設計好
?*
?* 二、訪問類型控制
?*? ? ?雖然子類可以從父類中繼承所有內容,但private的成員, 只能在本類中使用, 子類中也不能使用
?*
?*? ? ?封裝時,即可以讓自己類的內部可以訪問,也讓子類可以用,但類的外部不能使用, private --> protected
?*
?* 三、子類中重載父類的方法
?*
?*? ?1. 子類可以聲明和父類相同的方法名,即子類覆蓋了父類中同名的方法
?*
?*? ?鳥類---鴕鳥(飛方法), 在鴕鳥類中將 “飛的方法改寫”
?*
?*? ?子類的方法對父方法的擴展
?*
?*? ?在子類中 調用 父類中 被覆蓋的方法?
?*? ?
?*? ? 對象->成員? 類::成員
?*
?*? ? ? ?父類名::方法名()
?*? ? ? ?parent::方法名()
?*
?*
?*? ?在子類中編寫構造方法,如果父中也有構造方法一定要去調用一次父類中被覆蓋的那個構造方法
?*
?*? ?注意: 子類中重載的方法,不能低于父類中訪問權限, (子類可以訪大權限,但不能縮小權限)
?*
?*/
代碼示例:
class Person1 {
? ? protected $name;
? ? protected $age;
? ? protected $sex;
?
? ? function __construct($name, $age, $sex){
? ? ? ? $this->name=$name;
? ? ? ? $this->sex=$sex;
? ? ? ? $this->age=$age;
?
? ? ? ? echo "###################<br>";
? ? }
?
?
? ? protected function say(){
? ? ? ? echo "我的名-{$this->name}:,我的年齡:{$this->age},我的性別:{$this->sex}.<br>";
? ? }
?
? ? ?function eat(){
? ? ? ? echo "wwwwwwwwwwwwwwww";
? ? }
?
? ? function run(){
?
? ? }
? }
?
? class Student extends Person1 {
? ? ? var $school;
? ? function __construct($name, $age, $sex, $school){
? ? ? ? parent::__construct($name, $age, $sex);
? ? ? ? $this->school=$school;
? ? }
? ? function study(){
? ? ? ? echo "{$this->name}在學習.<br>";
?
? ? ? ? $this->eat();
? ? }
?
? ? public function say(){
? ? ? ? parent::say();
? ? ? ? echo "我所在的學校{$this->school}<br>";
? ? }
?
? }
?
? $s=new Student("lisi", 20, "男", "QingHua");
方法重載:就是在同一個類中,方法的名字相同,但參數個數、參數的類型或返回值類型不同!
方法重寫:它是指子類和父類的關系,子類重寫了父類的方法,但方法名、參數類型、參數個數必須相同!
-----------------------------------------------------------------------------------------------------------------------------------------------------------
(18)PHP與web頁面的交互
1、表單與PHP:數據從web表單(form)發送到PHP代碼,經過處理再生成HTML輸出。
2、傳遞數據的兩種方法:post和get兩種, ? <form action="url" method="post/get">
3、post和get的區別和聯系:

?
(19)PHP中字符串的處理函數(30%)
(20)PHP中數組的處理(20%)
(21)PHP中正則表達式對字符串的處理
?
?
?
?
?
(22)PHP中的文件與目錄操作合集
1、打開文件fopen(),關閉文件fclose()函數
2、常見的目錄操作函數:
string getcwd(void) ?//主要用來獲取當前的工作目錄,返回的是字符串
chdir(string directory) ?//將PHP的當前目錄改為directory目錄
scandir()//獲取當前工作目錄中的文件和目錄,以數組形式返回
opendir(string path) ?//返回一個目錄句柄
closedir(resource dir_handle)//主要用來關閉一個目錄流
readdir(resource dir_handle)//返回目錄中下一個文件的文件名。文件名以在文件系統中的排序返回
遍歷目錄的方法:
$handle=opendir('d:/ch12');
while(false !== ($file = readdir($handle)))
{
?echo "$file\n";
}
closedir($handle);
3、文件的上傳
(23)PHP操作MySQL數據庫
代碼示例:
htmlform.html文件
<html>
<head>
? ? <title>操作數據庫</title>
</head>
<body>
?
<form action="formhandler.php" method="post">
Fill user name:
<input name="username" type="text"? size="20" /><br />
<input name="submit"? ?type="submit"? value="Find" />
</form>
</body>
</html>
?
formhandler.php文件:
<?php
$username = $_POST['username'];
if(!$username)
{
echo "Error: There is no data founded";
exit;
}
echo "hello1"."<br />";
if(!get_magic_quotes_gpc())? ? ?//獲取當前 magic_quotes_gpc 的配置選項設置
{
? ? $username = addslashes($username);? //返回轉義后的字符。
}
echo "hello2"."<br />";
@$db=mysqli_connect('localhost','root','root','wyc');
if(mysqli_connect_errno())
{
? ? ?echo "Error: could not connect to mysql database";
? ? ?exit;
}
echo "hello3"."<br />";
$q="SELECT? * FROM? user WHERE name='".$username."' ";
$result=mysqli_query($db,$q);? ?//使用mysqli_query函數來執行SQL語句
echo "hello4"."<br />";
//使用mysqli_num_rows函數來獲取查詢結果集中的記錄數
$rownum=mysqli_num_rows($result);
echo "hello5"."<br />";
for($i=0;$i<$rownum;$i++)
?
//使用mysqli_fetch_assoc函數從數組結果集中獲取信息
$row=mysqli_fetch_assoc($result);
echo "hello world!"."<br >";
echo "Id:".$row['id']."<br />";
echo "Name:".$row['name']."<br />";
echo "Age:".$row['age']."<br />";
echo "Info:".$row['info']."<br />";
?
}
//使用該函數釋放了SQL請求所返回的對象$result所占用的資源
mysqli_free_result($result);
?
//關閉數據庫連接對象
mysqli_close($db);
??>
?
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?MYSQL數據庫基礎
1、一個成功的網站系統由50%的業務+50%的軟件構成,50%的軟件包含25%的數據庫+25%的程序代碼,所以足以表明數據庫設計的重要性。
2、數據庫的備份:

?
?

?
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??ThinkPhp框架學習
1、在TPL文件夾下建立的文件夾的叫做模版,在模版文件夾下建立的文件叫做模版文件,模版文件和模塊下的方法名一致;模版名和Action文件夾下建立的類名一致,這里的每一個類文件就是一個模塊。$this->display().
2、網站項目開發步驟:(1)原型功能設計(頁面設計、頁面跳轉的邏輯設計、功能總結歸納為某一個模塊)(2)數據庫設計(歸納總結數據庫表,哪些需要入庫,哪些可以歸納到一起,哪些是有關聯的,最后歸納數據庫表之間的關系:一對多還是一對一還是其他之類,對于一對多的關系,外鍵往往在多的那邊)(3)項目目錄結構搭建(4)實際編碼(5)測試
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?