PHP语法基础

上一篇 / 下一篇  2007-02-13 15:59:34 / 个人分类:他山之石

一,概述

二,PHP脚本标记

 

Q \`2r@)l0

1、 PHP脚本有四种标记: 短标签和asp标签虽方便但移植性及发行性较差,通常不推荐。此外注意如果将 PHP 嵌入到 XML 或 XHTML 中则需要使用标准标签 <?php ?> 以保持符合标准。

9t8gy$QCj0

 

k w*wK&M#dT@0

A, 标准标签:<?php .. ?>木铎校园 BBS 社区c.B6]"mj U

 

n2@6a^/O&Gg0

B, 脚本标签:<scrīpt language=”php”>...</scrīpt>

:{,x"P#F%XQv0PG7\0

 木铎校园 BBS 社区W'|9fEo'_UD

C, 短标签:<? ... ?> 需要在php.ini中设置short _open_tag=on,默认是on,或者在 PHP 编译时加入了 --enable-short-tags 选项。(PHP 3版本还可以通过 short_tags() 函数激活使用短标记。)木铎校园 BBS 社区"A*f!n5|*gQ3c/yi&_U

 木铎校园 BBS 社区4}!kR#W4oYC

D, asp标签(PHP 3.0.4 版后支持): <% ... %>需要在php.ini中设置asp_tags=on,默认是off

4K9i0OF3M?0

 

s]x#s(Je*lhdC0

2, 指令分隔符: 同 C,java 或 Perl 一样,PHP 需要在每个语句除末行(因为结束标记隐含表示了一个分号 )后用分号结束指令。而文件末行省略分号有利于使用输出缓冲和 include() 或者 require()木铎校园 BBS 社区d7Pl+[,K"N9w1F

 木铎校园 BBS 社区^w@2F q

3, 注释: PHP 支持 C,C++ 和 Unix Shell 风格(Perl 风格)的注释。例如:木铎校园 BBS 社区+r;beRi|^

单行注释:// ,#
多行注释:/*  */
<?php
    echo "This is a test"; // 单行注释 (c++ 风格),
    /* 多行注释:单行注释说明1:"// ?>"中 ?>有效,
       单行注释说明2:"// </scrīpt>"中 </scrīpt>无效 */
    echo "This is yet another test";
    echo "One Final Test"; # 单行注释 (shell风格)
?>

 

nY XCj`X Q)C9u0

三,PHP数据类型

 木铎校园 BBS 社区G6B+eZOr?S

1, 基本数据类型:Integer,Double,String,Boolean,Object(对象或类),Array(数组)木铎校园 BBS 社区F&wjY:v

 

)N _1e;`1zV0

A, 四种标量类型:

D O]6zS R0

 木铎校园 BBS 社区t3KpP O!?L)j"}

(1), boolean(布尔型) :布尔值 FALSE情况是:整型0,浮点0.0,空白字符串和字符串 "0",没有成员变量的数组,没有单元的对象(仅适用于 PHP 4),特殊类型 NULL(包括尚未设定的变量)。其它值都被认为是 TRUE(包括任何资源)木铎校园 BBS 社区)h.]%dqvV0H

 

:F-_4y;h7z0

(2), integer(整型):八进制前缀0,十六进制前缀0x,如果向八进制数如01090传递了一个非法数字(即 8 或 9),则后面其余数字会被忽略,等于010。

%{*}X6W cej0E5g0

 

4i7iyZ jMf0

(3), float(浮点型,也作double,浮点数,双精度数或实数):浮点数精度是不准确的

?LKzct5H0

 木铎校园 BBS 社区Z8j8p jtw m:CXfO

(4), string(字符串):

dRJ J'V"F}:GeR0

 

w,YU.Op1m+nu#`0

B, 两种复合类型:

,G1G p%| _ S%d0

 木铎校园 BBS 社区+Y%p'qd)L

(1), array(数组) :PHP 中的数组实际上是把一个优化过的有序图类型当成数组来使用。应该始终在用字符串(除常量或变量)表示的数组索引上加上引号。

?yurk%z^o.M0

 

r7WO|,k-S0

定义 array():木铎校园 BBS 社区 y]gW#Ap

