PHP报表学习笔记
php学习笔记

PHP的基本语法<?phpe c ho"He llo,Wo rld!";?>产生如下结果He llo,Wo rld!变量则以$为开端。
你可以将上面的"He llo,W o rld!"写成这样:<?php$me ssage="He llo,W o rld!";e c ho$me ssage;?>字符串的串联(c o nc ate nat io n)则是用.(一个英文句点)标示出来;其它有关数字的运算符号就如同你所预期的一样:<?php$greet ing="He llo";$num=3+2;$num++;e c ho"$greet ing$numpe ople!";?>会产生如下结果He llo6peo ple!PHP有全套的操作数(o pe rat o r),它们的运作方式就如同你所预期的一样--特别是当你有C或者C++的知识背景时。
使用PHP的最高指导原则:「有疑问时,先试看看;你可能会成功。
」正如Pe rl一样,一个字符串用双引号括起来,会使得其中的变量被置换(inte rpo lat e),而如果以单引号括起来,则变量不会被置换。
因此,<?php$name=''Susannah'';$greet ing_1="He llo,$name!";$greet ing_2=''He llo,$name!'';e c ho"$greet ing_1\n";e c ho"$greet ing_2\n";?>产生如下结果He llo,Susannah!He llo,$name!注意一下,字符串中\n字符是换行符号,就跟Pe rl或C一样。
PHP 学习笔记(二):表单:表单处理,表单验证,表单实例总结

PHP 学习笔记(二):表单:表单处理,表单验证,表单实例PHP 表单PHP 超全局变量$_GET 和$_POST 用于收集表单数据(form-data)。
1GET vs. POSTGET 和POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。
此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
GET 和POST 被视作GET和_POST。
它们是超全局变量,这意味着对它们的访问无需考虑作用域- 无需任何特殊代码,您能够从任何函数、类或文件访问它们。
$_GET 是通过URL 参数传递到当前脚本的变量数组。
$_POST 是通过HTTP POST 传递到当前脚本的变量数组。
何时使用GET?通过GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在URL 中)。
GET 对所发送信息的数量也有限制。
限制在大于2000 个字符。
不过,由于变量显示在URL 中,把页面添加到书签中也更为方便。
GET 可用于发送非敏感的数据。
何时使用POST?通过POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入HTTP 请求的主体中),并且对所发送信息的数量也无限制。
此外POST 支持高阶功能,比如在向服务器上传文件时进行multi-part 二进制输入。
不过,由于变量未显示在URL 中,也就无法将页面添加到书签。
PHP 表单验证PHP 表单验证实例文本字段ame、email 和website 属于文本输入元素,comment 字段是文本框。
HTML 代码是这样的:Name: <input type="text" name="name">E-mail: <input type="text" name="email">Website: <input type="text" name="website">Comment: <textarea name="comment" rows="5" cols="40"></textarea>单选按钮gender 字段是单选按钮,HTML 代码是这样的:Gender:<input type="radio" name="gender" value="female">Female<input type="radio" name="gender" value="male">Male表单元素表单的HTML 代码是这样的:<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">当提交此表单时,通过method=”post”发送表单数据。
Php学习笔记1

