php8.2,php820
为什么错误控制运算符@不起作用,仍会输出错误,我使用的PHP版本为8.2.0?
第一、是否搭配好了php运行环境?
第二、你的代码文件格式是否php文件?
第三、该文件是否在php环境下运行的?
做到这3点,保证你不会出现这种问题!
例外,你的代码语法没有问题,但逻辑有问题!
php的一个百分比统计问题
4个字段没错,但要增加一个字段用于排名,这个字段存平均值,即你上面的综合评分。
否则可能导致无法使用索引。
另外这个评分是10分制,而非100分制。
字段存储的值如:8.1,8.2等直接存储10分制数值就行。
score1-4的算法:
方法一:不计效率的话,直接从数据库sum就完了
SQL: SELECT company_id, count(*) as num, sum(score1) as score1,sum(score2) as score2,sum(score3) as score3, sum(score4) as score4 from 评分表 where company_id in(1,2,3) group by company_id ;
最终得到结果,示例算法: score1 = round(score1 / num, 1);
方法二:
如果考虑效率问题,比如评论数可能会草果万,十万,百万。
则建议再增加5个字段分别存储总评分值和总评分人数。
total_score1, total_score2, total_score3, total_score4, score_num,
每次评论时增加这两个值:total_score1 = total_score1+这次评分score1,score_num = score_num + 1
最终score1 = total_score1 / score_num;
综合评分: score5 = round((score1 + score2 + score3 + score4) / 4 ,1);
排名在显示时差数据库,假设当前score5 = $socre5:
select count(*) from company where score5$score5;
如果company 表很大,建议走计划任务跑数据。
如果表很大但我只要前100名,可以另外建一个表或者缓存,
然后在更新score5 时去判断是否在大于现在100名中的最小一名,如果是就把最小的踢掉,如果不是,就什么也不用做,当然如果这个本身就是这100名中的,那么可能比较麻烦,但是其实你不需要那么老实的存储100名,你可以存储150名,阵中用时就前100名,即便有人从100名中掉队,也可以从后面的50名中取一个上来替代到新的100名中。
有没有什么好的学习php的路线啊大神们
学习php路线:
第一阶段
第一讲,WEB基础
1.1 网站基本知识;
1.2 网络协议介绍;
1.3 B/S与C/S结构的区别;
1.4 WEB编程、网站开发技术介绍。第二讲,网页设计 2.1 Dreamweaver介绍及使用;
2.2 静态网页HTML语言;
2.3 标题与段落,换行与分割线;
2.4 表格、表单;
2.5 框架、超链接、图片。 实例:1,使用表格进行网页布局设计;
2,使用表单、表格、框架进行系统后台界面设计。第三讲,DIV+CSS 3.1 CSS的概念及基本语法;
3.2 用CSS设置丰富的文字效果设置图片效果;
3.3 用CSS设置表格与表单的样式,用CSS设置页面和浏览器的元素;
3.4 CSS盒模型;
3.7 CSS+DIV布局,CSS+DIV美化与布局实战。 实例:1,使用DIV+CSS设计按钮及Tab;
2,使用DIV+CSS设计导航菜单;
3,使用DIV+CSS设计论坛网页;
4,使用DIV+CSS设计博客网页。第四讲,PHP开发环境 4.1 集成开发环境XAMPP安装;
4.2 Zend Studio的安装、配置;
4.3 Eclipse PDT的安装与配置;
4.4 编写第一个PHP程序;
4.5 调试PHP程序。第五讲,PHP编程基础 5.1 PHP语言特性与发展趋势;
5.2 PHP变量常量数据类型;
5.3 PHP运算符与表达式;
5.4 PHP流程控制语句;
5.5 PHP函数。第六讲,MySQL开发基础 6.1 MySQL数据库系统介绍及安装;
6.2 MySQL数据类型介绍;
6.3 MySQL表的创建、修改与删除;
6.4 MySQL查询语句;
6.5 PHP MySQL函数使用详解。 实例:1,论坛数据库表设计;
2,PHP连接MySQL数据库,实现增删改查。第七讲,Web2.0开发技术Ajax 7.1 JavaScript介绍;
7.2 JavaScript语法基础;
7.3 DOM对象基础及事件;
7.4 Ajax核心对象XMLHttpRequest详解;
7.5 Ajax异步通信原理;
7.6 开发Ajax应用;
7.6 Ajax框架jQuery介绍及使用。 实例:1,Tab的动态切换效果;
2,论坛系统中使用Ajax方式验证用户名是否被注册;
3,论坛系统中通过Ajax方式获取用户信息。第八讲,PHP Web2.0网站实例开发 8.1
Web2.0风格的论坛系统开发;
8.2 Web2.0风格的博客系统实战开发。 实例:1,综合DIV+CSS +PHP+MySQL+Ajax技术
开发论坛;
2,综合DIV+CSS +PHP+MySQL+Ajax技术开发博客系统。
第二阶段第一讲,PHP面向对象基础 1.1 面向对象编程介绍;
1.2 面向过程与面向对象的区别;
1.3 面向对象的基本特性;
1.4 类、属性和方法;
1.5 构造函数;
1.6 类的实例化;
1.7 使用类的属性和方法;
1.8 类的访问控制;
1.9 类的继承与多态;
1.10 面向对象的接口及抽象类;
1.11 类、对象及对象之间的关系;
1.12 几个常见的运算符和关键字。 实例:1,购物车对象关系设计;
2,班级、学生、课程、考试对象关系设计。第二讲,PHP模板技术Smarty框架 2.1 Smarty模板技术介绍;
2.2 Smarty安装与配置;
2.3 Smarty 变量与变量修饰符;
2.4 Smarty分支结构;
2.5 Smarty循环结构;
2.6 Smarty保留变量;
2.7 Smarty生成静态页面;
2.8 Smarty内置函数详解。 实例:1,使用Smarty实现购物车的现实;
2,使用Smarty实现产品增删改查页面。第三讲,数据库抽象层PDO 3.1 PDO简介、安装与配置;
3.2 PDO连接MySQL数据库;
3.3 PDO执行SQL语句;
3.4 使用PDO实现数据的增删改查。
实例:1,使用PDO连接数据,实现产品的信息的增删改查功能。第四讲,MVC框架介绍及应用开发 4.1 MVC设计思想;
4.2 MVC框架的介绍、安装、配置;
4.3 使用MVC框架开发项目;
4.4 MVC框架中使用PDO;
4.5 MVC框架中使用Smarty模板技术;
4.6 使用MVC框架实现增删改查功能。 实例:1,使用MVC框架实现用户的注册、登录。
2,使用MVC框架实现产品信息的管理。第五讲,Ajax框架技术 5.1 jQuery框架的介绍与安装;
5.2 jQuery的事件处理;
5.3 jQuery的DOM对象处理;
5.4 jQuery对CSS的处理;
5.5 jQuery中的异步调用;
5.6 jQuery中的UI库使用;
5.6 Mootools常用函数、类及继承;
5.7 Mootools异步调用;
5.8 Mootools中对DOM对象处理;
5.9 Mootools中的事件机制;
5.10 Ajax实例开发。 实例:1,使用jQuery实现下拉菜单;
2,使用jQuery实现用户注册时采用异步方式实现用户名是否唯一的检验;
3,使用jQuery实现日期选择、滑动菜单、级联菜单,等等。第六讲,MySQL数据库高级开发 6.1 MySQL复杂查询;
6.2 MySQL中的事务处理;
6.3 PHP中的事务处理;
6.4 MySQL中使用存储过程;
6.5 MySQL中使用触发器;
6.6 MySQL中的视图。 实例:1,网上商城中产品销量的统计报表复杂查询功能;
2,使用触发器、存储功能实现网上商城中会员积分的计算功能。第七讲,后台统计报表技术 7.1 水平柱状图的设计和实现;
7.2 垂直柱状图的设计和实现;
7.3 圆饼图的设计和实现;
7.4 报表数据的导出。 实例:1,网上商城后台销量统计报表。第八讲,PHP设计模式 8.1
什么是设计模式;
8.2 工厂模式;
8.3 单例模式;
8.4 命令模式;
8.5 策略模式;
8.6 观察者模式;
8.7 其他模式。第九讲,MVC框架的设计 9.1 MVC框架的设计;
9.2 MVC框架中应用设计模式;
9.3 MVC框架的控制层设计;
9.4 MVC框架的模型层设计;
9.5 MVC框架的视图层设计。 实例1,实现简单的MVC框架;
2,MVC框架的不同视图实现的设计。第十讲,MVC框架的设计 9.1 MVC框架的设计;
9.2 MVC框架中应用设计模式;
9.3 MVC框架的控制层设计;
9.4 MVC框架的模型层设计;
9.5 MVC框架的视图层设计。 实例1,实现简单的MVC框架;
2,MVC框架的不同视图实现的设计。第十一讲,大型网站开发技术要点 10.1 服务器集群技术介绍;
10.2 MySQL数据库引擎的选择;
10.3 缓存技术的使用;
10.4 页面加速、瘦身技术;
10.5 图片服务器分离,等等。第十二讲,网站项目实战开发 11.1
使用GladCMS内容管理系统开发大型网站系统(总站及多个子站),包括网站内容组织
策划、网站主题设计;
11.2 使用GladCMS系统开发在线商城系统,按实际的网站开发流程,进行需求分析、设计、
编码、测试及系统部署;
11.3 由老师选择项目或者由学员自选项目,多人组成团队开发。 按照企业实际的项目开发流程,组队开发项目。阶段考核
考核本阶段学习的知识点,及项目开发考核。 毕业设计 选择毕业设计项目,组队开发。
第三阶段第一讲,PHP开发框架Zend Framework 1.1 Zend Framework介绍;
1.2 Zend Framework控制器层;
1.3 Zend Framework视图层;
1.4 Zend Framework模型层;
1.4 Zend Framework国际化语言;
1.5 Zend Framework验证;
1.6 Zend Framework缓存机制。 实例:1,使用Zend Framework开发一个新闻后台管理系统;
2,使用Zend Framework开发会员管理系统。第二讲,Oracle数据库应用开发 6.1 Oracle数据安装;
6.2 Oracle数据库客户端安装;
6.3 Oracle脚本的编写;
6.4 PHP与Oracle数据的集成应用开发。
实例:1,使用PHP与Oracle设计网上商城后台管理系统。第三讲,使用Zend框架项目实战 2.1 商城系统需求分析;
2.2 商城系统的设计;
2.3 商城系统的编码与测试。 实例:1,开发在线客户服务系统;
2,网上商城系统前台与后台的开发。阶段考核 考核本阶段学习的知识点,及项目开发考核。 毕业设计
选择毕业设计项目,组队开发。
第四阶段第一讲,Linux基础应用 1.1计算机基础知识和操作系统功能;1.2
Linux系统的历史、现状和特点;1.3 Linux系统安装;1.4 系统分区部署;1.5
Linux常用命令(文件外理命令、权限管理命令、压缩解压命令等) 介绍;1.6 Shell应用技巧;1.7
Vim/Vi文本编辑器。第二讲,Linux系统管理 2.1系统管理概述;2.2
Linux系统引导流程解析;2.3常见配置文件介绍;2.4软件包管理;2.5用户、组和权限管理;2.6服务和进程管理;2.7计划任务;2.8文件系统管理和系统性能优化;2.9设备管理;2.10文件权限管理。第三讲,Linux网络管理 3.1
Linux基本网络配置;3.2远程管理控制(SSH、VNC、Webmin远程管理应用);3.3文件共享(Samba与FTP服务
器应用);
3.4 Apache服务器配置;3.5 Shell编程;3.6 Apache,MySQL和PHP
php练级步骤!
第一阶段第一讲,WEB基础 1.1 网站基本知识;1.2 网络协议介绍; 1.3 B/S与C/S结构的区别;1.4 WEB编程、网站开发技术介绍。 第二讲,网页设计 2.1 Dreamweaver介绍及使用;2.2 静态网页HTML语言; 2.3 标题与段落,换行与分割线;2.4 表格、表单;2.5 框架、超链接、图片。 实例:1,使用表格进行网页布局设计; 2,使用表单、表格、框架进行系统后台界面设计。第三讲,DIV+CSS 3.1 CSS的概念及基本语法;3.2 用CSS设置丰富的文字效果设置图片效果; 3.3 用CSS设置表格与表单的样式,用CSS设置页面和浏览器的元素;3.4 CSS盒模型;3.7 CSS+DIV布局,CSS+DIV美化与布局实战。 实例:1,使用DIV+CSS设计按钮及Tab; 2,使用DIV+CSS设计导航菜单;3,使用DIV+CSS设计论坛网页;4,使用DIV+CSS设计博客网页。第四讲,PHP开发环境 4.1 集成开发环境XAMPP安装;4.2 Zend Studio的安装、配置; 4.3 Eclipse PDT的安装与配置;4.4 编写第一个PHP程序;4.5 调试PHP程序。 第五讲,PHP编程基础 5.1 PHP语言特性与发展趋势;5.2 PHP变量常量数据类型; 5.3 PHP运算符与表达式;5.4 PHP流程控制语句;5.5 PHP函数。 第六讲,MySQL开发基础 6.1 MySQL数据库系统介绍及安装;6.2 MySQL数据类型介绍; 6.3 MySQL表的创建、修改与删除;6.4 MySQL查询语句;6.5 PHP MySQL函数使用详解。 实例:1,论坛数据库表设计; 2,PHP连接MySQL数据库,实现增删改查。第七讲,Web2.0开发技术Ajax 7.1 JavaScript介绍;7.2 JavaScript语法基础; 7.3 DOM对象基础及事件;7.4 Ajax核心对象XMLHttpRequest详解;7.5 Ajax异步通信原理;7.6 开发Ajax应用;7.6 Ajax框架jQuery介绍及使用。 实例:1,Tab的动态切换效果; 2,论坛系统中使用Ajax方式验证用户名是否被注册;3,论坛系统中通过Ajax方式获取用户信息。第八讲,PHP Web2.0网站实例开发 8.1 Web2.0风格的论坛系统开发;8.2 Web2.0风格的博客系统实战开发。 实例:1,综合DIV+CSS +PHP+MySQL+Ajax技术开发论坛; 2,综合DIV+CSS +PHP+MySQL+Ajax技术开发博客系统。 第二阶段第一讲,PHP面向对象基础 1.1 面向对象编程介绍;1.2 面向过程与面向对象的区别; 1.3 面向对象的基本特性;1.4 类、属性和方法;1.5 构造函数;1.6 类的实例化;1.7 使用类的属性和方法;1.8 类的访问控制;1.9 类的继承与多态;1.10 面向对象的接口及抽象类;1.11 类、对象及对象之间的关系;1.12 几个常见的运算符和关键字。 实例:1,购物车对象关系设计; 2,班级、学生、课程、考试对象关系设计。第二讲,PHP模板技术Smarty框架 2.1 Smarty模板技术介绍;2.2 Smarty安装与配置; 2.3 Smarty 变量与变量修饰符;2.4 Smarty分支结构;2.5 Smarty循环结构;2.6 Smarty保留变量;2.7 Smarty生成静态页面;2.8 Smarty内置函数详解。 实例:1,使用Smarty实现购物车的现实; 2,使用Smarty实现产品增删改查页面。第三讲,数据库抽象层PDO 3.1 PDO简介、安装与配置;3.2 PDO连接MySQL数据库; 3.3 PDO执行SQL语句;3.4 使用PDO实现数据的增删改查。 实例:1,使用PDO连接数据,实现产品的信息的增删改查功能。第四讲,MVC框架介绍及应用开发 4.1 MVC设计思想;4.2 MVC框架的介绍、安装、配置; 4.3 使用MVC框架开发项目;4.4 MVC框架中使用PDO;4.5 MVC框架中使用Smarty模板技术;4.6 使用MVC框架实现增删改查功能。 实例:1,使用MVC框架实现用户的注册、登录。 2,使用MVC框架实现产品信息的管理。第五讲,Ajax框架技术 5.1 jQuery框架的介绍与安装;5.2 jQuery的事件处理; 5.3 jQuery的DOM对象处理;5.4 jQuery对CSS的处理;5.5 jQuery中的异步调用;5.6 jQuery中的UI库使用;5.6 Mootools常用函数、类及继承; 5.7 Mootools异步调用;5.8 Mootools中对DOM对象处理;5.9 Mootools中的事件机制;5.10 Ajax实例开发。 实例:1,使用jQuery实现下拉菜单; 2,使用jQuery实现用户注册时采用异步方式实现用户名是否唯一的检验;3,使用jQuery实现日期选择、滑动菜单、级联菜单,等等。第六讲,MySQL数据库高级开发 6.1 MySQL复杂查询;6.2 MySQL中的事务处理; 6.3 PHP中的事务处理;6.4 MySQL中使用存储过程;6.5 MySQL中使用触发器;6.6 MySQL中的视图。 实例:1,网上商城中产品销量的统计报表复杂查询功能; 2,使用触发器、存储功能实现网上商城中会员积分的计算功能。第七讲,后台统计报表技术 7.1 水平柱状图的设计和实现;7.2 垂直柱状图的设计和实现; 7.3 圆饼图的设计和实现;7.4 报表数据的导出。 实例:1,网上商城后台销量统计报表。第八讲,PHP设计模式 8.1 什么是设计模式;8.2 工厂模式; 8.3 单例模式;8.4 命令模式;8.5 策略模式;8.6 观察者模式;8.7 其他模式。 第九讲,MVC框架的设计 9.1 MVC框架的设计;9.2 MVC框架中应用设计模式; 9.3 MVC框架的控制层设计;9.4 MVC框架的模型层设计;9.5 MVC框架的视图层设计。 实例1,实现简单的MVC框架; 2,MVC框架的不同视图实现的设计。第十讲,MVC框架的设计 9.1 MVC框架的设计;9.2 MVC框架中应用设计模式; 9.3 MVC框架的控制层设计;9.4 MVC框架的模型层设计;9.5 MVC框架的视图层设计。 实例1,实现简单的MVC框架; 2,MVC框架的不同视图实现的设计。第十一讲,大型网站开发技术要点 10.1 服务器集群技术介绍;10.2 MySQL数据库引擎的选择; 10.3 缓存技术的使用;10.4 页面加速、瘦身技术;10.5 图片服务器分离,等等。 第十二讲,网站项目实战开发 11.1 使用GladCMS内容管理系统开发大型网站系统(总站及多个子站),包括网站内容组织策划、网站主题设计;11.2 使用GladCMS系统开发在线商城系统,按实际的网站开发流程,进行需求分析、设计、编码、测试及系统部署; 11.3 由老师选择项目或者由学员自选项目,多人组成团队开发。 按照企业实际的项目开发流程,组队开发项目。阶段考核 考核本阶段学习的知识点,及项目开发考核。 毕业设计 选择毕业设计项目,组队开发。 第三阶段第一讲,PHP开发框架Zend Framework 1.1 Zend Framework介绍;1.2 Zend Framework控制器层; 1.3 Zend Framework视图层;1.4 Zend Framework模型层;1.4 Zend Framework国际化语言;1.5 Zend Framework验证;1.6 Zend Framework缓存机制。 实例:1,使用Zend Framework开发一个新闻后台管理系统; 2,使用Zend Framework开发会员管理系统。第二讲,Oracle数据库应用开发 6.1 Oracle数据安装;6.2 Oracle数据库客户端安装; 6.3 Oracle脚本的编写;6.4 PHP与Oracle数据的集成应用开发。 实例:1,使用PHP与Oracle设计网上商城后台管理系统。第三讲,使用Zend框架项目实战 2.1 商城系统需求分析;2.2 商城系统的设计; 2.3 商城系统的编码与测试。 实例:1,开发在线客户服务系统; 2,网上商城系统前台与后台的开发。阶段考核 考核本阶段学习的知识点,及项目开发考核。 毕业设计 选择毕业设计项目,组队开发。 第四阶段第一讲,Linux基础应用 1.1计算机基础知识和操作系统功能;1.2 Linux系统的历史、现状和特点;1.3 Linux系统安装;1.4 系统分区部署;1.5 Linux常用命令(文件外理命令、权限管理命令、压缩解压命令等) 介绍;1.6 Shell应用技巧;1.7 Vim/Vi文本编辑器。第二讲,Linux系统管理 2.1系统管理概述;2.2 Linux系统引导流程解析;2.3常见配置文件介绍;2.4软件包管理;2.5用户、组和权限管理;2.6服务和进程管理;2.7计划任务;2.8文件系统管理和系统性能优化;2.9设备管理;2.10文件权限管理。 第三讲,Linux网络管理 3.1 Linux基本网络配置;3.2远程管理控制(SSH、VNC、Webmin远程管理应用);3.3文件共享(Samba与FTP服务器应用); 3.4 Apache服务器配置;3.5 Shell编程;3.6 Apache,MySQL和PHP服务器的安装和优化。
如何正确运用PHP发送邮件函数
PHP发送邮件函数的应用代码示例:
#echo?send_mail($_POST["email"],$tosubject,$_POST["errortext"]);??
echo?send_mail('someone@126.com','only?a?test?mail?for?test?php?mail?function','一封垃圾邮件');??
echo?time();??
?
function?send_mail($to,?$subject?=?'No?subject',?$body)?{??
$loc_host?=?"mail.server";?//发信计算机名,可随意??
$smtp_acc?=?"smp@163.com";?//Smtp认证的用户名??
$smtp_pass="pwdpwd";?//Smtp认证的密码,一般等同pop3密码??
$smtp_host="smtp.163.com";?//SMTP服务器地址,类似?smtp.tom.com??
$from="smp@163.com";?//发信人Email地址,你的发信信箱地址??
$deliver=$smtp_acc;?//回复到指定邮箱??
$headers?=?"Content-Type:?text/plain;?charset="gb2312"rnContent-Transfer-Encoding:?base64";??
$lb="rn";?//linebreak???
$hdr?=?explode($lb,$headers);?//解析后的hdr??
if($body)?{$bdy?=?preg_replace("/^./","..",explode($lb,$body));}//解析后的Body??
?
$smtp?=?array(??
//1、EHLO,期待返回220或者250??
array("EHLO?".$loc_host.$lb,"220,250","HELO?error:?"),??
//2、发送Auth?Login,期待返回334??
array("AUTH?LOGIN".$lb,"334","AUTH?error:"),??
//3、发送经过Base64编码的用户名,期待返回334??
array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION?error?:?"),??
//4、发送经过Base64编码的密码,期待返回235??
array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION?error?:?"));??
//5、发送Mail?From,期待返回250??
$smtp[]?=?array("MAIL?FROM:?".$from."".$lb,"250","MAIL?FROM?error:?");??
//6、发送Rcpt?To。期待返回250??
$smtp[]?=?array("RCPT?TO:?".$to."".$lb,"250","RCPT?TO?error:?");??
//7、发送DATA,期待返回354??
$smtp[]?=?array("DATA".$lb,"354","DATA?error:?");??
//8.0、发送From??
$smtp[]?=?array("From:?".$deliver.$lb,"","");??
//8.2、发送To??
$smtp[]?=?array("To:?".$to.$lb,"","");??
//8.1、发送标题??
$smtp[]?=?array("Subject:?".$subject.$lb,"","");??
//8.3、发送其他Header内容??
foreach($hdr?as?$h)?{$smtp[]?=?array($h.$lb,"","");}??
//8.4、发送一个空行,结束Header发送??
$smtp[]?=?array($lb,"","");??
//8.5、发送信件主体??
if($bdy)?{foreach($bdy?as?$b)?{$smtp[]?=?array(base64_encode($b.$lb).$lb,"","");}}??
//9、发送“.”表示信件结束,期待返回250??
$smtp[]?=?array(".".$lb,"250","DATA(end)error:?");??
//10、发送Quit,退出,期待返回221??
$smtp[]?=?array("QUIT".$lb,"221","QUIT?error:?");??
?
//打开smtp服务器端口??
$fp?=?@fsockopen($smtp_host,?25);??
if?(!$fp)?echo?"bError:/b?Cannot?conect?to?".$smtp_host."br";??
while($result?=?@fgets($fp,?1024)){if(substr($result,3,1)?==?"?")?{?break;?}}??
?
$result_str="";??
//发送smtp数组中的命令/数据??
foreach($smtp?as?$req){??
//发送信息??
@fputs($fp,?$req[0]);??
//如果需要接收服务器返回信息,则??
if($req[1]){??
//接收信息??
while($result?=?@fgets($fp,?1024)){??
if(substr($result,3,1)?==?"?")?{?break;?}??
};??
if?(!strstr($req[1],substr($result,0,3))){??
$result_str.=$req[2].$result."br";??
}??
}??
}??
//关闭连接??
@fclose($fp);??
return?$result_str;??
}??
希望上面这段代码示例能让大家充分掌握PHP发送邮件函数的运用。