array( [key =>] // key 可以是 integer 或者 string
value // value 可以是任何值
     , ...
     )
<?php
$arr = array("foo" => "bar", 12 => true); //key如果是浮点数则取整为integer

echo $arr["foo"]; // bar
echo $arr[12];    // 1
?>

缺省的键名取当前最大的整数索引值,而新的键名索引为当前最大索引加一。如果指定的键名已经有了值,则该值会被覆盖。 自 PHP 4.3.0 起,上述的索引生成方法改变了。如今如果给一个当前最大键名是负值的数组添加一个新值,则新生成的的索引将为零(0)。以前新生成的索引为当前最大索引加一,和正值的索引相同。木铎校园 BBS 社区SQ#KK nv d!C;B

 木铎校园 BBS 社区m)G*Y jTN0a2|L

添加/修改数组元素:木铎校园 BBS 社区%H1e xrXq*V5Mu

<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56;    // This is the same as $arr[13] = 56;
                // at this point of the scrīpt
$arr["x"] = 42; // This adds a new element to
                // the array with key "x"
unset($arr[5]); // This removes the element from the array
unset($arr);    // This deletes the whole array
?>

(2), object(对象)木铎校园 BBS 社区)X"Qs0`{ ?;tb|

 木铎校园 BBS 社区].Z"}"oz'r:`"EFM

对象初始化:要初始化一个对象,用 new 语句将对象实例到一个变量中。木铎校园 BBS 社区"rOB8yc#P

