




已阅读5页,还剩67页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软创中心PHP组内部教程目录第一章 PHP环境与安装 2下载 2安装 2第二章 PHP基础 4环境讲解 4留言板 6第三章 PHP 字符串操作/文件操作 11字符串操作 11文件操作 15第四章 PHP数据库操作 20数据库基础知识 20PHP与mysql 22第五章 PHP面向对象 26面向对象编程 26PHP5 的对象模型 26PHP5 的内存管理 27定义一个类 27构造函数和析构函数 29克隆 31访问属性和方法 31类的静态成员 33访问方式 34绑定 37抽象方法和抽象类 40重载 43类的自动加载 44对象串行化 44Zend 引擎的发展 45第六章 Smarty技术 50Smarty简介 50Smarty简明教程 51第七章 PHP应用 56Php 创建图像 56读取文件目录 56Php 上传讲解 57第八章 Ajax技术 60什么是Ajax 60Ajax的开发模式 60XMLHttpRequest 60PHP和AJAX请求 61AJAX MySQL 数据库实例 65AJAX response XML实例 68第一章 PHP环境与安装下载首先去网上下载wamp安装包,网址/down/sof.php/4672.html安装教程网址:/wiki/WAMP5%E5%AE%89%E8%A3%85%E8%AF%A6%E7%BB%86%E5%9B%BE%E8%A7%A3安装在Dreamweaver里设置站点: 这样就完成了php环境的安装 ,之后把文件拷到www目录下运行就行了第二章 PHP基础1.环境讲解Wamp工作原理apache:配置文件,讲解里面得内容。php:配置文件讲解。mysql:配置文件介绍。HTML语法标签表单讲解做一个html得表单发送到一个php把表单里的东西输出延伸到上边得wamp工作原理PHP语法c语言(冒泡法)改编为php代码从而讲解php知识(if,else,for,foreach,while,do while switch,数组,变量,常量,变量操作符,+,-,)PHP标记 echo “Hello PHP”; 变量PHP中用$符号定义,赋值得时候自动声明注意:变量区分大小写,变量的组成总是以字母或下 划线开始PHP是一种弱数据类型语言不需要事先声明你的变量的数据类型可以不用声明变量就直接使用,PHP会使用你所赋值 的内容自动定义数据类型注释多行注释 /* */单行注释 / 常量常量是固定的数值例如圆周率,可以是任何的数据类型常量可以理解为储存数据的容器,但它和变量完全不一样,而且通常情况下它的名称会大写最主要的不同是常量的数值不会变,你不能通过重新定义 的方式改变一个常量。常量分为:内置常量(PHP_OS PHP_VERSION 等)和自定义常量。内置常量,PHP系统提供的在任何页面数值不会改变用define( )函数来自定义常量。define(“mycomputer”, “IBM”);定义常量:mycomputer 常量的值为 IBMdefined(“mycomputer”); 检测常量是否被定义,定义返回1 否则返回空例如:define(NAME, php);define(NAME, linux);echo NAME;算术操作符算术运算符与我们常见的数学运算符类似。例如:相加: $a + $b相减: $a - $b相乘: $a * $b相除: $a / $b取模(求余): $a % $b短路赋值操作符:= += -= *= /= %=自动增加自动减小操作符:$a+ +$a $a- -$a比较操作符= = $a = $b $a与$b数值相等 表达式返回true= $a=$b $a与$b数值且类型相等 是返回true $a $a$b $a大于 $b 表达式返回true= $a= $a=$b $a大于等于 $b 表达式返回true!= $a!=$b 数值不相等 表达式返true!= $a!=$b 数值且类型不相等(不等同于) 表达式返true逻辑运算符逻辑与(and,&) 左右值都为真 表达式返回 true逻辑或(or,|) 左右值有一个为真 表达式返回 true逻辑非(!) 逻辑非后的值为假 表达式返回 true逻辑异或(xor) 值有且只有一个为真 表达式返回 true2.留言板简单留言板代码实现:1MESSAGE_ADD.PHP简单留言板简单留言板姓名: 留言内容: 2MESSAGE_LIST.PHP留言板留言列表 写留言3.WRITE_MESSAGE.PHP留言板?$fp=fopen(message.txt,a+);$day=date(Y年m月d日);$s=$day.$_POSTname.留下心声:.$_POSTmessage.;$write=fwrite($fp,$s);fclose($fp);echo谢谢你的留言!;?重写查看留言第三章 字符串操作/文件操作1.字符串操作论哪种语言,字符串操作都是个重要的基础,往往是简单而重要。正像人说话相同,一般有形体(图像界面),有语言(print 字符串?),显然字符串能解释更多的东西。PHP提供了大量的字符串操作函数,功能强大,使用也比较简单以下将简单的讲述他的功能和特性。 弱类型PHP是弱类型语言,所以其他类型的数据一般能直接应用于字符串操作函数里,而自动转换成字符串类型,进行处理,如:echo substr(1234567, 1, 3); 和echo substr(123456,1, 3); 是相同的定义一般用双引号或单引号标识一个字符串。比如$str = i love u; $str = i love u; 他者两者是有一些差别的。后者将一切单引号的内容都会当作字符处理;前者则不然。比如$test = iwind; $str = i love $test; $str1 = i love $test; echo $str; /将得到 i love iwind echo $str1; /将得到 i love $test 同样的以下两个例子的行为也不相同的:echo i love test; / 将得到 i love est,已将t视为转义 echo i love test; / 将得到 i love test 从而能简单认为双引号里的内容是经过“解释”过的,单引号的是“所见即所得”的(特别地,会被认作一个)。显而易见,双引号形式的更为灵活一些,当然单引号会适用于一些特别的场合,这里就不作阐述了。输出PHP里的输出最常用的是echo,print.两者都不是真正的函数,而是语言构造,所以调用时不必用双括号(比如echo(test);print(test).在输出的时候两者都能实现赋值:echo $str=test; /一方面输出test,一方面把test赋给字符串变量 $str print $str=test; 两者除了名字不相同外,还是有其他差别的。print具有返回值,一直返回1,而echo没有,所以echo比print要快一些:$return = print test; echo $return; / 输出1 也正因为这个原因,print能应用于复合语句中,而echo不能:isset($str) or print str 变量未定义; / 将输出str 变量未定义 isset($str) or echo str 变量未定义;/ 将提示分析错误 echo一次可输出多个字符串,而print则不能:echo i ,love ,iwind; / 将输出 i love iwind print i ,love ,iwind; / 将提示错误echo,print还能输出被称作“文件句法”的字符串,句法如:echo 标签名称 . 字符串内容 . 标签名称; 比如 echo 0), 比较的是 b和Bstrcasecmp用于不区分大小写的字符串比较:echo strcasecmp(abcdd, aBcde); / 返回 -1 (0), 比较了 abc 和 aBc strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度:echo strncasecmp(abcdd, aBcde, 3); / 返回 0, 比较了 abc 和 aBc, 由于不区分大小写,所以两者是相同的。 更有一种情况是单单比较字符串大小,达不到我们预定的需求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,PHP提供了两个自然对比的函数strnatcmp,strnatcasecmp:echo strnatcmp(10.gif, 5.gif); / 返回 1 (0) echo strnatcasecmp(10.GIF, 5.gif); / 返回 1 (0) 替换替换的意义在于将一个字符串的一部分进行改动,使之成为别外一个新的字符串,以满足新的需求。PHP里通常用str_replace(要替换的内容, 要取代原内容的字符串, 原字符串)进行替换。echo str_replace(iwind, kiki, i love iwind, iwind said); / 将输出 i love kiki, kiki said 即将 原字符串中的所有iwind都替换成了kiki.str_replace是大小写敏感的,所以对你不能设想用 str_replace(IWIND, kiki,.)替换原字符串中的iwind.str_replace还能实现多对一,多对多的替换,但无法实现一对多的替换:echo str_replace(array(iwind, kiki), people, i love kiki, iwind said); 将会输出i love people, people said第一个参数中的array(iwind, kiki)都被替换成了peopleecho str_replace(array(iwind, kiki), array(gentle man, ladies), i love kiki, iwind said); 输出 i love ladies, gentle man said 。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。和此有些类似的是strtr,此外,PHP还提供了substr_replace,实现替换一部分的字符串。语法如下:substr_replace (原字符串, 要替代的字符串, 开始替换的位置 , 替换的长度)其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。echo substr_replace(abcdefgh, DEF, 3); / 将输出 abcDEF echo substr_replace(abcdefgh, DEF, 3, 2); / 将输出 abcDEFfgh 第一个例子中,从第三个位置(即d)开始替换,从而把 defgh都替换成了“DEF”第二个例子中,也是从第三个位置(即d)开始替换,但只能替换2个长度,即到e,所以就把de替换成了DEF.PHP还提供了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数应用正则表达式来完成字符串替换,用法请参考手册。查找和匹配PHP里用于查找或匹配或定位的函数非常多,他们都有不同的意义。这里只讲述用得比较多的strstr,stristr.后者和前者的功能,返回值都相同,只是不区分大小写。strstr(母字符串, 子字符串)用来查找子字符串在母字符串中第一次出现的位置,并返回母字符串中从子字符串开始到母字符串结束的部分。比如echo strstr(abcdefg, e); /将输出 efg 如果未找到子字符串,则返回空。因为能用来判断一个字符串中是否含有另外一个字符串:$needle = iwind; $str = i love iwind; if (strstr($str, $needle) echo 里面有 iwind; else echo 里面没有 iwind; 将会输出里面有 iwind1,htmlspecialchars($string)这是他的最简单用法,将字符串中的一些特别字符(顾名思义)&,转换成他们对应的HTML实体形式:$str = i love kiki, iwind said.; echo htmlspecialchars($str); 将会输出i love kiki, iwind said.2,htmlentities($string)将所有能转换成实体形式的字符都转换成实体形式。3,html_entity_decode($string);PHP4.3.0以后加入的具有和htmlentities($string)相反的功能。4,nl2br($string)将字符串中所有换行符转变成 + 换行符。如:$str = i love kiki,n iwind said.; echo nl2br($str); 将会输出i love kiki,iwind said.2.文件操作读取函数首先介绍的是一个从目录读取的函数,opendir(),readdir(),closedir(),使用的时候是先打开文件句柄,而后迭代列出:?php$base_dir = filelist/;$fso = opendir($base_dir);/打开文件echo $base_dir. ;while($flist=readdir($fso)echo $flist. ;closedir($fso)/关闭文件?这是讲返回文件目录下面的文件已经目录的程序(0文件将返回false).有时候需要知道目录的信息,可以使用dirname($path)和basename($path),分别返回路径的目录部分和文件名名称部分,可用disk_free_space($path)返回看空间空余空间.创建命令:mkdir($path,0777),0777是权限码,在非window下可用umask()函数设置.rmdir($path)将删除路径在$path的文件.dir - directory 类也是操作文件目录的重要类,有3个方法,read,rewind,close,这是一个仿面向对象的类,它先使用的是打开文件句柄,然后用指针的方式读取的.,这里看php手册:handle . n;echo Path: . $d-path . n;while (false != ($entry = $d-read() echo $entry.n;$d-close();?输出:Handle: Resource id #2Path: /etc/php5.apachecgicli文件的属性也非常重要,文件属性包括创建时间,最后修改时间,所有者,文件组,类型,大小等.下面我们重点谈文件操作.文件操作1.读文件首先是一个文件看能不能读取(权限问题),或者存在不,我们可以用is_readable函数获取信息.:判断文件存在的函数还有file_exists(下面演示),但是这个显然无is_readable全面.,当一个文件存在的话可以用但是file_get_contents函数在较低版本上不支持,可以先创建文件的一个句柄,然后用指针读取全部: $fso = fopen($cacheFile, r); $data = fread($fso, filesize($cacheFile); fclose($fso);还有一种方式,可以读取二进制的文件:$data = implode(, file($file);2.写文件和读取文件的方式一样,先看看是不是能写:能写了的话可以使用file_put_contents函数写入:file_put_contents函数在php5中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用,可以使用如下方式:$f = fopen($file, w);fwrite($f, $data);fclose($f);替换之.写文件的时候有时候需要锁定,然后写:function cache_page($pageurl,$pagedata)if(!$fso=fopen($pageurl,w) $this-warns(无法打开缓存文件.);/trigger_error return false;if(!flock($fso,LOCK_EX)/LOCK_NB,排它型锁定 $this-warns(无法锁定缓存文件.);/trigger_error return false;if(!fwrite($fso,$pagedata)/写入字节流,serialize写入其他格式 $this-warns(无法写入缓存文件.);/trigger_error return false;flock($fso,LOCK_UN);/释放锁定fclose($fso);return true;3.复制,删除文件php删除文件非常easy,用unlink函数简单操作:即可.复制文件也很容易:可以使用rename()函数重命名一个文件夹.其他操作都是这几个函数组合一下就能实现的.4.获取文件属性我说几个常见的函数:获取最近修改时间:返回的说unix的时间戳,这在缓存技术常用.相关的还有获取上次被访问的时间fileatime(),filectime()当文件的权限,所有者,所有组或其它 inode 中的元数据被更新时间,fileowner()函数返回文件所有者$owner = posix_getpwuid(fileowner($file);(非window系统),ileperms()获取文件的权限,filesize()返回文件大小的字节数:获取文件的全部信息有个返回数组的函数stat()函数:那个键对应什么可以查阅详细资料,此处不再展开.第四章 PHP 数据库操作1.数据库基础知识数据库访问途径1、使用工具MYSQL官方的工具访问:MySQL Administrator tool 2、使用第三方工具访问:mysqlexec 、 mysql连接器 3、使用WEB方式访问:phpMyAdmin(最常见) 比较: 使用客户端工具操作效率高,安全性高使用WEB方式简单方便,不受限制演示:建立test库、user表、id name 字段 id主键 name 整理 utf8_unicode_ci 先提问:什么叫做数据库严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。数据库说白了就是盛放数据的东西。Message.txt就是一个数据库。里面放着你所用到的数据。看留言板这个例子,你们都懂了吧,里面有几个语句,其实就用到了数据库的概念。其实语句这些就类似是对数据库的应用。这里引用第二章留言板的例子。将代码修改成如下:Message?php$fp=fopen(message.txt,a+);/连接数据库$day=date(y年m月d日);$s=$day.$_POSTname.留下心声:.$_POSTmessage.;$write=fwrite($fp,$s);/插入语句fclose($fp);/关闭数据库echo谢谢你的留言!;?List介绍数据库中常用字段类型整数型:TINYINT,SMALLINT,INT,BIGINT小数型:FLOAT,DOUBLE,DECIMAL(M,D)字符型:CHAR,VARCHAR日期型:DATETIME ,DATE,TIMESTAMP备注型:TINYTEXT ,TEXT ,LONGTEXT四大SQL语句1、SELECT 查询语句和条件语句2、Insert 插入语句3、Update 更新语句 4、Delete 删除语句 SELECT 查询字段 FROM 表名 WHERE 条件 查询字段:可以使用通配符* 、字段名、字段别名表名: 数据库.表名 ,表名常用条件: = 等于 、不等于、in 包含 、 not in 不包含、 like 匹配 BETWEEN 在范围 、 not BETWEEN 不在范围 条件运算: and 、 or 、 ( ) insert into 表名 (字段,) values(值,)insert into 表名 values(值,)UPDATE 表名 SET 字段 = 值 WHERE 条件 limit 常用条件: = 等于 、不等于、in 包含 、 not in 不包含、 like 匹配 BETWEEN 在范围 、 not BETWEEN 不在范围条件预算: and 、 or 、 ( ) DELETE FROM 表名 WHERE 条件 limit 常用条件: = 等于 、不等于、in 包含 、 not in 不包含、 like 匹配 BETWEEN 在范围 、 not BETWEEN 不在范围条件预算: and 、 or 、 ( ) 例:$sql=SELECT * FROM user;$sql=INSERT INTO user ( id,name)VALUES ( NULL,aaa) ;$sql=UPDATE user SET name=bbbbb WHERE name =aaa;$sql=DELETE FROM user WHERE name =bbbbb ;mysql_query($sql);排序,分组,指针查询,计算分组语句:group by 字段 语句最后 order之前排序语句:order by 字段,字段 ASC / DESC 语句最后 limit之前指针查询:limit 初始值,结束值 语句最后计算: COUNT(*) 统计函数 MAX(*) 最大值函数 MIN (*) 最小值函数 AVG(*) 平均值函数 SUM(*) 累计值函数()主键如何区分相同两个人?名字?性别?假如什么都一样的时候,看什么?指纹。概念主关键字(主键,primary key)是被挑选出来,作表的行的惟一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。作用1)保证实体的完整性;2)加快数据库的操作速度3) 在表中添加新记录时,ACCESS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。4) ACCESS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。特点1) 一个表中只能有一个主键。如果在其他字段上建立主键,则原来的主键就会取消。在ACCESS中,虽然主键不是必需的,但最好为每个表都设置一个主键。2)主键的值不可重复,也不可为空(NULL)。定义主键的方法在表的设计视图中,选择要定义为主键的一个或多个字段(如果是单字段,可以单击该字段左侧的选定器;如果是多个字段,可以先按住CTRL键,再次单击这些字段的选定器),然后单击工具栏上的主键按钮,或者单击右键,从快捷菜单中选择”主键”命令。定义主键后,在主键的左侧会显示一个钥匙状的图标,表示该字段已被设为主键,如果没有定义主键,则在保存表时,ACCESS会弹出一个消息对话框,询问用户是否创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆能源职业技术学院《广告学》2024-2025学年第一学期期末试卷
- 河南应用技术职业学院《建筑制图与测绘》2024-2025学年第一学期期末试卷
- 重庆理工大学《计算机游戏设计基础》2024-2025学年第一学期期末试卷
- 广东江门中医药职业学院《环境工程设备基础》2024-2025学年第一学期期末试卷
- 安徽师范大学皖江学院《面向对象程序设计实验与课程设计》2024-2025学年第一学期期末试卷
- 惠州城市职业学院《多元统计分析实践》2024-2025学年第一学期期末试卷
- 南昌师范学院《组合数学与图论初步》2024-2025学年第一学期期末试卷
- 2025年涂覆材料项目申请报告模板
- 2025年生化诊断试剂项目立项申请报告
- 2025年地面瞄准设备、定位定向设备项目立项申请报告模板
- 2025民办中学教师劳务合同模板
- 2025年事业单位考试贵州省毕节地区纳雍县《公共基础知识》考前冲刺试题含解析
- 高中喀斯特地貌说课课件
- 黄冈初一上数学试卷
- 2025年中国花盆人参行业市场发展前景及发展趋势与投资战略研究报告
- QGDW11337-2023输变电工程工程量清单计价规范
- 航天飞行器模型设计教学
- 边坡稳定性分析评价报告
- 记账实操-节能环保企业的全盘账务处理实例
- 居间合同协议书范本txt下载
- 卵巢癌类器官规范化建立及临床转化初步应用专家共识(2025年版)解读
评论
0/150
提交评论