Php学习笔记要点一打印字符echo关键字:在页面上输出单个或者多个语句或者变量;print关键字:类似于echo要点二字符串长度Strlen(string类型);函数:得到某一字符串的长度;要点三php判断php判断:if()elseif()else或者i f():elseif: else: endif:;要点四获取表单值获取本页字符$_Request[表单元素id]获取传过来的表单元素$_COOKIES[表单元素id] $_POST[表单元素id]$_GET[表单元素id]要点五时间字符Date(必选转换格式,可选)Time()Gmmktime()时间要点六引用文件Include(文件路径)Require(文件路径)require_once()语句在脚本执行期间包含并运行指定文件。
此行为和require()语句完全相同,唯一区别是如果该文件中的代码已经被包含了,则不会再次包含。
要点七文件操作文件操作:Fopen(文件路径,r/w/x/r+/w+/x+);Fclose()关闭文件Fgetc()逐个读取文件Fgets()逐行读取文件要点八文件上传文件上传:$_FILES[表单file控件id][name/type/size]Move_Uploaded_file();上传要点九php的cookieCookiesSetcookie();设置cookie,比如失效时间Setrawcookie();自动编码要点十SessionSession变量Ps:必须在html标签面前声明session_start();Session_destory();摧毁sessionIsset() 检测session变量是否设置要点十一发邮件Mail()发邮件函数要点十二错误机制错误机制:set_error_hander();Trigger_error(触发错误信息);要点十三循环循环While{};For(条件一;条件二;条件三)Do()while{};Foreach(可枚举的变量as $变量名)要点十四异常机制异常机制:Try{}catch(exception $e){}Throw new exception(){};要点十五过滤器过滤器机制:Filter_var() 过滤一个变量Filter_var_array()过滤多个变量Filter_input()对一输入变量进行过滤Filter_input_array()对多个输入变量进行过滤Str_replace(第一个字符,第二个字符)字符串替换Validating 和SanitizingValidating 过滤器:∙用于验证用户输入∙严格的格式规则(比如URL 或E-Mail 验证)∙返回若成功预期的类型,否则返回FALSE Sanitizing 过滤器:∙用于允许或禁止字符串中指定的字符∙无数据格式规则∙始终返回字符串Filters参数表ID 名称描述FILTER_CALLBACK调用用户自定义函数来过滤数据。
thinkphp学习笔记-9页word资料