<?php
class foo
{
    function do_foo()
    {
        echo "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

 

"@f'YFc9^%U`| E0

转换为对象:如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。对于任何其它的值,名为 scalar 的成员变量将包含该值。木铎校园 BBS 社区g{d/e+I!D{

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // outputs 'ciao'
?>

 木铎校园 BBS 社区@2}Z4pZDy [

C, 特殊数据类型:

Yj;eu5`0

 木铎校园 BBS 社区:b~!E%CrL

(1), Resourse(对第三方资源(如数据库)的引用,PHP 4 引进):资源是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。木铎校园 BBS 社区:|mL.E/N'H|@

 木铎校园 BBS 社区IE6\ax-x

禁止类型转换为资源:由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。

*pgmq;]nc0

 木铎校园 BBS 社区Bm$r_z9H s

释放资源:由于 PHP4 Zend 引擎引进了资源计数系统,可以自动检测到一个资源不再被引用了(和 Java 一样)。这种情况下此资源使用的所有外部资源都(除了持久数据库连接)会被垃圾回收系统释放。由此原因,很少需要用某些 free-result 函数来手工释放内存。木铎校园 BBS 社区:xC is\9fh7AGq8H

 

S&Y(}4z7E(q-[0

 

dg-ORkX [0

(2), Null(空,未初始化的变量,PHP4引进):特殊的 NULL 值表示一个变量没有值。NULL 类型唯一可能的值就是 NULL。 在下列情况下一个变量被认为是 NULL:被赋值为 NULL,尚未被赋值, 被 unset()。

$j v_[s2cN0L'Y0

 木铎校园 BBS 社区!U \3P9CO8EQp

语法:NULL 类型只有一个值,就是大小写敏感的关键字 NULL。木铎校园 BBS 社区jh;u"}H.El4u`^$k"`

<?php
$var = NULL;
?>

 

!w[;k3k*cd0

D, 伪类型:

*]7V0r-R l*t%_0

 木铎校园 BBS 社区^]oI(Y

(1), mixed :mixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型。木铎校园 BBS 社区.wx;w(i x1o&x

 木铎校园 BBS 社区-V1u ~Bn"T1n:V\q

(2), number :number 说明一个参数可以是 integer 或者 float。木铎校园 BBS 社区L I|qxIE$r+~y

 木铎校园 BBS 社区 oA"foGSH4nl

(3), callback :有些诸如 call_user_function() 或 usort() 的函数接受用户自定义的函数作为一个参数。Callback 函数不仅可以是一个简单的函数,它还可以是一个对象的方法,包括静态类的方法。 一个 PHP 函数用函数名字符串来传递。可以传递任何内置的或者用户自定义的函数,除了 array(),echo(),empty(),eval(),exit(),isset(),list(),print() 和 unset()。

"JC6V\7Q"RSm3B.H0

 

1` h)c` AmY0

一个对象的方法以数组的形式来传递,数组的下标 0 指明对象名,下标 1 指明方法名。

hW!A-W$E0

 木铎校园 BBS 社区V)~'A7Y7U0FnXA

对于没有实例化为对象的静态类,要传递其方法,将数组 0 下标指明的对象名换成该类的名称即可。木铎校园 BBS 社区 V;dy1` Z x _&x

 

8Pg ddX9G&phF-|;T0

 木铎校园 BBS 社区)~-I9iY#e3L5Cog

2, 字符串可以用三种字面上的方法定义。

$~2G8t H~8pA}0

 木铎校园 BBS 社区r2OA$mk7Xc

(1), 单引号: 除可转义(')和字符串末的(\),其中出现的变量和转义序列不会被其对应的值替代。木铎校园 BBS 社区M]^F"s$c

<?php
// 输出结果: Arnold once said: "I'll be back \"
echo 'Arnold once said: "I\'ll be back \\"';//转义表示(')和字符串末的(\)用(\)转义

// 两个输出结果一样: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';//可转义(\)本身,但不必要
echo 'You deleted C:\*.*?';
//因为试图转义除(')和字符串末的(\)之外字符都会连带转义(\)

// 输出结果: This will not expand: \n a newline, Variables do not $expand $either
echo 'This will not expand: \n a newline, Variables do not $expand $either';
//单引号变量和转义序列不会生效。
?>

 木铎校园 BBS 社区$dL Pz3d#}+R&H?0@|

(2), 双引号 :其中出现的变量和转义序列会被解析生效。木铎校园 BBS 社区GG[-W4G

 

PI}E I0L:w4e0

序列木铎校园 BBS 社区I(f|k#V4h*B+v}

含义

B;NM W,ZCJ0

\n木铎校园 BBS 社区A CO8BG&TD

换行(LF 或 ASCII 字符 0x0A(10))木铎校园 BBS 社区j[)A-b8u+nH(N7X

\r木铎校园 BBS 社区f,Qm(k.q"\

回车(CR 或 ASCII 字符 0x0D(13))木铎校园 BBS 社区Nvu&{Yg

\t木铎校园 BBS 社区0D+LIEN1JE b

水平制表符(HT 或 ASCII 字符 0x09(9))木铎校园 BBS 社区qX)OFjR%jih j$d

\\木铎校园 BBS 社区:r(Gz.{/x{

反斜线

3OQ)Xh-VtA0

\$

/B'Y_-xUZSg0

美元符号木铎校园 BBS 社区.KZz Zq"]G

\"

m#W7ip mRe0

双引号

&zI*@%A}M0

\[0-7]{1,3}木铎校园 BBS 社区1Q\)rc$V"o(Z4Xb ]{6G

此正则表达式序列匹配一个用八进制符号表示的字符木铎校园 BBS 社区"Z B\ h!hA$w0F+l

\x[0-9A-Fa-f]{1,2}

v2LJ4c5@0

此正则表达式序列匹配一个用十六进制符号表示的字符木铎校园 BBS 社区J2z!\ J5t[

 木铎校园 BBS 社区D#Wk.^.~

此外,如果试图转义任何其它字符,反斜线本身也会被显示出来!木铎校园 BBS 社区#_(J*e/q:M3de;m

 

#sM*nImW"f|3}0

(3), 定界符(PHP4开始支持): 格式严格干净。结束标识符格式严格,前面必须只有上段换行符(\x41 ,\r),后面只有分号和换行符。不能用定界符语法初始化类成员。必须用其它字符串语法替代。其中出现的变量和转义序列会被解析生效。而且其中可以省略转义引号。

r!f"h3U)g0
<?php
$str = <<<EOD //标识符(必须遵循 PHP 中标签的命名规则)
Example of string
spanning multiple lines
using heredoc syntax.
EOD; //结束标识符格式必须干净

 

A L w_(sA0

3, 类型转换:PHP 在变量定义中不需要(或不支持)明示的类型定义;变量类型是根据使用该变量的上下文所决定的。

I VByt&PJ$h0

 木铎校园 BBS 社区zV _}0Q-q8C iy

A, 类型戏法:木铎校园 BBS 社区!`0u%h-C:tb[

 

q5V] tt$|2Lv/}z%f0

B, 类型强制转换:和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。木铎校园 BBS 社区{8f!C;oS&w)X

<?php
$foo = 10;   // $foo is an integer
$bar = (boolean) $foo;   // $bar is a boolean
?>  

允许的强制转换有: 

(int),(integer) - 转换成整型

(bool),(boolean) - 转换成布尔型

(float),(double),(real) - 转换成浮点型

(string) - 转换成字符串

(array) - 转换成数组

(object) - 转换成对象

 

,t?|u`bzAz)EU8e0

四,PHP变量和常量

 木铎校园 BBS 社区,h9AA+G hV0Cq

1, 变量:$variable,变量以字母、_开始,不能有空格。赋值$variable=value。PHP的变量是弱类型,可直接赋值而不需要显示声明数据类型,是由 PHP 根据该变量使用的上下文在运行时决定其类型。

;A n k eo8~ B+JkF0

 

,Sp3XWv@ c0

PHP 中变量,标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。

QR!`"a$F%u0

 

fG z7A;S&?!|0~0

2, 变量解析: 当用双引号或者定界符指定字符串时,其中的变量会被解析。

3zx%rrH0

 

q a)B.{ H n Z0d!j0

有两种语法,一种简单的和一种复杂的。木铎校园 BBS 社区D(j,P%R*m Fa$@

 

.G)^n"@i }q_d'pL{0

A, 简单语法最通用和方便,它提供了解析变量,数组值,或者对象属性的方法。 如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名。如果想明示指定名字的结束,用花括号把变量名括起来。

5B`@Ou3wT:TU0

 木铎校园 BBS 社区%a,s!fT bHmx

B, 复杂语法是 PHP 4 引进的,可以用花括号括起一个表达式。事实上,用此语法可以在字符串中包含任何在名字空间的值。仅仅用和在字符串之外同样的方法写一个表达式,然后用 { 和 } 把它包含进来。因为不能转义“{”,此语法仅在 $ 紧跟在 { 后面时被识别(用“{\$”或者“\{$”来得到一个字面上的“{$”)。注意,如果数组索引用了字符,要用单引号括起来。

r6ya^+wY!R)w)L0

 

Q'{5Yt6}.}"g0

3, 定义常量:define(“CONSTANS_NAME”,value)木铎校园 BBS 社区*y \ {c+u'OZYB~ Rg

 

!xO(i y-A0

五,操作符

 木铎校园 BBS 社区1P$J&hP/A \

1)赋值操作符:=木铎校园 BBS 社区 b$c7Gq9X9W

 

g)F Cz!m*r'G!S3WUA0

2)算术操作符:+,-,*,/,%(取模)

,u'^Ztg E|U0

 

A4mI9IX_ ? V0

3)连接操作符:. ,无论操作数是什么,都当成String,结果返回String

|LacK/?0

 

tP,Do _ Sa(V.}0

4)合计赋值操作符(Combined Assignment Operators):+=,*=,/=,-=,%=,.=木铎校园 BBS 社区B&d wDJ$S

 

6\-O3Y Q G^'bje1b0

5)自动增减操作符(Automatically Incrementing and Decrementing):木铎校园 BBS 社区'w*t%g^ JRpI9r/^

 

6jn5f6P5E%t0

(1)$variable+=1 <=>$variable++;$variable-=1 <=>$variable-,跟c语言一样,先做其他操作,后++或-

dQad!R2qz0

 

rJ!s%BcSn2[7X#\0

(2)++$variable,-$variable,先++或-,再做其他操作木铎校园 BBS 社区&Me:]6X7@(w^b

 

A+f6A L&J,k a$L0

6)比较操作符:木铎校园 BBS 社区7W8x` y1r

= =(左边等于右边),!=(左边不等于右边),
= = =(左边等于右边,且数据类型相同),
>=,>,<,<=

7)逻辑操作符:|| or,&& and,xor(当左右两边有且只有一个是true,返回true),!

nm*Q`C0

 

%]3t6LS\Oe0

六,流程控制语句

 木铎校园 BBS 社区 u&Du(?)?k:U

1)if语句:木铎校园 BBS 社区!FCx+v^h

 

qfk7u a;R8AKe!w0

(1)if(expression)木铎校园 BBS 社区v%tf`B)z1W6M

{

    //code to excute if expression evaluates to true

}

(2)if(expression)

'@?7a/q.E/[0
{

 

      }

