(58)PHP開發

LAMP
0、使用include和require命令來包含外部PHP文件。
使用include_once命令,可是include和include_once命令相比的不足就是這兩個命令並不關心請求的文件是否實際存在,若是不存在,PHP解釋器就會直接忽略這個命令而且顯示一個錯誤消息,而程序繼續運行。
解決以上問題的方式就是使用require命令:這個命令當PHP找不到文件時就會直接提示錯誤信息並終止程序運行,最好的解決方法是使用require_once命令,也會只使用這種方式。
通常使用命令來包含插件或者是文件的時候要注意做用域的關係,通常都是在文檔程序的開頭插入,而不多在函數的內部插入。
強烈推薦require_once命令
 
一、區分一個網站是不是動態網站的主要關鍵點是:是否採用了基於數據庫的開發模式。動態網站就是使用戶自主創造,根據用戶的不一樣選擇來顯式不一樣的頁面。
二、開發一個動態網站須要的語言及技術:(1)客戶端瀏覽器(2)html(3)css(4)javascript(5)apache(6)php(7)mysql
三、什麼是HTML超文本標記語言:想向網站上放東西就選擇HTML,而普通的文本只能使用文本編輯器。
四、CSS用來設置改變頁面佈局,美化界面,好比改寫字體、背景、外觀改變,HTML只是把東西放在上面了,還比較亂。
五、JavaScript是用來進行頁面特效的開發,好比滾動、提醒之類的,完成用戶與瀏覽器的交互。
六、Aparch服務器:WEB服務器是用來保存併發佈網站的服務器。
七、PHP是後臺腳本編程語言,是服務器端進行業務邏輯的處理工做,至關於掛載到web服務器工做。
八、Mysql數據庫,負責存儲和管理網站數據內容。
九、URL(統一資源定位符)的組成部分:協議(http/ftp/https)+域名(尋找到某個主機)+端口(http默認端口是80,web服務器,存儲發佈網站的端口)+某個目錄下的index.html文件+附加資源(eg:?id=10&username=asdh&passworld=dshfds)

 

十、web服務器的原理就是一個請求和響應的模式,當咱們在瀏覽器中有一個向服務器發出的請求後,咱們的web服務器接收到後就會把它所管理的一個目錄下對應文件直接發回響應給咱們的客戶端瀏覽器,瀏覽器把服務器發回來的代碼、資源、文件進行解釋顯示便可。
十一、由於咱們的Aparch服務器只能管理目錄以及目錄下的相關文件資源,當瀏覽器客戶端進行請求的時候只須要把這些文件迴應給瀏覽器,而後由瀏覽器去解釋便可;可是當瀏覽器請求的是.php文件的時候,Aparch服務器是沒有辦法解釋的,這時候就須要使用應用服務器(PHP應用服務器、Asp應用服務器、Jsp應用服務器等);可是這些應用服務器是不能單獨工做的,它像一個外掛同樣依靠Aparch服務器工做,好比咱們在Aparch服務器中設定,遇到PHP後綴文件的時候就直接交給PHP應用服務器去完成,而不是直接響應給瀏覽器。因此啓動了Aparch服務器就啓動了PHP應用服務器。只要是服務器端的後臺業務就交給PHP應用服務器處理,處理完成後告訴Aparch服務器,Aparch服務器將處理好的數據再轉換爲html/css/javascript代碼響應給瀏覽器解析顯式。
十二、咱們這裏選用Linux+Aparch+Mysql+PHP=LAMP(開發效率高、開源、安全性高、性能穩定、價格成本低、執行靈活、簡易型)
                            Unix+Tomcat+Oracle+JSP=J2EE
                            Windows+IIS+SQLserver+ASP=ASP.NET
