您的位置:首页 > 编程语言 > PHP开发

php 学习笔记

2010-08-26 17:14 232 查看
常用的操作符

+ 加

- 减

* 乘

/ 除

. 连接字符串

= 变量赋值

声明变量

<?php

// 声明一个整型变量

$num = 0;

// 声明一个浮点型变量

$mount = 0.00;

// 声明一个字符型变量

$str = '';

// 声明一个数组型变量

$array = array();

// 声明一个对象型变量 Dom假设是一个已经定义的类

$obj = new Dom();

// 转换类型

$a = (int)$mount;//转换成int型,对应其它几种类型(string),(float)...

$a = intval($mount);//同上对应其它几种类型floatval,strval...

?>

首先PHP的变量都要以$打头,如$str;

PHP有以下几种

integer 整形

float 浮点型

string 字符型

boolean 布尔 真true,假false

array 数组

object 对象

打开新窗体

<script language=javascript>

window.open("login.php","LogIn","width=200,heigh=300,toolbar=yes,status=no");

</script>

<a href=# onclick='javascript:window.open("register.htm","Register","width=200,height=300,toolbar=yes,status=no")'>

引用其他页面代码作为本页内容:

<?php

require("check.php");

?>

测试语句执行

if (mysql_query($sql)) echo '数据保存成功';

else echo "数据保存失败,SQL语句:$sql<BR>错误信息:".mysql_error();

连接数据库

$conn=mssql_connect("Act","sa","123");

// 选择数据库

mssql_select_db("phpTest");

$sql="select password from users where name='".$Name."'";

$result=mssql_query($sql,$conn);//当查询串是添删改时,返回的true,false,是select 时,返回新id,返回false是,非成功执行而无结果,而是查询串有误

$UserPWD=mssql_fetch_object($result)//将查询结果拆分到对象变量,若无结果则为false,取回对象的索引必须为文字而非数字,因为则是对象特性如:

$UserPWD->password

mssql_close($conn);//关闭连接

mssql_pconnect()//打开长期连接,该函数会先找是否被执行过,若被执行过返回原先id,该函数无法被mssql_close()关闭

mssql_num_rows()//取得返回列的数目

mssql_list_tables(database,con)//返回指定数据库所有数据表名称

mssql_list_fields(database,table,con)//返回指定数据库数据表所有字段

mssql_list_dbs(con)//返回可用数据库

boolean myssql_free_result(int result)//释放返回所占用空间

mssql_fetch_row(int result) //返回单列个字段

mssql_fetch_array(int result) //返回数组数据

有一点很重要必须指出,用 mysql_fetch_array() 并不明显 比用 mysql_fetch_row() 慢,而且还提供了明显更多的值。

mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。

如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)

mssqlerrno(con)返回错误信息代码

mssqlerror(con)返回错误信息

mssql_drop_db(database,con) //删除数据库

mssql_create_db(databse,con)

mssql_affected_rows(con)//获得最后操作影响的列数,如删除全部数据,会返回0,只有改变数据库的才可以获得,所以select查询无法使用该函数获得函数,需使用mssql_num_rows()

mssql_db_query(database,query,con)

设置cookie

setcookie("phpbookuid",$Name);

当条件不满足时终止本页后面代码执行

if($NewPassword!=$ReNewPassword)

{

echo "两次输入不一致,请<a href=edit.php>重新输入</a>";

exit;

}

获取cookies中的值

$Name=$HTTP_COOKIE_VARS["phpbookuid"];

implode,explode是常用的将数组和字符串之间转换的函数,

implode 将数组以一个字符连接成字符串

explode 使用一个字符串分割另一个字符串

<?php

$array = array('lastname', 'email', 'phone');

$result = implode(",", $array);

echo $result ; // lastname,email,phone

$string = 'jpg|gif|png';

$result = explode('|',$string);

print_r($result); //array('jpg','gif','png') print_r()打印数组

?>

**数组

一个**数组,每个值都是一个数组,保存了教程的信息

<?php

array (

1 =>

array (

'title' => '入门初学',

'level' => 1,

'code_id' => 0,

'no' => 1,

),

2 =>

array (

'title' => 'Hello World第一步',

'level' => 2,

'code_id' => 1,

);

?>

为了代码的利用,PHP提供了require,include来包含代码

require(文件件路径)

include(文件件路径)

require与include的区别在于:

require不受条件限制都会包含文件,如果文件不存在,为至命错误程序终止

include受条件限制,如果include在一个if中,如果if条件不成立文件将不会被包含进来,如果文件不存在,错误为警告,程序继续执行

require_once,include_once,可以让一个文件在一个PHP进程中只被包含一次

// 设定要用的默认时区。自 PHP 5.1 可用

date_default_timezone_set('Asia/Chongqing');//中国地区使用

echo date("Y-m-d H:i:s");//显示当前时间

// 简单实现时间加减

$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));//明天