     else

      {

 

      }

(3)if(expression1)木铎校园 BBS 社区,DND*h;tUN

{

}

elseif(expression2)

{

}

else

{

}

2) swich语句木铎校园 BBS 社区*bR7a5?:x

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

}

 木铎校园 BBS 社区+K*OXCzL*Q-j

3) ?操作符:

(F0apA$E@,B^0

 

Pw\zOV Z1Nr0
( expression )?returned_if_expression_is_true:returned_if_expression_is_false;

 木铎校园 BBS 社区S8I0p.h-W;^0TU

 

bg XM:N M0

4) while语句:木铎校园 BBS 社区q^p;rvRe tj$z U W

(1) while ( expression )

{
              // do something
}

(2)do

  {

           // code to be executed

} while ( expression );

5) for语句:

%mu+ic#ch B0
for ( initialization expression; test expression; modification expression ) {

           // code to be executed

}

6) break;continue木铎校园 BBS 社区ZjY#Ime!l

 

(m} DT2pY_ n0

七,函数

 

8~2k2H,\:^0

1) 定义函数:

_-|W*D` vzN0
function function_name($argument1,$argument2,……) //形参

{

   //function code here;

}

2) 函数调用木铎校园 BBS 社区+ZU ` \V)r \/?E

function_name($argument1,$argument2,……); //形参

