php100视频教程学习笔记
第一讲:2011年1月10日22:02:50
PHP类似于C,Perl,移植性非常好,参考源码多。
lamp:linux wamp:windows
WampServer 5:PHP5.2.5 MySQL5 Apache2 PHPMyAdmin2.11.1.1 SQLiteManager 1.2.0
WAMPS display errors, short open tag:短标签模式WampServer2
标签语言:...?><%..%>
;结束,否则会出现错误。
注释风格:/**/;//;# Unix风格单行注释
学会使用注释来屏蔽符号来调试
第二讲:2011年1月10日22:03:04
弱类型只是局部变量 _和字母开头
标量类型:Boolean integer float(double) string
复合类型:array object
" "支持转译字符,''不支持转译字符。
$bo=array(1,2,3); $bo=arrary("A"=>1,"B"=>2);
discuz linux 777:最高权限; 775
第三讲:2011年1月10日22:31:46
1、算术运算。
2、赋值运算。
3、比较运算。
4、逻辑运算。
5、递增递减运算。
【+= *=
==只判断值而不判断类型;===完全比较:数值类型和数值FALSE不输出。
&&逻辑与and; ||逻辑或or; xor逻辑异或;先将比较的两边转换成布尔类型的,在执行它们的关
系。得到值为布尔值。
递增递减只能操作变量。$a++ 相当于+1后输出;++$a 先运算后加$a;;$a--;--$a;
做运算赋值以后在输出:$a=6;echo $a++; //输出为6;
】
第四讲:条件语句2011年1月10日22:22:40
1、
if(expr)
echo TRUE;
else
echo FALSE;
2、规范
if(expr){
echo TRUE
}else{
echo FALSE;
}
3、
if(expr){
echo TRUE;
}elseif(expr){ echo con;
}
else{
echo FALSE;
}
switch:
switch($i){ case 0:
echo"输出0";
break;
case 1:
echo "输出1";
break;
case 2:
echo "输出2";
break;
default:
echo "什么都不是";
}
第五讲:循环语句 2011年1月10日22:54:28【break n循环控制语句;do..while;for;
do{
....;
}
while(expr)
//先做一次
while(expr){
....;
}
for($i=1;$i<=10;$i++){
【if($i==5) break 1;】
echo "循环".$i."
";
}
】
第六讲:array 2011年1月10日23:37:20
【数组可包含任意类型,包括另一个数组。复合数组、二维数组
array(key=>value,key=>value...)
$arr=arry(3,4,5,6);//KEY从0开始
$arr=arry("id"=>2,"title"=>3); echo $arr[title];print_r($arr);
$arr=array(array(1,2),array(3,4)); print_r($arr); echo $arr[0][1];Array ( [0] => Array
( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) ) ;
修改:$arr[]=value ;统计:count($arr);判断是否是组数:is_array($arr);
另一种方法explode对变量中某一符号进行拆分。explode("key",value);
遍历数组:for while 最巧妙的是foreach
foreach($arr as $key=>$value){
....;
}
-----------------------------------------
双引号里面可以直接用变量。
$arr=array(a,b,c,d,e);
foreach($arr as $key=>$value){
echo "关键字 $key 对应值 $value "."
";
}
?>
关键字 0 对应值 a
关键字 1 对应值 b
关键字 2 对应值 c
关键字 3 对应值 d
关键字 4 对应值 e
----------------------------------------
】
第七讲函数
系统/自定义函数:解决一些常见问题实现制作好的"模" function func_name($val)
{
....;
}
自定义函数中的变量是局部的,函数外不生效。global全局变量的时候,在函数外才可以使用变量
。global(26:08)可用unset($var)删除。
【return函数返回函数内部值。传值和选择性传值function_exists()判断是否是函数。exit exist
引用返回值,用&。
$myname="我的名字";
$name="翟乃强";
echo "在函数之前输出的".$name."
";
function _pr($myname,&$name)
{
$name=$myname."是".$name."
";
echo $name;
}
_pr($myname,$name);
echo "这个是加过&的输出".$name;
?>
引用赋值。这意味着新的变量简单的引用(换言之,“成为
其别名”或者“指向”)了原始变量
。改动新的变量将影响到原始变量,反之亦然。这同样意味着其中没有执行复制操作
$foo = 'Bob';// Assign the value 'Bob' to $foo $bar = &$foo;// Reference $foo via $bar. $bar = "My name is $bar";// Alter $bar...
//echo $bar;
echo $foo; // $foo is altered too.
?>
】
第八讲 2011年1月11日20:47:32
mysql:瑞典mysql AB公司,现已经被Sun公司收购。支持FreeBSD、linux、MAC、windows系统。与
其他大型数据库oracle、DB2、sqlserver等相比功能稍弱一些。
Postgresql 发展势头很猛。
MYSQL默认访问端口3306。官方工具访问:MySql
Administrator tool。第三方:mysqlexec、
mysql连接器。web方式phpMyAdmin。
MySql Administrator tool:主要两个工具MySql Administrator、MySql QueryBrower。
比较:客户端执行效率高,安全性高。WEB简单、不受限制。整数型:tinyint smalllint int bigint
小数型:float double decimal(M,D)M:总共的位数,D小数的位数。
字符型:char varchar
日期型:datetime time timestamp
备注型:tinytext text longtext
create database ``
create table`表名`
drop table`表名`
alter table `` add ``... after ``
alter table `` drop ``
alter talbe ``add primary key``
rename talbe`原字段`to`新字段`
ALTER TABLE `test` CHANGE `fortext` `fortext` VARCHAR( 10 ) CHARACTER SET gbk COLLATE
gbk_chinese_ci NOT NULL
alter table `表`dorp`原字段`
alter table`表` add `新字段`.....after`原字段`
ALTER TABLE `test` ADD `tst` VARCHAR( 5 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT
NULL ;
eg:
create table`test`
(
`id` int(10) not null auto_increment,
`uid` varchar(10) not null default`0`,
`regdate` date not null,
`remark` text null,
primary id(`id`)
)
INSERT INTO `newdb`.`test` (
`id` ,
`uid` ,
`regdate` ,
`remark`
)
VALUES (
'1', 'chiang', '2009-01-18', '我的测试'
);
update ``.``set``=''where ``.``=1;
$sql = 'update `test` set `fortext`=\'中文支持看看哪\' where id=\'1\'';
VK717200
第九讲 2011年1月18日22:02:23
1、select 查询字段 from 表名 where 条件
查询字段:通配符、字段名、字段别名。
表名:数据库.表名,表名
查询条件:=、<>、in、not in、like、between、not between、<、>
条件:and or ()
select * from test where id in(1,2,4)
select * from test where `uid` like '%王%' _
select * from test where id between 1 and 3
WHERE FirstName LIKE '[JT]im' 可以找到三个字母的、以im 结尾并以 J 或 T 开始的名字(即
仅有 Jim 和 Tim)
? WHERE LastName LIKE 'm[^c]%' 可以找到以 m 开始的、后面的(第二个)字母不为 c 的所
有姓。
2、group by-语句最后order之前、order by字段,字段ASC/DESC-语句最后limit之前、
指针查询:limit 初始值,结束值语句最后
select * from test group by 'remark'//以remark分组
列出,只输出分组不同的条数。
ASC 正序排列,可省略order
by'regdate',id desc 先按regdate正序,regdate相同的按id降序
select * from `test` limit 3,8 从第四条起,取8条纪录
count/max/min/avg/sum(*)
update `表名` set 字段= where 条件
delete from 表名 where 条件
第十讲 2011年1月19日22:42:54
php.ini加载mysql组件:
extension=php_mysql.dll
extension_dir=''
连接
mysql_connect("主机","用户名","密码")//返回的值为布尔值。
mysql_select_db("数据库",连接标识符)
如果不是特别声明连接标识符,则默认为是上一次打开的连接。
【@和or die隐藏错误和条件显示】
$conn=@myslq_connect("","","") or die("连接错误");
if($conn)
echo "连接正确";
mysql_select_db("",$conn);//也是个布尔值
mysql_query(sql语句,连接标识符);标识符可以省略,默认为上一次打开的连接。成功返回一个结
果标识符,失败返回false。
$sql="一个sql语句,select、update、delete";
mysql_query($sql,$conn);
【mysql_query("SET NAMES 'GBK'"); 】
mysql_fetch_row/array();
//返回值是数组row/array区别:前者只能输出关键帧,后者既可以关键帧又可以使用字段名称的方
式 echo $squery[1]/$squery[name]
row查询结果的一行保存至数组,下标从0开始,每一个数组元素对应一个域。通过循环可全部获得
。
返回值下一行的所有域值,并将其保存至一个数组中,没有行时返回false。
mysql_insert_id
mysql_tablename
mysql_error
mysql_close
$result = mysql_list_tables("mydb");
mysql_free_result($result);
mysql_num_rows($sql,$conn)
echo 是命令,不能返回值。可以跟多个参数用,分开。print 是函数,可以返回一个值,只能有一个参数。
printf是函数,把文字格式化以后输出。格式printf(格式化的字符串[,混合参数])
name="hunte";
$age=25;
void printf("my name is %s, age %d", $name, $age); 其他可以使用的导引符如下:
%b: 显示二进制的整数。
%c: 显示参数的字符,将参数的值当作是ASC2数值。
%d: 显示有正符号的整数。
%u: 显示无正符号的整数。
%f: 显示浮点数。
%o: 显示八进制的整数。
%s: 显示字符串。
%x: 显示小写的十六进制的整数。
%X: 显示大写的十六进制的整数。
sprintf跟printf相似,但不打印而是返回格式化后的文字,其他与printf一样
$x =100;
$s ="动物园";
$formatted = sprintf("在%s中有%d只猴子",$s,$x); printf($formatted);
print ($formatted);
echo $formatted;
?>
第十一讲 2011年1月20日14:59:22
程序流程
功能需要→页面设计→数据库设计→代码设计(开始程序-初始化-条件-代码操作)-调试发布
require() requird_once()
通常放在php最前面,程序执行前就会先读取require指定的文件,如果有错误是致命的。
include() include_once()可放在任何一个位臵,程序执行
到此的时候才能引入,如果出错将会提
示。
PHP5默认情况下接受参数需要$_GET['value'];$_POST['value'],看准用的是中括号。
在php.ini中将register_globals=off改为on可以直接使用$value的值。
eclipse的使用技巧 ctrl+/
/**
*我的类
*/
$sql="insert into `message`(`id`,`user`,`title`,`content`,`lastdate`) values
('','$_POST[user]','$_POST[title]','$_POST[content] ',now())";
while($msary=mysql_fetch_array($msqry))//给$msary赋值然后循环出
=$msary["lastdate"]?>
if(mysql_query($sql))
{
echo $_POST["submit"];
echo "留言成功!";
}
"https://www.doczj.com/doc/0917397983.html,/TR/xhtml1/DTD/xhtml1-transitiona l.dtd">
第十二讲 2011年1月25日12:10:25
onsubmit="return checkpost();"
function checkpost()
{
if(https://www.doczj.com/doc/0917397983.html,er.value==""
{
alert("名字");
https://www.doczj.com/doc/0917397983.html,er.focus();
return false;
}
if(myform.title.value.length<5)
{
alert("标题不能少于5个字符");
myform.title.focus();
return false;
}
}
windows.location=
windows.open
提交内容的回车不是
显示出来得需要转换,\n在ANSI 里是回车。
str_replace(被替换,替换值,内容)
function htmtocode($content)
{
$content=str_replace("\n","
",str_replace(" ","",$content));
return $content;
}
上面的函数可直接用在输出上,显示内容便是html代码了。或者在提交将相应的转换存到数据库里
面,直接的输出也可。提交前过滤替换的方法应该不错
htmlspecialchars 格式化html
htmlspecialchars(要格式化对象,定义单双引号,编码) md5(加密对象 )
setcookie("TEST","value",3600,"/dir","https://www.doczj.com/doc/0917397983.html,", true);
名,值,保存时间,cookie保存路径,起效域名,https发送。不设臵时间,如同session
使用php cookie当场不能生效,需要刷新一次。
if(){setcookie("cookie","ok");}
if($_COOKIE['COOKIE']='OK'){}
if($_POST['submit']){
$sql="insert into message (id,user,title,content,lastdate) " .
"values
('','$_POST[user]','$_POST[title]','$_POST[content] ',now())";
mysql_query($sql);
echo "";
关于对产权交易行业进行 专项检查的情况汇报 根据市政府关于金融机构清理整顿专项检查工作的总体部署,检查小组严格按照市政府有关会议精神和要求,分别召开三次小组会,对此次检查的方式方法、检查的内容与重点、人员分工进行了研究,对检查中发现的问题进行分析,同时也初步研究了下一步整顿的对策措施。现将对市区担保和产权交易行业企业进行检查的情况汇报如下: 一、基本情况 根据有关法规以及本次的检查重点,对企业是否具有合法经营资格、有无超范围经营、有无抽逃注册资本、是否存在非法吸收公众存款、有无发放信用贷款、有无超范围提供担保、有无发放高利贷、有无乱收费现象、夸大宣传的虚假误导行为、有无不正当竞争的行为、是否建立风险控制制度、税收缴纳情况等12项内容进行了认真细致检查,发现了一些违规经营问题,并提出了整顿意见。 从这次的检查情况看,融资性担保机构总体情况较好,经营主体都是经过审批的专业机构,且在经营场所、人员配置、账务管理、税收缴纳等方面都相对比较规范;产权交易行业企业注册资金相对较小,业务单一,基本没有发现此次检查中要求的有关问题;主要问题在于非融资性的担保公司和未经审批 的投资和汽车按揭公司,他们自身对本业务范围的界限模糊,法制观念相对淡薄,急功近利,存在较大的隐患,务必让我们政府及有关部门引起重视。 二、存在的主要问题 (一)存在超范围经营现象。目前,全市的担保行业不规范经营情况在一定程度上存在,由于纯粹的担保业务收益较低,很多担保公司变相经营转贷等超范围业务,而且收取的利率都比较高,很多超过银行基准利率的4倍,一定程度上扰乱了正常的金融秩序,也带来了很大经营风险和社会风险。如非融资性的担保公司和投资公司,他们把注册资金以各种形式外借给其他企业或个人,非常有可能就是从事非法的高利贷业务;小部分融资性担保公司如金园担