-------------------ONE-----------------------------一、ThinkPHP的介绍//了解MVCM - Model 模型工作:负责数据的操作V - View 视图(模板)工作:负责前台页面显示C - Controller 控制器(模块)工作:描述功能框架二、ThinkPHP的获取//了解http://thinkphp三、ThinkPHP核心文件介绍//了解├─ThinkPHP.php 框架入口文件├─Common 框架公共文件├─Conf 框架配置文件├─Extend 框架扩展目录├─Lang 核心语言包目录├─Lib 核心类库目录│├─Behavior 核心行为类库│├─Core 核心基类库│├─Driver 内置驱动││├─Cache 内置缓存驱动││├─Db 内置数据库驱动││├─TagLib 内置标签驱动││└─Template 内置模板引擎驱动│└─Template 内置模板引擎└─Tpl 系统模板目录四、实验环境搭建//了解五、项目搭建//重点#项目目录结构及说明:Home 前台应用文件夹├─Common 项目公共文件目录├─Conf 项目配置目录├─Lang 项目语言目录├─Lib 项目类库目录│├─Action Action类库目录│├─Behavior 行为类库目录│├─Model 模型类库目录│└─Widget Widget类库目录├─Runtime 项目运行时目录│├─Cache 模板缓存目录│├─Data 数据缓存目录│├─Logs 日志文件目录│└─Temp 临时缓存目录└─Tpl 项目模板目录-------------------TWO-----------------------------一、什么是MVC //了解M -Model 编写model类对数据进行操作V -View 编写html文件,页面呈现C -Controller 编写类文件(UserAction.class.php)二、ThinkPHP的MVC特点//了解三、ThinkPHP的MVC对应的目录//了解M 项目目录/应用目录/Lib/ModelV 项目目录/应用目录/TplC 项目目录/应用目录/Lib/Action四、url访问C //了解五、url的4种访问方式//重点!1.PA THINFO 模式-- 重点!!!!!!http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值22.普通模式http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值23.REWRITE模式http://域名/项目名/模块名/方法名/键1/值1/键2/值24.兼容模式http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2-------------------THREE-----------------------------一、ThinkPHP 3 的输出(重点)a、通过echo 等PHP原生的输出方式在页面中输出b、通过display方法输出想分配变量可以使用assign方法c、修改左右定界符休要修改配置文件中的配置项'TMPL_L_DELIM'=>'<{', //修改左定界符'TMPL_R_DELIM'=>'}>', //修改右定界符二、ThinkPHP 3 的模型使用(重点)需要在方法中通过new Model(表名)的形式操作数据库$m=new Model('User');$arr=$m->select();'DB_TYPE'=>'mysql', //设置数据库类型'DB_HOST'=>'localhost',//设置主机'DB_NAME'=>'thinkphp',//设置数据库名'DB_USER'=>'root', //设置用户名'DB_PWD'=>'', //设置密码'DB_PORT'=>'3306', //设置端口号'DB_PREFIX'=>'tp_', //设置表前缀-------------------FOUR-----------------------------一、ThinkPHP 3 的输出(重点)a、通过echo 等PHP原生的输出方式在页面中输出b、通过display方法输出想分配变量可以使用assign方法c、修改左右定界符休要修改配置文件中的配置项'TMPL_L_DELIM'=>'<{', //修改左定界符'TMPL_R_DELIM'=>'}>', //修改右定界符二、ThinkPHP 3 的模型使用(重点)需要在方法中通过new Model(表名)的形式操作数据库$m=new Model('User');$arr=$m->select();'DB_TYPE'=>'mysql', //设置数据库类型'DB_HOST'=>'localhost',//设置主机'DB_NAME'=>'thinkphp',//设置数据库名'DB_USER'=>'root', //设置用户名'DB_PWD'=>'', //设置密码'DB_PORT'=>'3306', //设置端口号'DB_PREFIX'=>'tp_', //设置表前缀也可以使用DSN方法进行配置'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp',//使用DSN方式配置数据库信息如果两种方式同时存在,以DSN方式为优先还有一种简单实用模型的方式M() 等效为new Model();$m=M('User');$arr=$m->select();使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行增删改查CURD 增-C Create $m->add()删-D Delete $m->delete()改-U Update $m->save()查-R Read $m->select()三、补充(了解)a、模板可以遍历数组<volist name='data' id='vo'><{$vo.id}>----<{$ername}>-----<{$vo.sex}><br/></volist>b、我们可以开启调试功能中的page_trace1.开启调试功能//3.开启调试模式define('APP_DEBUG',true);2.我们需要设置配置文件,开启页面trace'SHOW_PAGE_TRACE'=>true,//开启页面Trace-------------------FIVE-----------------------------一、ThinkPHP 3 的CURD介绍(了解)二、ThinkPHP 3 读取数据(重点)对数据的读取Read$m=new Model('User');$m=M('User');select$m->select();//获取所有数据,以数组形式返回find$m->find($id);//获取单条数据getField(字段名)//获取一个具体的字段值$arr=$m->where('id=2')->getField('username');三、ThinkPHP 3 创建数据(重点)对数据的添加Create$m=new Model('User');$m=M('User');$m->字段名=值$m->add();返回值是新增的id号四、ThinkPHP 3 删除数据(重点)$m=M('User');$m->delete(2); //删除id为2的数据$m->where('id=2')->delete(); //与上面效果相同,也是删除id为2的数据返回值是受影响行数五、ThinkPHP 3 更新数据(重点)$m=M('User');$data['id']=1;$data['username']='ztz2';$m->save($data);返回值是受影响行数-------------------SIX-----------------------------一、普通查询方式a、字符串$arr=$m->where("sex=0 and username='gege'")->find();b、数组$data['sex']=0;$data['username']='gege';$arr=$m->where($data)->find();注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值$data['sex']=0;$data['username']='gege';$data['_logic']='or';二、表达式查询方式$data['id']=array('lt',6);$arr=$m->where($data)->select();EQ 等于NEQ不等于GT 大于EGT大于等于LT 小于LIKE 模糊查询$data['username']=array('like','%ge');$arr=$m->where($data)->select();NOTLIKE$data['username']=array('notlike','%ge%'); //notlike中间没有空格$arr=$m->where($data)->select();注意:如果一个字段要匹配多个通配符$data['username']=array('like',array('%ge%','%2%','%五%'),'and');//如果没有第三个值,默认关系是or关系$arr=$m->where($data)->select();BETWEEN$data['id']=array('between',array(5,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )$data['id']=array('not between',array(5,7));//注意,not 和between中间一定要有空格$arr=$m->where($data)->select();IN$data['id']=array('in',array(4,6,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )$data['id']=array('not in',array(4,6,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) )-------------------SEVEN----------------------------一、普通查询方式a、字符串$arr=$m->where("sex=0 and username='gege'")->find();b、数组$data['sex']=0;$data['username']='gege';$arr=$m->where($data)->find();注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值$data['sex']=0;$data['username']='gege';$data['_logic']='or';二、表达式查询方式$data['id']=array('lt',6);$arr=$m->where($data)->select();EQ 等于NEQ不等于GT 大于EGT大于等于LT 小于LIKE 模糊查询$data['username']=array('like','%ge');$arr=$m->where($data)->select();NOTLIKE$data['username']=array('notlike','%ge%'); //notlike中间没有空格$arr=$m->where($data)->select();注意:如果一个字段要匹配多个通配符$data['username']=array('like',array('%ge%','%2%','%五%'),'and');//如果没有第三个值,默认关系是or关系$arr=$m->where($data)->select();BETWEEN$data['id']=array('between',array(5,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )$data['id']=array('not between',array(5,7));//注意,not 和between中间一定要有空格$arr=$m->where($data)->select();IN$data['id']=array('in',array(4,6,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )$data['id']=array('not in',array(4,6,7));$arr=$m->where($data)->select();//SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) )三、区间查询$data['id']=array(array('gt',4),array('lt',10));//默认关系是and 的关系//SELECT * FROM `tp_user` WHERE ( (`id` > 4) AND (`id` < 10) )$data['id']=array(array('gt',4),array('lt',10),'or') //关系就是or的关系$data['name']=array(array('like','%2%'),array('like','%五%'),'gege','or');四、统计查询count //获取个数max //获取最大数min //获取最小数avg //获取平均数sum //获取总和五、SQL直接查询a、query 主要数处理读取数据的成功返回数据的结果集失败返回boolean false$m=M();$result=$m->query("select * from t_user where id >50");var_dump($result);b、execute 用于更新个写入操作成功返回影响行数失败返回boolean false$m=M();$result=$m->execute("insert into t_user(`username`) values('ztz3')");var_dump($result);------------------EIGHT---------------------------一、常用连贯操作1.where帮助我们设置查询条件2.order对结果进行排序$arr=$m->order('id desc')->select();$arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();3.limit限制结果limit(2,5)limit('2,5')limit(10)//limit(0,10)4.field设置查询字段field('username as name,id')field(array('username'=>'name','id')field('id',true) //获取除了id以外的所有字段5.table6.group7.having二、补充alias 用于给当前数据表定义别名字符串page 用于查询分页(内部会转换成limit)字符串和数字join* 用于对查询的join支持字符串和数组union* 用于对查询的union支持字符串、数组和对象distinct 用于查询的distinct支持布尔值lock 用于数据库的锁机制布尔值cache 用于查询缓存支持多个参数(以后在缓存部分再详细描述)relation 用于关联查询(需要关联模型扩展支持)字符串validate 用于数据自动验证数组auto 用于数据自动完成数组filter 用于数据过滤字符串scope* 用于命名范围字符串、数组------------------NINE---------------------------一、模板的使用(重点)a、规则模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[index].html(.tpl)更换模板文件的后缀名(修改配置文件)'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名b、修改模板文件目录层次'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次c、模板主题'DEFAULT_THEME'=>'your',//设置默认模板主题需要在TPL下面新建一个your文件夹作为模板主题文件夹如何动态修改模板主题?1、在后台准备一个功能,修改config.php文件中的默认模板项2、通过url传递t=主题参数可以修改不同的模板'DEFAULT_THEME'=>'your',//设置默认模板主题'TMPL_DETECT_THEME'=>true,//自动侦测模板主题'THEME_LIST'=>'your,my',//支持的模板主题列表二、输出模板内容(重点)a、display1.display中没有参数$this->display();2.可以带参数$this->display(本模块文件夹下的其他模板文件);$this->display('index2');$this->display(其他文件夹下的模板文件);$this->display('Public:error');//注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html 即可,不需要一定有Public模块$this->display(其他主题下的文件夹下的模板文件);//需要开启主题支持$this->display('my:Index:index');$this->display(一个url路径);$this->display('./Public/error.html');$this->display('./Public/error.html','utf-8','text/xml');$this->show($content);3.fetch方法获得模板文件中的内容,以字符串形式返回$content=$this->fetch('Public:error');4.show方法不需要模板文件,可以直接输出模板内容$content=$this->fetch('Public:error');dump($content);$content=str_replace('h1','i',$content);$this->show($content);三、模板中的赋值(重点)//$this->assign('name','赵桐正');$this->name='赵桐正2';$this->display();四、模板替换(重点)__PUBLIC__:会被替换成当前网站的公共目录通常是/Public/__ROOT__:会替换成当前网站的地址(不含域名)__APP__:会替换成当前项目的URL地址(不含域名)__GROUP__:会替换成当前分组的URL地址(不含域名)__URL__:会替换成当前模块的URL地址(不含域名)__ACTION__:会替换成当前操作的URL地址(不含域名)__SELF__:会替换成当前的页面URL更换模板变量规则,修改配置项'TMPL_PARSE_STRING'=>array( //添加自己的模板变量规则'__CSS__'=>__ROOT__.'/Public/Css','__JS__'=>__ROOT__.'/Public/Js',------------------TEN---------------------------一、变量输出(重点)1.标量输出2.数组输出{$name[1]}{$name['k2']}{$name.k1}3.对象输出{$name:k}{$name->k}二、系统变量{$Think.get.id}三、使用函数{$name|strtoupper} 生成的编译后文件是<?php echo (strtoupper($name)); ?>{$name|date='Y m d H:i:s',###}四、默认值{$name|default='这里是默认值'}五、运算符{$name++}。
PHP学习笔记08

