菜鳥學(xué)習(xí):動態(tài)網(wǎng)頁P(yáng)HP基礎(chǔ)學(xué)習(xí)筆記_PHP教程
推薦:網(wǎng)頁實(shí)例:詳細(xì)介紹用PHP來編寫網(wǎng)頁記數(shù)器本款計數(shù)器用文本計數(shù)。沒有用到數(shù)據(jù)庫,可以實(shí)現(xiàn)如下功能: 利用一個文本文件實(shí)現(xiàn)多個頁的計數(shù)減少服務(wù)器的I/O占用率在需要紀(jì)錄的文件里,只需加入很少的幾行代碼 基本思路如下: 服務(wù)器
1、 PHP片段四種表示形式。
標(biāo)準(zhǔn)tags:<?php ?>
short tags:<? ?> 需要在php.ini中設(shè)置short _open_tag=on,默認(rèn)是on
asp tags: <% %>需要在php.ini中設(shè)置asp_tags=on,默認(rèn)是off
script tags:<script language=”php”></script>
2、 PHP變量及數(shù)據(jù)類型
1)$variable ,變量以字母、_開始,不能有空格
2)賦值$variable=value;
3)弱類型,直接賦值,不需要顯示聲明數(shù)據(jù)類型
4)基本數(shù)據(jù)類型:Integer,Double,String,Boolean,Object(對象或類),Array(數(shù)組)
5)特殊數(shù)據(jù)類型:Resourse(對第三方資源(如數(shù)據(jù)庫)的引用),Null(空,未初始化的變量)
3、 操作符
1)賦值操作符:=
2)算術(shù)操作符: ,-,*,/,%(取模)
3)連接操作符:. ,無論操作數(shù)是什么,都當(dāng)成String,結(jié)果返回String
4)Combined Assignment Operators合計賦值操作符: =,*=,/=,-=,%=,.=
5)Automatically Incrementing and Decrementing自動增減操作符:
(1)$variable =1 <=>$variable ;$variable-=1 <=>$variable-,跟c語言一樣,先做其他操作,后 或-
(2) $variable,-$variable,先 或-,再做其他操作
6)比較操作符:= =(左邊等于右邊),!=(左邊不等于右邊),= = =(左邊等于右邊,且數(shù)據(jù)類型相同),>=,>,<,<=
7)邏輯操作符:|| ó or,&&óand,xor(當(dāng)左右兩邊有且只有一個是true,返回true),!
4、 注釋:
單行注釋:// ,#
多行注釋:/* */
5、 每個語句以;號結(jié)尾,與java相同
6、 定義常量:define(“CONSTANS_NAME”,value)
7、 打印語句:print,與c語言相同
8、 流程控制語句
1)if語句:
(1)if(expression)
{
//code to excute if expression evaluates to true
}
(2)if(expression)
{
}
else
{
}
(3)if(expression1)
{
}
elseif(expression2)
{
}
else
{
}
2)swich語句
switch ( expression )
{
case result1:
// execute this if expression results in result1
break;
case result2:
// execute this if expression results in result2
break;
default:
// execute this if no break statement
// has been encountered hitherto
}
3)?操作符:
( expression )?returned_if_expression_is_true:returned_if_expression_is_false;
4)while語句:
(1) while ( expression )
{
// do something
}
(2)do
{
// code to be executed
} while ( expression );
5)for語句:
for ( initialization expression; test expression; modification expression ) {
// code to be executed
}
6)break;continue
9、 編寫函數(shù)
1)定義函數(shù):
function function_name($argument1,$argument2,……) //形參
{
//function code here;
}
2)函數(shù)調(diào)用
function_name($argument1,$argument2,……); //形參
3)動態(tài)函數(shù)調(diào)用(Dynamic Function Calls):
1: <html>
2: <head>
3: <title>Listing 6.5</title>
4: </head>
5: <body>
6: <?php
7: function sayHello() { //定義函數(shù)sayHello
8: print "hello<br>";
9: }
10: $function_holder = "sayHello"; //將函數(shù)名賦值給變量$function_holder
11: $function_holder(); //變量$function_holder成為函數(shù)sayHello的引用,調(diào)用$function_holder()相當(dāng)于調(diào)用sayHello
12: ?>
13: </body>
14: </html>
4)變量作用域:
全局變量:
1: <html>
2: <head>
3: <title>Listing 6.8</title>
4: </head>
5: <body>
6: <?php
7: $life=42;
8: function meaningOfLife() {
9: global $life;
/*在此處重新聲明$life為全局變量,在函數(shù)內(nèi)部訪問全局變量必須這樣,如果在函數(shù)內(nèi)改變變量的值,將在所有代碼片段改變*/
10: print "The meaning of life is $life<br>";
11: }
12: meaningOfLife();
13: ?>
14: </body>
15: </html>
5)使用static
1: <html>
2: <head>
3: <title>Listing 6.10</title>
4: </head>
5: <body>
6: <?php
7: function numberedHeading( $txt ) {
8: static $num_of_calls = 0;
9: $num_of_calls ;
10: print "<h1>$num_of_calls. $txt</h1>";
11: }
12: numberedHeading("Widgets"); //第一次調(diào)用時,打印$num_of_calls值為1
13: print("We build a fine range of widgets<p>");
14: numberedHeading("Doodads"); /*第一次調(diào)用時,打印$num_of_calls值為2,因為變量是static型的,static型是常駐內(nèi)存的*/
15: print("Finest in the world<p>");
16: ?>
17: </body>
18: </html>
6) 傳值(value)和傳址(reference):
傳值:function function_name($argument)
1: <html>
2: <head>
3: <title>Listing 6.13</title>
4: </head>
5: <body>
6: <?php
7: function addFive( $num ) {
8: $num = 5;
9: }
10: $orignum = 10;
11: addFive( &$orignum );
12: print( $orignum );
13: ?>
14: </body>
15: </html>
結(jié)果:10
傳址:funciton function_name(&$argument)
1: <html>
2: <head>
3: <title>Listing 6.14</title>
4: </head>
5: <body>
6: <?php
7: function addFive( &$num ) {
8: $num = 5; /*傳遞過來的是變量$num的引用,因此改變形參$num的值就是真正改變變量$orignum物理內(nèi)存中保存的值*/
9: }
10: $orignum = 10;
11: addFive( $orignum );
12: print( $orignum );
13: ?>
14: </body>
15: </html>
結(jié)果:15
7)創(chuàng)建匿名函數(shù):create_function(‘string1’,’string2’); create_function是PHP內(nèi)建函數(shù),專門用于創(chuàng)建匿名函數(shù),接受兩個string型參數(shù),第一個是參數(shù)列表,第二個是函數(shù)的主體
1: <html>
2: <head>
3: <title>Listing 6.15</title>
4: </head>
5: <body>
6: <?php
7: $my_anon = create_function( '$a, $b', 'return $a $b;' );
8: print $my_anon( 3, 9 );
9: // prints 12
10: ?>
11: </body>
12: </html>
8)判斷函數(shù)是否存在:function_exists(function_name),參數(shù)為函數(shù)名
10、用PHP連接MySQL
1)連接:&conn=mysql_connect("localhost", "joeuser", "somepass");
2)關(guān)閉連接:mysql_close($conn);
3) 數(shù)據(jù)庫與連接建立聯(lián)系:mysql_select_db(database name, connection index);
4) 將SQL語句給MySQL執(zhí)行:$result = mysql_query($sql, $conn); //增刪改查都是這句
5) 檢索數(shù)據(jù):返回記錄數(shù):$number_of_rows = mysql_num_rows($result);
將記錄放入數(shù)組:$newArray = mysql_fetch_array($result);
例子:
1: <?php
2: // open the connection
3: $conn = mysql_connect("localhost", "joeuser", "somepass");
4: // pick the database to use
5: mysql_select_db("testDB",$conn);
6: // create the SQL statement
7: $sql = "SELECT * FROM testTable";
8: // execute the SQL statement
9: $result = mysql_query($sql, $conn) or die(mysql_error());
10: //go through each row in the result set and display data
11: while ($newArray = mysql_fetch_array($result)) {
12: // give a name to the fields
13: $id = $newArray['id'];
14: $testField = $newArray['testField'];
15: //echo the results onscreen
16: echo "The ID is $id and the text is $testField <br>";
17: }
18: ?>
11、接受表單元素:$_POST[表單元素名],
如<input type=text name=user>ó$_POST[user]
接受url中queryString中值(GET方式):$_GET[queryString]
12、轉(zhuǎn)向其他頁面:header("Location: http://m.dounai2.com");
13、字符串操作:
1)explode(“-”,str)óJava中的splite
2)str_replace($str1,$str2,$str3) =>$str1要查找的字符串,$str2用來替換的字符串,$str3從這個字符串開始查找替換
3)substr_replace:
14、session:
1)打開session:session_start(); //也可以在php.ini設(shè)置session_auto_start=1,不必再每個script都寫這句,但是默認(rèn)為0,則必須要寫。
2)給session賦值:$_SESSION[session_variable_name]=$variable;
3)訪問session:$variable =$_SESSION[session_variable_name];
4)銷毀session:session_destroy();
15、顯示分類的完整例子:
1: <?php
2: //connect to database
3: $conn = mysql_connect("localhost", "joeuser", "somepass")
4: or die(mysql_error());
5: mysql_select_db("testDB",$conn) or die(mysql_error());
6:
7: $display_block = "<h1>My Categories</h1>
8: <P>Select a category to see its items.</p>";
9:
10: //show categories first
11: $get_cats = "select id, cat_title, cat_desc from
12: store_categories order by cat_title";
13: $get_cats_res = mysql_query($get_cats) or die(mysql_error());
14:
15: if (mysql_num_rows($get_cats_res) < 1) { //如果返回記錄行數(shù)小于1,則說明沒有分類
16: $display_block = "<P><em>Sorry, no categories to browse.</em></p>";
17: } else {
18:
19: while ($cats = mysql_fetch_array($get_cats_res)) { //將記錄放入變量$cats中
20:$cat_id = $cats[id];
21:$cat_title = strtoupper(stripslashes($cats[cat_title]));
22:$cat_desc = stripslashes($cats[cat_desc]);
23:
24: $display_block .= "<p><strong><a
25: href=\"$_SERVER[PHP_SELF][U1] ?cat_id=$cat_id\">$cat_title</a></strong>//點(diǎn)擊此url,刷新本頁,第28行讀取cat_id,顯示相應(yīng)分類的條目
26: <br>$cat_desc</p>";
27:
28:if ($_GET[cat_id] == $cat_id) { //選擇一個分類,看下面的條目
29: //get items
30: $get_items = "select id, item_title, item_price
31: from store_items where cat_id = $cat_id
32: order by item_title";
33: $get_items_res = mysql_query($get_items) or die(mysql_error());
34:
35: if (mysql_num_rows($get_items_res) < 1) {
36: $display_block = "<P><em>Sorry, no items in
37: this category.</em></p>";
38: } else {
39:
40: $display_block .= "<ul>";
41:
42: while ($items = mysql_fetch_array($get_items_res)) {
43: $item_id = $items[id];
44: $item_title = stripslashes($items[item_title]);
45: $item_price = $items[item_price];
46:
47: $display_block .= "<li><a
48: href=\"showitem.php?item_id=$item_id\">$item_title</a>
49: </strong> (\$$item_price)";
[U2] 50: }
51:
52: $display_block .= "</ul>";
53: }
54: }
55: }
56: }
57: ?>
58: <HTML>
59: <HEAD>
60: <TITLE>My Categories</TITLE>
61: </HEAD>
62: <BODY>
63: <? print $display_block; ?>
64: </BODY>
65: </HTML>
16、PHP連接Access:
以下為引用的內(nèi)容: <? $dbc=new com("adodb.connection"); $dbc->open("driver=microsoft access driver (*.mdb);dbq=c:\member.mdb"); $rs=$dbc->execute("select * from tablename"); $i=0; while (!$rs->eof){ $i =1 $fld0=$rs->fields["UserName"]; $fld0=$rs->fields["Password"]; .... echo "$fld0->value $fld1->value ...."; $rs->movenext(); } $rs->close(); ?> |
分享:動態(tài)網(wǎng)頁中直接不讓訪問PHP程序文件由于我們有需要用到某些php文件,而又不希望別人直接訪問這個文件,我們可以在其他包含文件比如global.php中定義一個參數(shù),在被訪問頁面data.php前面判斷是否定義了該參數(shù),沒有定義則禁止訪問。
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時間
- PHP中獎概率的抽獎算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
復(fù)制本頁鏈接| 搜索菜鳥學(xué)習(xí):動態(tài)網(wǎng)頁P(yáng)HP基礎(chǔ)學(xué)習(xí)筆記
- 教程說明:
PHP教程-菜鳥學(xué)習(xí):動態(tài)網(wǎng)頁P(yáng)HP基礎(chǔ)學(xué)習(xí)筆記。