3) 动态函数调用(Dynamic Function Calls):

B d+` yg)I0
1: <html>
  2: <head>
  3: <title>Listing 6.5</title>
  4: </head>
  5: <body>
  6: <?php
  7: function sayHello() {   //定义函数sayHello
  8:     print "hello<br>";
  9: }
 10: $function_holder = "sayHello";  //将函数名赋值给变量$function_holder
 11: $function_holder();  //变量$function_holder成为函数sayHello的引用,
//调用$function_holder()相当于调用sayHello
 12: ?>
 13: </body>
 14: </html>

4) 变量作用域:

0])a&DUcBI0

 木铎校园 BBS 社区*C0r2e Vy~C(Kc

全局变量:

1]C"VF B0U0
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为全局变量,在函数内部访问全局变量必须这样,
如果在函数内改变变量的值,将在所有代码片段改变*/
 10:      print "The meaning of life is $life<br>";
 11: }
 12: meaningOfLife();
 13: ?>
 14: </body>
 15: </html>

5) 使用static木铎校园 BBS 社区S3wdex

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");  //第一次调用时,打印$num_of_calls值为1
 13: print("We build a fine range of widgets<p>"); 
 14: numberedHeading("Doodads");  /*第一次调用时,打印$num_of_calls值为2,
因为变量是static型的,static型是常驻内存的*/
 15: print("Finest in the world<p>");
 16: ?>
 17: </body>
 18: </html>

6) 传值(value)和传址(reference):木铎校园 BBS 社区JN%|3?C%dy

 木铎校园 BBS 社区5_mbT)jmKFE*A

传值:function function_name($argument)木铎校园 BBS 社区U F*L9R;m[H,~

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>

结果:10

p`o5ta+J-_8L~0

 木铎校园 BBS 社区V9x)Q_Ik`Gs*~

传址:funciton function_name(&$argument)木铎校园 BBS 社区wis$p+HF

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物理内存中保存的值*/
  9: }
 10: $orignum = 10;
 11: addFive( $orignum );
 12: print( $orignum );
 13: ?>
 14: </body>
 15: </html>

结果:15

H/cv3Z9oeY0

 木铎校园 BBS 社区x#Va0@)M,R

7) 创建匿名函数:create_function(‘string1’,’string2’); create_function是PHP内建函数,专门用于创建匿名函数,接受两个string型参数,第一个是参数列表,第二个是函数的主体

9U$kK'B}di0
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) 判断函数是否存在:function_exists(function_name),参数为函数名木铎校园 BBS 社区0s/H.Y&R6m

 

9Z6oZR-y.f6X}#N3B(x0

八,用PHP连接MySQL

 木铎校园 BBS 社区}%dEE0v

1) 连接:&conn=mysql_connect("localhost", "joeuser", "somepass");木铎校园 BBS 社区4P^ rc gf.J

 木铎校园 BBS 社区b1@9`5x'P