回顾数据相关基础知识:关系型数据和非关系型数据库关系型数据库:二维表,用来维护表内数据以及表与表之间的联系,保存在磁盘非关系型数据:键值对,运行在内存。
memcache,mongodb,redis数据服务端对象:数据库管理系统-》数据库-》数据表-》字段SQL:结构化查询语言,分为三类:DDL,DML,DCLSQL基本操作:增删改查库操作创建库:create Database 数据库名字[库选项:字符集和校对集]修改库:alter Database 数据库名字[库选项]查看库:show databases [like ‘pattern’],show create database 数据库名字删除库:drop database 数据库名字表操作创建表:create table 表名(字段名字段类型)[表选项:字符集,存储引擎]修改表:rename table 旧表名to 新表名;alter table 表名[add/modify/change/drop] [column] 字段名[字段类型] [位置]查看表:show tables [like ‘pattern’],desc/describe 表名,show columns from 表名;show create table 表名删除表:drop table 表名数据操作增加:insert into 表名[(字段列表)] values(值列表),值列表中数据值要与定义的字段的字段类型一致,建议都使用引号将数据进行包裹。
查看:select [字段列表] from 表名[where条件]更新:update 表名set 字段= 值[where条件]删除:delete from 表名[where条件]数据操作是不带table关键字,而表操作(结构)是带table关键字的set names<==========>set character_set_client:修改服务器接收客户端数据的字符集编码set character_set_connection:连接层set character_set_results:修改服务器为客户端提供数据的字符集编码character_set_database表示的是当前数据库的字符集。
php学习笔记