1三、PHP是一種嵌入在html中的腳本語言。html配合css進行佈局美化。css是網頁排版,使界面更加友好;JavaScript也能夠嵌入到html中的語言,具備交互性網頁設計。html是web頁面的描述性語言。
1四、                                                                                  HTML基礎
(1)html就是向網頁中添加東西的。超文本就是除了文字外能夠添加圖片、表格、文本、連接、視頻等元素;所謂標記語言就是標記添加上具體什麼東西。html文件的後綴名.html或.htm。每一個標籤符號都是一個命令,這個命令告訴瀏覽器怎麼去解釋執行顯示。
(2)css就是層疊樣式表,是一種用來表現html樣式的語言,它不能獨立使用,沒有html就沒有css,它用來控制html裏面內容的外觀,佈局。可以改變字體大小、背景顏色、文本間距、位置、邊框、列表等,也是用瀏覽器來解釋的。層疊樣式就是指對某一個東西的操做能不斷疊加,既能實現這樣一個功能樣式,也能實現另外一個功能樣式,,,,,,多個樣式對一個html標記進行修飾。
(3)                                                                         html語法規則:
0、元素:是一個總體、是一個對象。eg:<a href="www.baidu.com">百度地址</a>,元素也就是說一個完整的標籤。
使用標記來描述元素的,html文檔就是由標記和元素組成的文件。
一、成對標籤(標記):<標記名></標記名>,也成爲容器
二、獨立的標籤:<br>
三、標籤中也能夠嵌套其餘的標記:<tag1><tag2></tag2></tag1>
四、帶屬性的標籤,不一樣屬性之間用空格隔開:<tag pro="value" pro1="value1"></tag>
五、既帶屬性又帶內容的標籤:<tag pro="value" pro1="value1">content</tag>
注意:在標記中使用:【屬性=屬性值】,多個屬性之間使用空格分開,屬性的值可使用單引號,雙引號(推薦,標準格式),不加引號三種
屬性的做用:屬性是對標記功能的行爲修飾或者說是功能擴展,html中的標記每一個屬性幾乎都是可選的。
六、html標記和屬性名都是不區分大小寫的(推薦使用小寫)。
七、html文檔註釋:<!--這是一個註釋-->   不能在註釋中再包含註釋,也不能在標記中使用註釋,在註釋掉的標記以後仍是一個結構完整的文檔。
八、任何回車和空格在源代碼中都不起做用。使用回車或者空格進行代碼排版。
九、html字符實體:在 HTML 中,某些字符是預留的。在 HTML 中不能使用小於號(<)和大於號(>),這是由於瀏覽器會誤認爲它們是標籤。若是但願正確地顯示預留字符,咱們必須在 HTML 源代碼中使用字符實體(character entities)。如需顯示小於號,咱們必須這樣寫:&lt; 或 &#60;提示:使用實體名而不是數字的好處是,名稱易於記憶。不過壞處是,瀏覽器也許並不支持全部實體名稱(對實體數字的支持卻很好)。
十、html中顏色的設置:設置顏色時能夠是顏色的關鍵字(white、red、blue、green、gray、yellow等)或者是RGB(red、green、blue)的數字格式(大部分使用以"#"開頭的十六進制數字組合,顏色數字大概爲:255*255*255種顏色)
(4)                                                                          html具體標籤使用
一、html的主體架構:代碼分爲3部分編寫:頭標籤head、體標籤body、html標籤
<html>      是網頁文件的最外層標記,是html文件的開始點
    <head>  頭標籤裏面的內容不會顯式在瀏覽器的窗口中,通常包括頁面的基本描述,整個網頁的公共屬性
 
    </head>
 
    <body> 體標籤是網頁文件的主體部分,是網頁的正文,好比文字、圖片、連接、表單等
 
    </body>
</html>  是html文件的結束點
二、                                                    <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代碼。
三、                                                                  <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>標籤
屬性:一、src:指定圖片所在的URL      二、border: 指定圖片 邊框的寬度    三、alt :鼠標放上有黃色小圖標 ;當圖片不存在或者是尚未加載完的時候會顯式自定義文字;另外搜索引擎能夠經過它指定的文字搜索該圖片。   四、width: 指定圖片的寬度  五、height :指定圖片的高度 六、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)窗口分幀:通常用在後臺的管理頁面
一、<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>
 
二、<frame>標籤   屬性:src設置能夠連接的文本文檔、name別的連接target指定值、scrolling: 規定是否在框架中顯示滾動條。值爲yes,no,auto;noresize屬性: 規定沒法調整框架的大小。
 
三、<a href="" target="left">的target屬性:四個內置的取值:_blank、_parent、_self(默認就是在本身的窗口)和_top
四、<iframe>標籤用在前臺界面中的標籤。該標籤能夠放在body體裏面。   能夠說是瀏覽器中的瀏覽器。
iframe 元素會建立包含另一個文檔的內聯框架(即行內框架)。
提示:您能夠把須要的文本放置在 <iframe> 和 </iframe> 之間,這樣就能夠應對沒法理解 iframe 的瀏覽器。
iframe標籤是成對出現的,以<iframe>開始,</iframe>結束
iframe標籤內的內容能夠作爲瀏覽器不支持iframe標籤時顯示
(12)html的表單應用<form></form>標籤。
 
1五、                                                                                    CSS+DIV基礎
(0)

CSS 概述

  • CSS 指層疊樣式表 (Cascading Style Sheets)
  • 樣式定義如何顯示 HTML 元素
  • 樣式一般存儲在樣式表中
  • 把樣式添加到 HTML 4.0 中,是爲了解決內容與表現分離的問題
  • 外部樣式表能夠極大提升工做效率
  • 外部樣式表一般存儲在 CSS 文件中
  • 多個樣式定義可層疊爲一