2) 关闭连接:mysql_close($conn);木铎校园 BBS 社区iZ g9hX/R8~

 木铎校园 BBS 社区Y ^muc$c

3) 数据库与连接建立联系:mysql_select_db(database name, connection index);木铎校园 BBS 社区 jR J|7\"]`

 木铎校园 BBS 社区R v.WquH+~C

4) 将SQL语句给MySQL?执行:$result = mysql_query($sql, $conn); //增删改查都是这句木铎校园 BBS 社区JT Zp$t

 

(O5}d7w'v0

5) 检索数据:返回记录数:$number_of_rows = mysql_num_rows($result);

/ke ~Kd4T(@0

 木铎校园 BBS 社区.nrHN Xl,i

将记录放入数组:$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: ?>

 木铎校园 BBS 社区t"`*[Z[M

九,PHP连接Access

 

l!M/lJ[:wq s0

16、PHP连接Access:

@TR8F g0
<? 
$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(); 
?>

 木铎校园 BBS 社区'qn S7V*\`~Ac+RS

十,表单

 木铎校园 BBS 社区 DC:xm~E sd u*rJ

1, 接受表单元素:$_POST[表单元素名],

Q]0nQ![-c0

 

.f0_Q WK?0

如<input type=text name=user>ó$_POST[user]

&|^EuWFjX0

 

t]U~Tp-hM0

2, 接受url中queryString中值(GET方式):$_GET[queryString]木铎校园 BBS 社区~`Qc5AP

 木铎校园 BBS 社区L6u'f @V0s

十一,页面转向

 木铎校园 BBS 社区VrJyoAz

12、转向其他页面:header("Location: http://www.ms51.cn");木铎校园 BBS 社区%{*hL-]d'z sb

 

+P c/[2M;JL-_rx0

十二,字符串操作

 

Od#S!ly)r:l0

13、字符串操作:

#~!wh+KaxAsl0

 

6Hbk5R:cM5kO9j0

1)explode(“-”,str)óJava中的splite

2B4gU6i l m:f z$E0

 木铎校园 BBS 社区 \5~IU \,Jy

2)str_replace($str1,$str2,$str3) =>$str1要查找的字符串,$str2用来替换的字符串,$str3从这个字符串开始查找替换木铎校园 BBS 社区$gfj0O \'F(DL

 

/u:s&zg*m+l0

3)substr_replace:木铎校园 BBS 社区_kHl\.g

 木铎校园 BBS 社区&Ue;rHIZ2GeZ

十二,session

 木铎校园 BBS 社区` |Q%sV.V,T

1)打开session:session_start(); //也可以在php.ini设置session_auto_start=1,不必再每个scrīpt都写这句,但是默认为0,则必须要写。

0Kc#x HMq7H;Q0

 木铎校园 BBS 社区:q b@0[ Y#m8X\

2)给session赋值:$_SESSION[session_variable_name]=$variable;木铎校园 BBS 社区'OAIR-@hQe

 木铎校园 BBS 社区4|s"H^2Z*U \r

3)访问session:$variable =$_SESSION[session_variable_name];

kN3nP*jo.n0{0

 

F O&C}6j]3A$O0

4)销毁session:session_destroy();

+J&{`'~ bP0

 

9z N B K"p%E+aB0

十三,打印语句

 木铎校园 BBS 社区*H@0m7x7w&yK6tN0^

print,与c语言相同木铎校园 BBS 社区 M/a"t7n"QOn

 

6H[5A h;L Crp,F0

分类

 木铎校园 BBS 社区+l5w!b4o^kZn

15、显示分类的完整例子:木铎校园 BBS 社区)^ j'q$N!N

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) { //如果返回记录行数小于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>
//点击此url,刷新本页,第 28行读取cat_id,显示相应分类的条目
 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)";
 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>

TAG: 他山之石

引用 删除 Guest   /   2008-07-01 16:59:46
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

关于作者