第一部分 html知识点:一 table二 form表单一 table<table></table>表格标记<tr></tr> 行<td></td>列1.table 属性:border="1" 表格的边框 align="center" 表格水平位置 left 左 center 中 right 右width="600" 表格宽度 height="300" 表格高度cellpadding="40" 文字距离边框的距离 cellspacing="20" 边框的厚度bgcolor="#FF0000" 背景色background="imgs/1.jpg"当背景图宽度和高度 < 表格的宽度和高度背景图会在横向和纵向平铺(重复)当背景图宽度和高度 > 表格的宽度和高度表格从左上角开始引用图片的一部分(和表格的宽度和高度相同)2 tr 属性只控制该行内容align="center" left center right 行中内容的左中右height="100" 行高valign="bottom" 行中内容的上中下 top middle bottom3 td 属性:只控制该列内容align="right" left center right 列中内容的左中右valign="top" top middle bottom 列中内容的上中下width="100" 列宽(影响整列的宽度)height="40" 行高(影响正行的高度)标记具有就进原则colspan="列数" 和并列 rowspan="行数" 合并行注意:行列都有合并先列后行二 form表单:主要是用来和用户交互的<form></form> 表单1. input<input type="元素名称" />button: 普通按钮 value="按钮的文字" js /jquery代码checkbox 复选框 value="隐藏起来" checked="checked" 默认选中项处理传递时候用file 上传控件hidden 隐藏域 value="值" 和php脚本程序交互。
php学习笔记
PHP笔记1、Apache基础1、端口(port)(共有1~65536)a)netstat-an查看机器的所有正在被监听的端口b)netstat-anb详细查看哪个程序正在监听哪个端口c)有名端口(1~1024)尽量不要使用d)apache可以同时监听多个端口httpd.confe)httpd-k start/stop/restart/shutdown命名行管理apache2、apache目录结构3、apache虚拟目录配置a)在httpd.conf下的<IfModule dir_module></IfModule>b)<IfModule dir_module>#directoryIndex欢迎页面的配置DirectoryIndex index.html index.htm index.php#站点的别名Alias/xxxx“G:/xxx/xxxx/xxx”<Directory g:/xxx/xxxx/xxx>#访问权限Order allow,denyAllow from all</Directory><IfModule>权限设置:☞☞DocumentRoot:配置虚拟目录时不必注释,可以保留原来的4、apache虚拟主机配置a)启用httpd-vhost.conf文件在httpd.conf取消Virtual hosts的注释Includeconf/extra/httpd-whosts.confb)在conf/extra/httpd-vhost.conf中配置<VirtualHost127.0.0.1:80>DocumentRoot“G:/xxx/xxxx”DirectoryIndex index.html index.htm index.php#站点的别名Alias/xxxx“G:/xxx/xxxx/xxx”<Directory>#不允许被修改AllowOverride None#访问权限Order allow,denyAllow from all</Directory><VirtualHost>c)配置DNS,修改windows/system32的hosts文件,添加一个DNS5、一台apache上配置多个站点①通过端口号区分不同站点,需要在apache中监听多个端口②通过ServerName区分不同的站点2、Nginx3、PHP基础1、var_dump($var)显示变量$var的类型和值2、GRANT ALL PRIVILEGES ON*.*TO sgl@"%"IDENTIFIED BY'sgl'WITH GRANT OPTION给数据库添加远程超级管理员账号3、位运算(~,^,&,|,>>,<<),都是转换成补码进行运算之后还原成原码原码--->反码------>补码------->进行运算(结果为补码)----->反码------->原码正数的原码,反码,补码都一样负数的反码=原码符号位不变,其余位取反负数的补码=反码+1左移(<<n)位相当于乘以2的n次幂右移(>>n)位相当于除以2的n次幂4、排序(内部排序)交换式排序①冒泡排序②快速排序选择式排序③选择排序插入式排序④插入排序5、php安装配置php的Safe Mode设置为on时,对文件的操作函数几乎失效①在apache的httpd.conf中配置php模块②在php.ini中指定php扩展库的位置6、MySQL在php中的配置4、PHP语法①语句以分号结束,变量以$开头,变量类型在运行时才确定(弱数据类型)var_dump($a)查看变量的类型信息②php区分大小写:变量名区分大小写,函数名不区分大小写③php数据类型第一类:基本数据类型(整型,浮点型【不区分单精度和双精度】,布尔型,字符串)第二类:复合数据类型(数组,对象)第三类:特殊数据类型(null,资源类型)④没有赋初值的变量会报告notice(警告),但是不影响程序继续执行。
PHP学习笔记
第十讲:连接数据库:1.连接数据库和选择数据Mysql_connect(“数据库”,”用户名”,”密码”);Mysql_select_db(“打开数据库”,”连接标示符”);@和or die(“提示信息”);例子:$conn=@mysql_connect(“localhost”,”root”,””) or die (“连接错误”);Mysql_select(“php1”,$conn);2,执行一个SQL语句$sql=”INSERT INTO php(id,name,sco)values(“1”,”lsw”,90)”;sql语句尽量大写Mysql_query($sql,$conn);这个语句是带返回值的。
($query=mysql_qurey($sql,$conn))Mysql_fetch_row()这个函数是反映table “php1”的数据比如$row=mysql_fetch_row($query)Echo $row[0];Mysql_fetch_array()和Mysql_fetch_row()功能基本相同,除了可以用数字来查询,还可以用名称来检索。
比如$row=mysql_fetch_array($query);Echo $row[name];Mysql_query(“set names ‘GBK’”)可以解决中文乱码问题第十一讲:制作PHP+Mysql留言板1.Require函数和require_once() require函数通常在PHP程序的最前面,如果出现错误,则是致命的。
Include函数和include_once()函数出现错误,则会提示。
例子:require(‘con.php’);Include(‘con.php’);2.Php接受参数的几种方式:$_GET[]和$_POST[]方式。
3.Str_replace(被替换的值,替换的值,被替换的内容)4.htmlspecialchars格式化html防止输出html是被浏览器执行。
php学习笔记
PHP 学习笔记PHP 是一种被广泛使用的开源脚本语言;declare(encoding='UTF-8');//定义编码方式运行 PHP 工程(wampServer) : 1、 需要对应的 web 服务器 2、 安装 PHP 3、 安装数据库 Php 脚本可放置于文档中的任何位置; Php 脚本以<?php 开头,以 ?>结尾; 在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大 小写不敏感。
但是所有定义的变量都对大小写敏感。
变量: 变量的声明用$标识符$str=”007”;,而且之后在使用变量的时候,标识符$不 能丢掉,因为已经成为一个整体了。
函数之外声明的变量拥有 Global (全局) 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 Local(局部) 作用域,能在函数以内进行访问。
但是如果想在函数内访问全局变量,那么就得在函数内变量前引用 global 关 键词,例如: $x=1;$y=2 function text(){ global $x,$y; $y=$x+$y; } 或者: function text(){ $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];//关联数组模式 } 因为在名为 $GLOBALS[index] 的数组中存储了所有的全局变量, 所以可以这样引 用。
常量: 常量的值在脚本中不能改变,而且在整个脚本中都能使用,常量名不用$修 饰符,常量的定义(定义时用双引号“”括起来):define(string constant_name, mixed value, case_sensitive = true)常量名 PHP 中 const 的使用以及与 define 的区别常量值是否大小写敏感1、 const 用于类成员变量定义, 一旦定义且不能改变其值。
PHP学习笔记
学习笔记1、用来标记PHP 代码块的标记共有四套,其中只有两套总是有效(<?php. . .?> 和<script language="php">. . .</script>);2、“$”变量的标志3、指令分隔方式与C 或者Perl 类似-- 每个语句由分号格开。
结束标记(?>)同样隐含语句的结束,因此下面的代码是等价的:<?phpecho "This is a test";?><?php echo "This is a test" ?>4、PHP支持八种类型:四中标量类型:∙布尔型(boolean)∙整型(integer)∙浮点型(float)(浮点数,也作“double”)∙字符串(string)两种复合类型:∙数组(array)∙对象(object)两种特殊类型:∙资源(resource)∙NULL为了确保代码的易读性,本手册还介绍了一些伪类型:∙混和(mixed)∙数字(number)∙回馈(callback)5、var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.$a = array (1, 2, array ("a", "b", "c"));var_dump ($a);/* 输出:array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3){ [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } } */$b = 3.1; $c = TRUE; var_dump($b,$c);/* 输出:float(3.1) bool(true)*/ ?>6、ROUND(number, num_digits)number必需。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PHP报表开发:
报表:以表格或者图标的方式,显示报告数据。
很强大的一款技术。
jpgrapf
php绘图坐标体系:
php绘图像素:像素是一个密度单位而不是长度单位。
绘图技术核心:
步骤:
1.创建画布
2.绘制需要的各种图形gb库
3.输出图像都网页,也可以另存为
4.销毁该图片,为了释放内存
常用的图像格式:
gif,jpg/jpeg,png
这三种图片的格式区别:
gif图片的也缩率高,只能显示256色。
所可能造成色彩的丢失。
但是可以显示动画图片。
jpg/jpeg图片的压缩率高(有损压缩),网页上用的多。
png结合了以上两种图片的优势,缺点就是不能显示动画。
色彩保存最好,而且传送的时候会压缩到极致再传送(png有自带的一种压缩算法)。
如何选择:
根据特点选择。
快速入门:
首先启用gb库,php.ini中
然后重启apache
案例:
<?php
//1.创建画布,默认的北京是黑色的。
//resource imagecreatetruecolor ( int $x_size , int $y_size )
$im=imagecreatetruecolor(400,300);
//2.绘制需要的各种图形gb库,圆,直线,矩形
//
$red=imagecolorallocate($im,255.,0,0);
//bool imageellipse ( resource $image , int $cx , int $cy , int $w , int $h , int $color )
//圆
//imageellipse($im,20,20,20,20,$red);
//直线
//imageline($im,0,0,400,300,$red);
//空心矩形
//imagerectangle($im,40,40,80,80,$red);
//实心矩形
//imagefilledrectangle($im,50,50,90,90,$red);
//画弧线
//imagearc($im,150,150,90,90,180,270,$red);
//扇形
//imagefilledarc($im,150,150,90,90,180,270,$red,IMG_ARC_PIE); /* //拷贝图片到画布
//.加载圆图片
$srcImage=imagecreatefromgif("girl1.gif");
//.拷贝
$srcImageInfo=getimagesize("girl1.gif");
print_r($srcImageInfo);
exit();
imagecopy($im,$srcImage,100,100,0,0,100,100);*/ //写字
//imagestring($im,5,0,0,"zhanghjui",$red);
$str="师大,我的大学,I come";
//第二个参数,字号,第三个旋转度,
imagettftext($im,20,10,50,50,$red,"msyh.ttf",$str);
//3.输出图像都网页,也可以另存为
header("content-type:image/png");
imagepng($im);
//4.销毁该图片,为了释放服务器内存
imagedestory($im);
?>
综合案例:
人口饼状图:
代码:
<?php
//先画扇形
$im=imagecreatetruecolor(400,400);
$white=imagecreatetruecolor($im,255,255,255);
imagefill($im,0,0,$white);
$red=imagecolorallocate($im,255,0,0);
$darkred=imagecolorallocate($im,144,0,0);
$blue=imagecolorallocate($im,3,0,129);
$darkblue=imagecolorallocate($im,20,14,87);
$gray=imagecolorallocate($im,193,189,194);
$darkgray=imagecolorallocate($im,145,142,145);
//变暗,
for($i=70;$i>50;$i--){
imagefilledarc($im,200,$i,200,100,0,35,$darkred,IMG_ARC_PIE);
imagefilledarc($im,200,$i,200,100,35,80,$darkgray,IMG_ARC_PIE);
imagefilledarc($im,200,$i,200,100,80,360,$darkblue,IMG_ARC_PIE);
}
//加盖
imagefilledarc($im,200,50,200,100,0,35,$red,IMG_ARC_PIE);
imagefilledarc($im,200,50,200,100,35,80,$gray,IMG_ARC_PIE);
imagefilledarc($im,200,50,200,100,80,360,$blue,IMG_ARC_PIE);
header("content-type:image/png");
imagepng($im);
//4.销毁该图片,为了释放服务器内存
imagedestory($im);
?>
如果每次都必须自己去画这样的图,好麻烦
jpgraph绍
chart类
安装和配置jpgraph
1.下载,拷贝到htdocs下
2.就是把example目录的其他文件剪贴到example文件夹内,注
意要新建一个文件夹,名字是jpgraph
实际案例:
使用image可以嵌入
动态更新,从数据库取数据。
跳转:
<html>
<head>
<title>统计结果</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/> </head>
<body>
<h1>显示网名支持</h1>
<img src="showV ote.php?id=1" />
<img src="showV ote.php?id=2" />
</body>
</html>
OK
完结。