//现在的结果是时间戳,格式化显示,下面相同

echo date("Y-m-d H:i:s",$tomorrow);

$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));// 下个月

$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);// 明年

// 返回当前的 Unix 时间戳

echo time();

// 返回当前 Unix 时间戳和微秒数 microtime()

function microtime_float()

{

list($usec, $sec) = explode(" ", microtime());

return ((float)$usec + (float)$sec);

}

$time_start = microtime_float();

// Sleep for a while

usleep(100);

$time_end = microtime_float();

$time = $time_end - $time_start;//程序执行时间

获得传参

<?php

// 如打开[查看代码执行结果]页面get.php?id=123

echo $_GET['id'];//这里输出123,试试修改id=后面的数字

?>

HTTP GET 变量:$_GET,通过 HTTP GET 方法传递的变量组成的数组。是自动全局变量。

HTTP POST 变量:$_POST,通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。

// 格式化

$str = ' abc ';

// 去除左右空格

echo trim($str);

// 去除左空格

echo ltrim($str);

// 去除右空格

echo rtrim($str);

// 换行/n转换成<br />

echo nl2br($str);

// 轻换成大写

echo strtoupper($str);

// 转换成小写

echo strtolower($str);

$str2 = '"abc"';

// 转义字符

echo addslashes($str2);

// 截取部份长度,下面是从第1位(第2个)截取2位长度,如果是多字节文字可以使用mb_substr代替

echo substr($str,1,2);

//取字符长度

echo strlen($str);

// 取某字符串在目标字符串中的位置不存在返回false

echo strpos($str,'b');

// 替换,下面是将$str中的,都替换成/

echo str_replace(',','/',$str);

数组排序,常用的有这几个函数

sort 对数组排序 按首字母顺序

asort 对数组进行排序并保持索引关系 即按内容排,对应索引保留

ksort 对数组按照键名排序 按索引排

shuffle 将数组打乱

foreach语句

foreach (array_expression as $value)

statement

foreach (array_expression as $key => $value)

statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

foreach ($fruits as $key => $val) //$fruits是数组,$key是遍历的键名,$val是遍历的值

{

echo "$key = $val<br>";

}

<?php

$a = array('a'=>'网上','b'=>'朋友','c'=>'其它',);

// 这是一个hash数组,我们现在把内容输出

foreach ($a as $key => $value) {

echo $key . '->' . $value . '<br>';

}

?>

开始运行foreach第一次,这时 $key='a';$value='网上';

输出后第二次运行 这时 $key='b';$value='朋友';

输出后第三次运行 这时 $key='c';$value='其它';

这时数组已经到了尾部,退出循环

上面代码的结果:

a->网上

b->朋友

c->其它

do-while语句

<?php

$num = 1;

do {

echo $num.'<br>';

$num++;

} while ($num<=5);

?>

注:do while同while类似,不同的是do后的代码先执行再进行判断,所以代码一定会被执行一次

addslashes() 函数在指定的预定义字符前添加反斜杠。

这些预定义字符是:

单引号 (')

双引号 (")

反斜杠 (/)

NULL

magic_quotes_gpc

取得 PHP 环境设定的变数 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。传回 0 表示关闭本功能;传回 1 表示本功能开启。当 magic_quotes_gpc 开启时,所有的 ' (单引号), " (双引号), / (反斜线) and 空字符会自动转为含有反斜线的溢出字符。

全局变量是指可以在程序的任何范围内访问的,比如$_POST, $_GET 等,在函数内部可以访问,在函数外部也可以访问,但普通的函数外定义的变量是不可以在函数内部访问的。比如:

代码:

$GLOBALS['testGlobal'] = '123';

$testVar = 'abc';

function showVar()

{

echo $GLOBALS['testGlobal']; //此行可以显示123,因为这是个全局变量

echo $testVar; //此行并不能显示abc,因为函数内部无法访问$testVar这个普通变量。

}

showVar(); //显示 123

全局变量并不是指变量可以跨文件访问,跨文件访问PHP是做不到的,要访问另一个文件中定义的变量只能先包含那个文件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: