如何平均excel小数点四舍五入入到PostgreSQL的2位小数

如何平均四舍五入到PostgreSQL的2位小数
tongh00082
select round(1.2345,2);round函数,第一个参数必须是numeric类型,第二个参数是保留几位小数
为您推荐:
其他类似问题
扫描下载二维码第3章 PHP的基本语法_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第3章 PHP的基本语法
上传于||暂无简介
大小:2.16MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
第一讲:日21:02:50PHP:Hypertext preprocessor 超文本语言PHP编程手册,类似于C,Perl移植性非常好,参考源码广。lamp:linux &wamp:windowsWampServer 5:PHP5.2.5 MySQL5 Apache2 PHPMyAdmin2.11.1.1 SQLiteManager 1.2.0WAMPS display errors, short open tag:短标签模式WampServer2&标签语言:&?...?&&?php...?&&%..%&;结束,否则会出现错误。注释风格:/* &*/;//;# Unix风格单行注释学会使用注释来屏蔽符号来调试第二讲:日21:03:04弱类型 只是局部变量 _和字母开头标量类型:Boolean integer float(double) string复合类型:array object" "支持转译字符,''不支持转译字符。$bo=array(1,2,3); $bo=arrary("A"=&1,"B"=&2);discuz linux 777:最高权限; 775&第三讲:日21:31:461、算术运算。2、赋值运算。3、比较运算。4、逻辑运算。5、递增递减运算。【+= *=&==只判断值而不判断类型;===完全比较:数值类型和数值 &FALSE不输出。&&逻辑与and; ||逻辑或or; xor逻辑异或; 先将比较的两边转换成布尔类型的,在执行它们的关系。得到值为布尔值。递增递减只能操作变量。$a++ 相当于+1后输出;++$a 先运算后加$a;;$a--;--$a;做运算赋值以后在输出:$a=6;echo $a++; //输出为6;】第四讲:条件语句日22:22:401、if(expr)&& echo TRUE;else&& echo FALSE;2、规范if(expr){&& &echo TRUE}else{&& &echo FALSE;}3、if(expr){echo TRUE;}elseif(expr){}else{echo FALSE;}switch:switch($i){&&case 0:&& &echo"输出0";&& &&&case 1:&& &echo "输出1";&& &&&case 2:&& &echo "输出2";&& &&&default:&& &echo "什么都不是";}第五讲:循环语句 日22:54:28【break n循环控制语句;do..do{....;}while(expr)//先做一次while(expr){....;}for($i=1;$i&=10;$i++){&&【if($i==5) break 1;】&&echo "循环".$i."&br&";}】第六讲:array 日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[]=统计:count($arr);判断是否是组数:is_array($arr);另一种方法explode对变量中某一符号进行拆分。 explode("key",value);遍历数组:for while 最巧妙的是foreachforeach($arr as $key=&$value){....;}-----------------------------------------双引号里面可以直接用变量。&?PHP$arr=array(a,b,c,d,e);foreach($arr as $key=&$value){&& &echo "关键字 $key 对应值 $value "."&br&";}?&关键字 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引用返回值,用&。&?PHP$myname="我的名字";$name="翟乃强";echo "在函数之前输出的".$name."&p&";function _pr($myname,&$name){&& &$name=$myname."是".$name."&p&";&& &echo $}_pr($myname,$name);echo "这个是加过&的输出".$?&引用赋值。这意味着新的变量简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变量。改动新的变量将影响到原始变量,反之亦然。这同样意味着其中没有执行复制操作&?php$foo = 'Bob'; & & & & & & &// Assign the value 'Bob' to $foo$bar = &$ & & & & & & &// Reference $foo via $bar.$bar = "My name is $bar"; &// Alter $bar...//echo $echo $ & & & & & & & & // $foo is altered too.?&&】第八讲 日20:47:32mysql:瑞典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 longtextcreate 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', '', '我的测试');update ``.``set``=''where ``.``=1;$sql = 'update `test` set `fortext`=\'中文支持看看哪\' where id=\'1\'';&VK717200第九讲 日22:02:231、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 3WHERE 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 正序排列,可省略orderby'regdate',id desc 先按regdate正序,regdate相同的按id降序select * from `test` limit 3,8 从第四条起,取8条纪录count/max/min/avg/sum(*)update `表名` set 字段= where 条件&delete from 表名 where 条件第十讲 日21:42:54php.ini加载mysql组件:extension=php_mysql.dllextension_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_idmysql_tablenamemysql_errormysql_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一样&?PHP$x =100;$s ="动物园";$formatted = sprintf("在%s中有%d只猴子",$s,$x);printf($formatted);print ($formatted);echo $?&第十一讲 日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 "留言成功!";&& &}&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"&"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&第十二讲 日12:10:25onsubmit="return checkpost();"&script language="javascript"&function checkpost(){if(myform.user.value==""{alert("名字");myform.user.focus();}if(myform.title.value.length&5){alert("标题不能少于5个字符");myform.title.focus();}}windows.location=windows.open提交内容的回车不是&br&显示出来得需要转换,\n在ANSI里是回车。&/script&str_replace(被替换,替换值,内容)function htmtocode($content){$content=str_replace("\n","&br&",str_replace(" "," ",$content));return $}上面的函数可直接用在输出上,显示内容便是html代码了。或者在提交将相应的转换存到数据库里面,直接的输出也可。提交前过滤替换的方法应该不错htmlspecialchars 格式化htmlhtmlspecialchars(要格式化对象,定义单双引号,编码)md5(加密对象 )setcookie("TEST","value",3600,"/dir",".",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 "&script language=\"javascript\"&alert('添加成功\\n');history.go(-1)&/script&";echo "&script language=\"javascript\"&locacation.href='login.php';&/script&";刷新login.php,重新载入,使cookie生效。退出cookie,使其值改变或清空即可。&meta http-equiv="Content-Type" content="text/ charset=gb2312" /&&meta http-equiv="content-language" content="zh-CN" /&&meta http-equiv="expires" content="Sunday 26 October
GMT" /&&meta http-equiv="pragma" content="no-cache" /&&meta name="copyright" content="? " /&&meta name="date" content="T20:50:30+00:00" /&&meta http-equiv="refresh" content="5; url=/" /&&meta name="robots" content="robotterms" /&/xhtml/meta_robots/ 搜索引擎方面设置&?php$aa="中国的哦";echo "'$aa'"."&br&";echo '$aa';?&'中国的哦'$aaexit();停止输出 或die("");第十三节 日13:28:27parse_url:将URL解析成固定键值名称的数组的函数。译:解析; 符合语法$ua=parse_url("http://username:/path?arg=value#anchor");print_r($ua);Array([scheme]=&http [host]=& [user]=&username [pass]=&password [path]=&/path&[query]=&arg=vale [fragment]=&anchor)$_SERVER["REQUEST_URI"]所有$_SERVER开头的都叫预定义服务器变量。REQUEST_URI取得当前的url,即域名后面完整的地址路径。$_SERVER("php_info") &dirname()limit 开始位置,操作条数 &limit0,20 取前面20条。limit10,20 从11条开始取20条。分页原理:将数据库中的结果集,分成一段一段的显示。【每页有几条,当前在第几页】公式:(当前页数-1)*每页条数,每页条数=====limit($Page-1)*$PageSize,$PageSize//用到的变量名称$pagesize/$url/$num/$pageval(当前页)/$page(当前页开始取记录的条目数)limit $page $pagesize$pagesize=5;$url=$_SERVER["REQUEST_RUI"];$url=parse_url["path"];$numq=mysql_query("select * from message",$conn);$num=mysql_num_rows($numq);if($_get["page"]){$pageval=$_get["page"];$page=($pageval-1)*$$page.=",";}if($num&$pagesize){if($pageval&=1) $pageval=1;&& &echo "&div style=margin-left:150border-left:#000 1&共有 $num 条纪录 &a href=$url?page=".($pageval-1)."&上一页&/a& &a href=$url?page=".($pageval+1)."&下一页&/a&";}$sql="select * from message limit $page $pagesize";$msq="mysql_query($sql,$conn)";while($row=mysql_fech_array($msq)){}&?php&& &mysql_connect("localhost", "mysql_user", "mysql_password") or&& & & &die("Could not connect: " .【 mysql_error()】);&& &mysql_select_db("mydb");&& &$result = mysql_query("SELECT id, name FROM mytable");&& &while ($row = mysql_fetch_array($result, MYSQL_NUM)) {&& & & &printf ("ID: %s &Name: %s", $row[0], $row[1]);&& &}&& &【mysql_free_result($result);】?&&&?php$a="局部变量";function aa(){&& &global $a;&& &echo $a;}aa();?&&?phpfunction Test(){&& &static $count = 0;&& &$count++;&& &echo $&& &if ($count & 10) {&& & & &Test();&& &}&& &$count--;}Test();?&& 若去掉static则成死循环$GLOBALS 由所有已定义全局变量组成的数组。变量名就是该数组的索引。&preg_replace() 函数使用了 Perl 兼容正则表达式语法,通常是比 ereg_replace() 更快的替代方案。手册 正则表达式 日22:15:54正则表达式是从左向右去匹配目标字符串的一组模式。\ 反斜杠:首先,如果其后跟着一个非字母数字字符,则取消该字符可能具有的任何特殊含义。此种将反斜线用作转义字符的用法适用于无论是字符类之中还是之外。如果想匹配一个“*”字符,则在模式中用“\*”。 因此在非字母数字字符之前加上一个“\”来指明该字符就代表其本身总是安全的。尤其是,如果要匹配一个反斜线,用“\\”。单引号或双引号括起来的 PHP 字符串中的反斜线有特殊含义。因此必须用正则表达式的 \\ 来匹配 \,而在 PHP 代码中要用 "\\\\" 或 '\\\\'。 的第二种用途提供了一种在模式中以可见方式去编码不可打印字符的方法。\e escape \f换页符&\n 换行 \r 回车/Info/Article-626cd6a0.html是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。可以通过在一对分隔符之间放入表达式模式的各种组件来构造一个正则表达式,即/expression/.普通字符 非打印字符 特殊字符 限定符 定位符 选择^:匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。SQL中为以外的[^M] 除了M开头的$:匹配输入字符串的结尾位置( ):标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用.*:匹配前面的子表达式零次或多次。zo*匹配z/zoo *等价于{0,}+:匹配前面的子表达式一次或多次。zo+匹配zo/zoo,但不能z,等价于{1,}?:匹配前面的子表达零次或一次,或指明一个非贪婪限定符。do(es)?匹配do/does,{0,1}.:匹配除换行符 \n之外的任何单字符。要匹配包括 \n 在内的任何字符,请使用象 [.\n] 的模式。[:标记一个中括号表达式的开始。[]匹配所包含的任意一个字符。[abc] 可以匹配 plain 中的 a。[^]匹配未包含的字符。[a-z]{:标记限定符表达式的开始。|:指明两项之间的一个选择。z|food能匹配z或food。(z|f)ood匹配zod或food{n}:n非负整数。匹配确定的n次o{2}不能匹配Bob,但能匹配food.{n,}:n 是一个非负整数。至少匹配n 次。o{2,}不能匹配Bob,可以匹配foooood.o{1,}等价于o+,o{0,}等价于0*.{n,m}:m 和 n 均为非负整数,其中n &= m。最少匹配 n 次且最多匹配 m 次。o{1,3}匹配foooood中前三个o。0{0,1}等价于0?.优先级操作符 & & & & & & & & & & & & & &描述\ & & & & & & & & & & & & & &转义符(), (?:), (?=), [] & & & & & &圆括号和方括号*, +, ?, {n}, {n,}, {n,m} & &限定符^, $, \anymetacharacter & & & & & &位置和顺序| & & & & & & & & & & & & & &“或”操作 &定位符:用来描述字符串或单词的边界,^和$分别指字符串的开始与结束,\b描述单词的前或后边界,\B表示非单词边界。不能对定位符使用限定符。&用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。ceil:进一取整 floor:舍去取整 round:四舍五入 intval:对变数转成整数型态第十四节:日21:28:21enctype 将上传的内容转换格式,默认的编码格式是application/x-www-form-urlencode,通过浏览器传递参数,不能用于文件上传,只有使用了multipart/form-date才可以传递文件数据,它是二进制编码是设置表单的MIME编码。$_FILES 将上传的内容转换成数组,$_FILES["myFile"]["name"]/["type"](文件MIME类型:image/jpg、jpeg、png、pjpeg、gif、bmp、x-png、application/x-zip-compressed)/["size"](单位字节)/["tmp_name"](存储的临文件名,一般是等系统默认)/["error"](相关的错误代码 0:成功。1、超过文件大小phplin中。2、超过了大小MAX_FILE_SIZE指定的值。3、只有部分被上传。4、没有文件被上传。5、上传大小为0.)move_uploaded_file 将所上传的文件从缓存移动要所需位置. move_uploaded_file(临时文件即tmp_name,目标位置和文件名可设置目录);is_uploaded_file 判断上传MIME的文件函数。第15节 日11:31:36生成html的好处:减轻服务器压力、利于搜索fopen:(路径和文件名,方式) 方式:R/W/A。不存在也可以打开,以写入方式打开,然后写入会自动生成的。fread:(打开的文件,结束位置)字节为单位以二进制模式读取。filesize(路径和文件名) 读取文件大小,字节。fwrite(路径和文件名,写入的内容)fclose(路径和文件名)unlink(路径和文件名) 删除文件函数rmdir(路径和目录名)删除目录函数mkdir(路径和目录名)第十六节:日22:06:32邮箱正则:^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-]])+(\.[a-zA-Z0-9_-]])+(.*):()匹配开始和结束。.:匹配除换行符。*:匹配1个或多个任意字符。ereg(正则表达式,内容[,返回的数组]):若省略数组,找到则返回值为TRUE,否则为false。ereg()有大小写。eregi()无大小写。if(ereg("^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-]])+(\.[a-zA-Z0-9_-]])+",$mail)){echo "E-mail通过初步检查";}file_get_contents('doc.txt',f)等价于$fo=fopen('doc.txt',r);fread($fo,filesize('doc.txt'));要匹配是网站中的唯一性&?php// 模式定界符后面的 "i" 表示不区分大小写字母的搜索if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {&& &print "A match was found.";} else {&& &print "A match was not found.";}?&&=====================================================object oriented program from 17 to 25 lessons=====================================================第17讲:日22:37:03面向对象:OOP:object oriented program要素:1、抽象性。就像打电话。2、封装性。3、共享性。4、强调对象结构而不是程序的结构。特点:封装、继承、多态,缺一不可。类组成对象,对象实现方法构造函数:自定义函数class() 有了类,才能有方法。有了类,才能创建方法。new函数对象实例化 new 对象名(参数) 使用-&访问实例化对象里的内容。在类中,简单声明变量的类型。var:php4 & public:php5方法前面什么也不加,可随意访问。&&第18节:日23:26:39var public 修饰符。$this关键字是用来访问当前对象中的属性和对象方法的系统变量。是在对象中特殊的一种使用构造函数和变量的方法。不需要实例化,仅能在当前类中使用。class MyPc{public $public $function vod(){&&this-&}........this-&vod();........}__construct():构造函数。类中初始化对象。在创建一个类的时候初始化一些操作。以下2种方法相同。在创建类的时候,直接执行构造函数。如果没有也会自动建立,只是一个空的。php4:class MyPc{&& &function MyPc(){&& &初始化操作。}}php5继承了php4,为了更好的针对面向对象开发有了固定的函数:classic MyPc{&& &function__construct(){&& &初始化操作}}析构函数 __destruct():能够在对象释放时自动被调用的方法。垃圾回收机制。当对象内部的操作执行完毕的时候__destruct()被调用,然后对象所使用的内存被释放出来。规则:后进先出&?php$time=date('Y-m-d H:i:s');echo $?&第19节 日13:31:30类的封装:把一些相关的属性和行为隐藏起来,从而得到保护和安全。封装关键字就是规定其使用范围。public:全局,类内部和外部子类都可用。protected:受保护的,只有本类的子类或父类可访问。(实例化对象后是访问不到的,提示初始化失败或访问错误。)private:私有的,只有本类可以访问。相关函数__set(),__get():封装的系统函数,对象方法的固定命名。为某些特定操作的时候需要访问和赋值封装的类型。__set(变量名,值):取得当前类中封装过私有属性或方法重新执行或赋值操作。__get():取得当前类中封装过的属性或方法并转换成公有属性。__isset():class cl1{function __isset($value){//当外部用isset时,系统会自动调用此系统方法。&&if(isset($value)){&& &echo "自动调用__isset系统方法";&& &return $}else{}}}__unset()/html/54/.html第20讲 日17:15:38extends:单一继承class MyPc{}class home extends MyPc{}避免方法和属性重名。否则会变成重载。基类方法重载和基类方法访问。因为属于向下继承的原理,基类不能使用派生类里的内容,这个是基类的一些方法不能完成我们的一些派生类的功能,我们就可以进行方法重载了,避免新建方法带来的混乱。方法重载也可以理解方法覆盖,在派生类里使用与基类方法重名的方法名称执行重载。重载时我们需要调用原始基类内容,在重新增加新内容,我们可以使用 基类名::方法名称 来访问父类中的方法。【继承基类和重载的时候调用基类的方法】第21讲 日0:03:27抽象:abstract。意义:提供一个规范。抽象方法、抽象类:抽象类建立在抽象方法基础之上的,抽象类至少有一个抽象方法,称之该类为抽象类。没有抽象方法就算是声明为抽象类也不是抽象类。抽象方法不允许有{},抽象方法前面必须要加abstract。abstract class class1{&&abstract function fun1();//或带参数.........}抽象类的特点:1、不能被实例化,只能被继承。2、继承的派生类当中,要把所有的抽象方法重载后才能实例化。不重载完,子类也不能被实例化。第22节 日13:28:51类中常用关键字:&&final:"锁"定义类和方法的关键字。定义类时该类不能被继承,定义方法时将不能被重载。&&self:用来用类访问当前类中的内容(属性或方法)的关键字,类似$this,但$this需要类实例化才能使用,类中用$this-&是不能访问到类中的静态属性的,因为没有创建实例,内存中没有被存储相应的信息。self可以直接访问当前类中的内部成员。因为没有实例化类访问内部属性或方法是没有意义的,所以self一般用来访问类中的静态成员、常量,或者其他定义内容。self::类内部成员(属性或方法)===类名::类内部成员(属性或方法)static:用来定义类的静态属性或方法,可以【在类未被实例化时使用】,静态属性单独占用内存而不会因创建多个对象时而导致同样的方法或属性而重复占用。【静态方法内部禁止出现非静态内容,】类内部访问静态成员:类名称::静态成员、self::静态成员。类外部:类名称::静态成员。&&const:用来定义类中的常量,第一次定义后是不可以改变的。类似php外部定义常量的关键字define();Const只能修饰类当中的成员属性。注意事项:1、建议大写常量。2、常量不使用$符号。&?PHPfinal class MyPc{//用final修饰类,此类不能被继承。修饰方法不能被重载。&& &static $name="我的电脑";//创建一个静态的属性,不用创建实例,即可访问,静态方法或属性创建类之初变被驻留在内存成为共享的。以后创建实例,不会因创建多个对象时而导致同样的方法或属性而重复占用。&& &static function power(){//静态方法内部禁止出现非静态内容,$this就是非静态方法,只有创建实例才能划分出一内存来存储。&& & & &//return self::$name."正在开机。。。。";//self可以直接访问到当前类的内部成员,不需实例化,而$this需实例化才能访问&& & & &//访问类内部的静态方法或属性的另一种方式:&& & & &return MyPc::$name."正在开机。。。";&& &}&& &const &NAMES="谁的电脑?";//类中常量声明。没有$符号。类中访问用类名::属性名或者self::属性名即可。}echo MyPc::$name."&br&";//此处没有创建实例,就可以访问输出类中的属性。MyPc::$name="你的电脑";//静态的属性也可被修改。echo MyPc::power();//从外部访问类中的静态方法。?&第23节 日15:52:22接口:一种成员属性全部为抽象或常量的特殊抽象类。1、类中全部为抽象方法。2、首相方法前不用加abstrcat。3、接口抽象方法属性为public。4、【成员属性必须为常量]】。抽象类:1、类中至少有一个抽象方法。2、抽象方法前需加abstract。抽象类和接口共同点:1、本身都不能被实例化,必须被继承或者被引用。2、继承或引用后,必须把所有的抽象方法重载方可使用。interface demo(){conse NAME="名字";function aa();function bb();}2、引用规范:接口引用与继承关键字extends区别,继承只是单一性,接口使用implement可多个引用并用,分开。普通类引用:class mypc implement demo,demo2,demo3{}2、抽象类引用:abstract class mypc implement demo,demo2,demo3{// 将接口引用到抽象类中,依然不能使用,可以不进行重载,需要将里面的全部方法继承到普通类中然后重载才能使用。}继承父类引用接口并存:class mypc extends root implement demo,demo2,demo3{//先继承后接口,单继承多接口..............}4、接口与接口继承interface mypc extends demo{........}第24节 日18:07:19多态是继抽象和继承后,面向对象语言的第三个特征,是具有体现多种形态的能力表现,在OO中是指“语言具有根据对象的类型以不同方式处理”。 object oriented program,oop的模式并不仅仅是把很多函数和功能结合起来,目的儿时使用类,继承,多态的方式描述我们生活中的一种情况。从而似的我们的代码更具有“物”的意义。帮助我们减少一些重复复性的代码和条件语句的判断。instanceof:PHP一个类型运算符,用来测定一个给定的对象是否来自指定的对象类。&?PHPclass A{}class B{}$thing=new A;if($thing instanceof A){echo "来自A类";}elseif($thing instanceof B){echo "来自B类";}?&&第25节 日20:56:12__tostring:对象描述的配置。直接打印对象句柄,从而获得该方法的基本信息或其他内容。class My{&&function __tostring(){&& &echo "要显示的内容";}}$p=new My();echo $p;//要显示的内容__call($funname,$arr_value):自动调用一些不存在的对象方法的异常处理,使程序继续正常运行。class My{function __call($n,$v){echo"错误的方法名:".$n;echo"错误的参数".print_r($v);}}__clone:通过克隆的方式在内存中生成两个一样的对象或升级原对象。class My{function __clone(){echo "克隆时自动调用的函数";$this-&name="";//对克隆的对象的name属性重新赋值。}}$a=new My();$b=clone $a;__autolaod:快速取得对象名称并自动载入当前页面,注意是放了类外面的function __autoload($class_name){&&include($class_name.".php");}$p=new MyPc();$d=new Demo();//当new的时候会自动调用MyPc.PHP和Demo.PHP这两个页面,即include("MyPc.PHP");include("demo.php");__destruct():有几个对象就清理几次。function __destruct(){//初始化系统函数是:construct()&& & & &static $i=0;//这里是静态的属性,每当类建立的时候不必new就存贮在内存中。__destruct只摧毁new的对象。&& & & &$i++;&& & & &echo "&br& $i 每次摧毁一个对象,都要执行一次&br&";第26讲 日22:06:55第27讲 日23:50:27smarty phplib phpthinksmarty:用php写出的模板引擎,程序和美工分离,两者互不影响。优点:速度快、编译成一个非模板技术的php文件、缓存技术成一个html页、自定义插件。不适合:1、实时更新、一人的项目。smarty_inc.php$smarty-&config_dir= &变量目录 Config_File.class.php$smarty-&caching= & &是否开启缓存$smarty-&template_dir= 模板目录$smarty-&compile_dir= &编译目录$smarty-&cache_dir= & 缓存目录$smarty-&assign("变量名称","值(数组/变量)");&& & & &("title","PHP100中文站 ");这里引入smarty_inc.php$smarty-&display("模板名称");&& & & & & & & & ("index.htm");1&html&&title&{$name}&/title&变量、循环$smarty-&assign("模板变量","数组");内置section方法&name:循环名称 s自定义 loop:循环的内容 $stu:模板变量名{section name=s loop=$stu}{$stu[s].name}&!--s是遍历数组的个数,--&{sectionelse}{无内容}{/section}第28节 日22:03:58变量操作符:smarty中内置的一些操作函数。固定的操作方法(类似于PHP中内部函数,提前写好的PHP常用类。)使用"|"应用变量操作符,多个参数用":"分割开来{$name|truncate:10:"...."}截取前十个字符,多则用....代替。为防止采集,地址后面跟随即乱码capitalize 首字母大些 count_characters 计算字符数 cat 连接字符串&count_paragraphs 计算段落数 count_sentences 计算句子 count_words 计算单词data_format 时间格式 default &默认 escape 转码:html htlall url. indent 缩进 lower 小写 &upper 大写&nl2br 换行符替换车&br &regex_replace 正则替换 replace 替换 spacify 插空strip 除去多余空格 &strip_tags 取出html代码 truncate 截取 wordwrap 约束宽度{$name|cat:"php演示"}{$name|date_format:'%Y-%m-%d'}{$smarty.now|date_format:'%Y-%m-%d'}{$name|default:"没有内容哦"}{$name|escape:'html'} {$name|escape:'url'}转换成16进制{$name|indent:10:' '}前面加10个空格{$name|replace:'我':'你'}把我变成你,区分大小写{$name|spacify}每个单词插入空格{$name|spacify:_}空加下划线{$name|string_format:'%.2f'}将数字的小数点的位数保存为2位。{$name|str_string:'%d'}整数{$name|strip:''}除去所有空格{$name|strip:'_'}空格变成下划线{$name|truncate:30:'...'}截取30后出现...{$name|wordwrap:10:'&br&'}一行10个字符出现换行第29节 日15:33:04foreach遍历数组,与section功能一样,但一般用来处理一维数组无键值数组{foreach from=$name item=id} from指向哪个循环的数组id{$id}&br&{/foreach}有键值数组{foreach key=k item=i from=$name}{$k}:{$i}&br&{/foreach}{include file="index.htm"}{include file="D:\WWW\index.htm"}{include file='head.htm' title="Main Menu"} 在head.htm 直接讲$title替换车Main Menu{if $name=='ok'}{else}同样支持{elseif}{/if}{literal} 里面的内容当做文本处理,将忽略其内部的所有字符信息,而不是当做内置模板处理&script language='javascript'&不建议写在页面上,最好写在js中&/script&{/literal}{strip}清除标签的首尾空格和回车,不去除数据中的空格内容{/strip}第30节 日16:40:36模板分类,只应用了60%,还有缓存。提高本身的负载能力。缓存:直接访问该文件,而不去访问数据库。一直到了缓存时间结束,才去访问。调试的时候不要用缓存。配置:&$smarty-&cache_dir="";缓存地址$smarty-&caching=是否开启缓存$smarty-&cache_lifetime=60;缓存时间,单位秒$smarty-&display('catch.tpl',cache_id);//创建带ID的缓存$smarty-&clear_all_cache();//清除所有缓存$smarty-&clear_cache('index.htm');//index.tpl的缓存,带id的不能删除$smarty-&clear_cache('index.htm',cache_id);//清除指定id的缓存.同时清除源文件insert函数默认是不缓存的,并且这个属性不能修改index.htm&div&{insert name="get_time"}&/div&&!--不需要加()--&index.phpfunction insert_get_time(){//不用条用$smarty-&assign("","")&& &return date("Y-m-d H-m-s");}比insert更为强大的smarty_block,方法同上。{blockname}没有缓存的:{$smarty.now}{/blockname}第31节 日22:18:42fckeditor配置:$sBaseptch=$_SERVER["PHP_SELF"]///test.php/foo.bar -&&/test.php/foo.bar 这个结果。$sBaseptch=dirname($sBaseptch).'/';//只取得取得目录名&$oFCKeditor=new FCKeditor('FCKeditor1');//下面create()创建出的名称,提取里面的内容。$oFCKeditor-&BasePath=$sBastP应用:$oFCKeditor-&Create();//创建一个窗口$oFCKeditor-&Value='初始值';提交时,直接使用实例化时的名称'FCKeditor1'.第32节 日19:21:06SetCookie("cookie","cookievalue",time()+3600,"/forum",".",1);单位是毫秒 3600=1小时 .:使用的泛解析,.可以是任何内容,网站的任何页面(二级域名)都包含里面。1是是否否在https的安全传输时才有效。名为MyCookier的cookie,自动冲WEB服务器接受的HTTP头里解析出来,名为$myCookie,这个变量就是Cookie的值,数组同样适用。另一个办法是引用PHP的全局变量$HTTP_COOKIE_VARS数组(php4)。echo $MyCehco $CookieArray[0];echo $_COOKIE["MyCookie"];echo $HTTP_COOKIE_VARS["MyCookie"];SetCookie("cookie","");SetCookie("cookie","value",time()-1/time());必须在html输出之前设置。不同浏览器对Cookie的出来不一样,且有事会出现错误。一个浏览器能创建的Cookie数量最多为30个且每个都不能超过4KB,每个web站点能设置的Cookie总数不能超过20个。配置好了后第二个页面才会生效,session当时生效。session_start();\\初始化session,【需要在文件头部】$_SESSION[name]=//配置sessionecho $SESSION[name]//使用sessionisset($_SESSION[name]);//判断unset($_SESSION[name]);session_destroy();//消耗所有sessionsession_register() session_unregister session_is_registerde在php5中不再使用。第33节 日21:54:10GD库:丰富图片处理的API,处理、生成图片,略缩图、水印或网站数据生成报表。。extension=php_gd2.dllimagecreatetruecolor(int x_size,int y_size);//创建真彩色的一幅空图。imagecolorallocate(resource image,int red,int green,int blue);//为一幅图像分配颜色(调色板),第一次用的时候为背景色,第二次就不是了。imagestring(resource image,font,int x,int y,内容,颜色);//绘图函数。font:默认6种字体。x y:位置。rand([int min,int max]);//随即函数 rand(1,4) 随即1-4之间的数dechex(十进制数);//十进制转换为十六进制 十六进制:1-fDG+SESSION生成随机数-创建图片-随机数写入照片-保存在sessionecho (&script&window//');header("location:");header("refresh:0;url:index.php");header("content-type:image/jpeg");将所生成的内容以图片的形式输出。imagejpeg($);//以jpeg编码格式输出判断session也需要启动session_start();第34节 日0:09:41header定义头的动作content-type:xxxx/yyyylocation:xxxx:yyyy/zzzzstatus:nnn xxx&GD库对应的image类型:imagejpeg(*) imagegif(*) imagepng(*)&/php_view_481.html&imageline(resource image,int x1,int y1,int x2,int y2,int color) 划线imagesetpixel(resource image,int x1,int y1,int color) 画点imagettftext(resource image,float size,float angle,int x,int y,int color,string&fontfile,string text) 带字体的写入函数iconv("gb2312","utf-8","新年快乐");//首先将文字格式转换为UTF8格式。然后使用imagettftext调用一种字体,再将转换好的UTF8格式的中文写入图片中!rand()%100变量的分类以及具体的范围全局变量,超全局变量 外部变量 预定义变量,global $GLOBALS在条件 循环里等的变量,属于什么范围的变量呢?选择的汉字第35节 日21:36:36原始图片-》上传到dir-》载入到php-》php初始化-》水印处理(水印图片、文字)-&生成新图-》缩略图imagecreatefrom 图片载入函数。载入php是一个将图片编码转换php可识别的编码过程。gif/jpeg/png/wbmp/string(通过一串图片编码)imagecreatefromgif('');imagecopy(Dimg,Simg,intx int y,int src_x,int scr_y,int src_w,int src_h);&& & & & &原始图片,logo图片,X,Y,x,y,x_w,x_hImageCopyResized图片剪切函数,在使用前需要建立一个真彩图(imagecreatetruecolor),也就是方便内存来存储。(resource dst_img,resource src_image,int dst_x,int dst_y,int src_x,int src_y,int&dst_w,int dst_h,int src_w,int src_h);第36节 日21:40:51主要作用:分割 匹配 查找 替换preg_match(mode,string subject,array matches) 以perl语言为基础preg_match('//','fsdfdsfds',$arr);//需要开始结束符。mode:可以是任何的开始结束符号print_r($arr)//将$arr[0]即可。[0] 将包含与整个模式匹配的文本,[1] 将包含与第一个捕获的括号中的子模式所匹配的文本[2]整个模式匹配减去捕获括号内的匹配升下的ereg(mode,string subject,array regs)以POSIX基础(Unix,Script)不需要开始和结束符,结果是个bool值,假不返回。包含的元素:1、原子(普通字符:a-z A-Z 0-9、原子表、转义字符(至少有一个原子)2、【元字符】(有特殊功能的字符)3、模式修正符(系统内置部分字符i、m、S、U)功能的增强原子:①a-z A-Z_0-9 &最常见的字符②(abc)(skd)用圆括号包含起来的单元符号(完整匹配),是个整体模块③[abcs][^abd]方括号包含的原子表,【原子表】中的^代表排除相反内容.(部分匹配)^ ctrl符号④转义字符(通过原子表可以表示出转义字符)\d 包含[0-9]\D [^0-9]\w [a-zA-Z_0-9]\W [^a-zA-Z_0-9 ]\s 包含空白区域,如回车、换行、分页等[\f\n\r]第37节 日21:14:46*:匹配前一个内容的0次1次或多次.:匹配内容的0次1次或多次,但不包含回车换行(本身是内容)+:匹配前一个内容的1次或多次。?:匹配前一个内容0次或1次。|:类似php中的|,任意一个匹配则通过。^:匹配字符串首部内容。$:匹配字符串尾巴内容。\b:匹配单词边界,边界可以使空格或者特殊符号\B:匹配除带单词边界以外内容。{m}:匹配前一个内容匹配的次数为M次。{m,}:匹配前一个内容匹配的次数大于等于M次。{m,n}:匹配前一个内容的重复次数M次到N次。():合并整体匹配,【并存放内存,可使用\1\2...依次获取。】mode:"/go*gle/" ; subject:"google"; // 这里面的o是匹配了2次,不算在正则表达式之中的,可以不出现,或1次多次。.*:可以匹配任何内容。mode:"/go*gle|baidu/" ; subject:"fdsfdsfdgoogle";可以匹配成功,和原子表类似,选择性的30分,讲^ $的使用mode:/^google/必须在开头出现google,/google$/必须在结尾出现googlemode:"/\bis\b/" is必须是被分割的才可以mode:/2009(.*)02\\1(15)/;日期之间的表示符合必须相同mode:/[0-9]{2,4}(.*)[0-9]{1,2}\\1[0-9]{1,2}/;日期匹配格式[0-9] \d相同第38讲 日22:33:14&运算优先级:() &*?+{} &^$\b &|写在正则表达式后面添加模式修正符 /正则/U正则默认是区分大小写i:正则内容在匹配时不区分大小写m:在匹配首内容或者尾内容的时候采用多行识别匹配,每一行匹配。主要对^ $进行扩展,即多行匹配,只要有1行开头即可。s:将转义回车取消为单行匹配如.匹配的时候x:忽略正则中的空白A:强制从头开始匹配eg:使m功能失效。D:强制$匹配尾部无任何内容\nU:禁止贪婪匹配只跟总最近的一个匹配符并结束,常用来采集。第39节 日20:21:42匹配功能:preg_match_all(string pattern,string subject,array matches[,int flags])全部匹配函数,对结果排序使$matches[0]为全部模式匹配数组。截取比较详细的内容,采集网页,分析文本。替换功能。//看例题,all是将所有的东西都匹配到数组里面,而不是单一的,通常加/U 贪婪模式修正符。preg_replace(mixed pattern,mixed replacement,mixed subject[,int limit])类似str_replace,limit控制替换个数,替换内容可以是一个正则也可是【数组正则】。替换内容可以通过修正符e来解决替换值性内容。//看例子分割功能:preg_split(string patter,string subject[,int limit[,int flags]])类似explode第40节 日20:56:37UBB是html的一个变种,Ultimate Bulletin Board(国外一个BBS程序),一种特殊的TAG。实现常用的一些功能。优点:安全性高、使用简单方便记忆、自定义功能强大,扩展性好、较少的数据库存储代码。缺点:排版功能弱、不能交叉使用。UBB Code-解析转换-HTML Code解析模式:1、UBB-&DB-&解析-&输出2、UBB-&解析-&DB-&输出[url][/url] &/(\[url\])(.*)(\[\/url])/i&$str=preg_replace("/(\[url\])(.*)(\[\/url\])/i","&a href=\"\\2\"&\\2&/a&",$str);&& & &/(\[b\])(.*)(\[\/b\])/第41节 日21:29:16通配符:%:0个或多个字符构成的字符串&_:单个字符&select * from table where title like 'php100%' 以php100开头select * from table where title like '%php100' 以php100结束select * from table where title like '%php100%' 包含php100的多关键字搜索原理和技巧提交一个或多个关键字符使用空格或者+进行区分的表单,接收后拆分出多个关键字放在数组中,执行sql(subject like '%$key[0]%'),通过符合模糊查找获得结果,输出结果前用正则替换关键字效果,最后输出。
阅读(457)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_083071',
blogTitle:'php 笔记01(扩展中...)',
blogAbstract:'第一讲:日21:02:50PHP:Hypertext preprocessor 超文本语言PHP编程手册,类似于C,Perl移植性非常好,参考源码广。lamp:linux &wamp:windows',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}}

我要回帖

更多关于 小数点四舍五入公式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信