(1) 樣式表容許以多種方式規定樣式信息。樣式能夠規定在單個的 HTML 元素中,在 HTML 頁的頭元素中,或在一個外部的 CSS 文件中。甚至能夠在同一個 HTML 文檔內部引用多個外部樣式表。
(2)
當同一個 HTML 元素被不止一個樣式定義時,會使用哪一個樣式呢?
通常而言,全部的樣式會根據下面的規則層疊於一個新的虛擬樣式表中,其中數字 4 擁有最高的優先權。
  1. 瀏覽器缺省設置
  2. 外部樣式表
  3. 內部樣式表(位於 <head> 標籤內部)
  4. 內聯樣式(在 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屬性是當一類或屢次使用到一個屬性的時候用的。
   
1六、                                                                                            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" onsubmit="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"onsubmit="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()。這會覆蓋該文檔。
 
 
1六、                                                                                   PHP基礎
(1)PHP在web開發中的應用:一、收集表單數據   二、生成動態網頁  三、字符串處理  四、動態輸出圖像  五、服務器端文件系統操做 六、編寫數據庫支持的網頁  七、會話跟蹤控制 八、處理XML文件  九、支持利用大量的網絡協議  十、服務器端的其餘相關操做
(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)數據類型之間的相互轉換:
一、強制類型轉換:setType(變量,類型);//類型是數據類型,成功返回真,失敗返回假,這個函數是將原變量的類型進行改變
二、在賦值前使用(類型)的形式,不會改變原變量的類型。
三、系統自動類型轉換
與類型轉換有關的一些函數:
$變量=intval(變量或值);
$變量=floatval(變量或值);
$變量=stringval(變量或值);
 
與變量和類型有關的一些經常使用函數:
isset();          //判斷一個變量是否存在
empty();      //判斷一個變量的數據是否爲空
unset();       //刪除一個變量
setType();   //設置變量類型
getType();  //獲得變量類型    var_dump();//既可以獲得數據類型,也可以獲得數據
 
(7)常量:
一、常量是一個簡單值的標識符
二、常量定義後不能再改變它的值,也不能使用unset()取消。
三、常量能夠不用理會變量範圍的規則而在任何地方都可以定義和訪問,也就是說常量的做用域範圍要比變量大。
四、常量使用define(」常量名「,值)的方式定義和聲明。
五、常量名稱和習慣都使用大寫
六、常量無論在何時都不使用"$"符號
七、常量必定要在聲明的時候就給他值
八、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、類繼承的應用
 *
 *     1.     聲明一個子類,使用 extends 關鍵字 去繼承(擴展)一個父類
 *
 *     2.  子類能夠從父類,繼承全部的內容,包括成員屬性,成員方法, 構造方法 ..., 在子類中均可以直接使用
 *
 *     3. 父之間的層次關係設計好
 *
 * 2、訪問類型控制
 *     雖然子類能夠從父類中繼承全部內容,但private的成員, 只能在本類中使用, 子類中也不能使用
 *
 *     封裝時,便可以讓本身類的內部能夠訪問,也讓子類能夠用,但類的外部不能使用, private --> protected
 *
 * 3、子類中重載父類的方法
 *
 *   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頁面的交互
一、表單與PHP:數據從web表單(form)發送到PHP代碼,通過處理再生成HTML輸出。
二、傳遞數據的兩種方法:post和get兩種,   <form action="url" method="post/get">
三、post和get的區別和聯繫:

 

(19)PHP中字符串的處理函數(30%)
(20)PHP中數組的處理(20%)
(21)PHP中正則表達式對字符串的處理
 
 
 
 
 
(22)PHP中的文件與目錄操做合集
一、打開文件fopen(),關閉文件fclose()函數
二、常見的目錄操做函數:
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);
三、文件的上傳
(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數據庫基礎
一、一個成功的網站系統由50%的業務+50%的軟件構成,50%的軟件包含25%的數據庫+25%的程序代碼,因此足以代表數據庫設計的重要性。
二、數據庫的備份:

 

 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                      ThinkPhp框架學習
一、在TPL文件夾下創建的文件夾的叫作模版,在模版文件夾下創建的文件叫作模版文件,模版文件和模塊下的方法名一致;模版名和Action文件夾下創建的類名一致,這裏的每個類文件就是一個模塊。$this->display().
二、網站項目開發步驟:(1)原型功能設計(頁面設計、頁面跳轉的邏輯設計、功能總結概括爲某一個模塊)(2)數據庫設計(概括總結數據庫表,哪些須要入庫,哪些能夠概括到一塊兒,哪些是有關聯的,最後概括數據庫表之間的關係:一對多仍是一對一仍是其餘之類,對於一對多的關係,外鍵每每在多的那邊)(3)項目目錄結構搭建(4)實際編碼(5)測試
相關文章
相關標籤/搜索