第一篇:黑马程序员:PHP为何能成为最抢手的后端语言?
黑马程序员:PHP为何能成最抢手后端语言?
2016(第十五届)中国互联网大会于6.21-23日在北京国际会议中心召开。作为聚焦热点趋势的深度权威大会,此界互联网大会公布了下面一组数据:在刚刚过去的2015年,随着智能手机大力发展,移动互联网用户已高达6.1981亿,占整体网民比例也已高达90.1%。可以预见,未来谁更重视移动端,谁就更能在“移动互联网+”大潮中获得更多红利。那么作为PC端WEB开发首选利器的PHP语言,是不是会在“移动互联网+”的趋势下颓势尽显呢?
PHP是不是会颓势尽显,权威媒体也许能告知答案!就在“移动互联网+”大发展的2015年,创业邦统计出“互联网十大抢手人才”排行榜。在该排行榜中,擅长PC端Web开发的PHP语言,不仅没有尽显颓势,反而超越C++、Java这两种相当优秀的脚本语言,成为最抢手的后端语言!这一抢手人才排行榜得到众多权威媒体纷纷转载,标志着PHP语言借助“移动互联网+”时代,已从刚出道时的“草根”语言成为现在“巨人”中的成员!
如果PHP程序员抢手仅仅是权威媒体还不够有说服力,那我们再用PHP程序员薪资说话。为更好体现移动互联网大发展的2015年,PHP程序员薪资动态变化,我们以传智播客PHP毕业学员平均就业薪资走势图举证(统计口径统一)。从上图中可以看到,作为2015年毕业第一个班级32期,平均薪资只有7500元,但2015年春节后,PHP学员平均就业薪资一路走高,到2015年下半年和2016年上半年,共计6个班的平均过万!这张图充分说明,在2015年PHP程序员越来越抢手!
为什么在移动互联网快速发展的大背景下,擅长WEB开发的PHP语言不仅没有颓势尽显,反而越来越抢手,甚至成为最抢手的后端语言,黑马程序员分析有以下6个原因:
第一、2015年虽然移动互联网网民增加,但是网民规模同样增加。
中国网民规模6.8826亿,普及率高达50.3%
仅在2015年,网民新增就达到3951万人。没有网站,不可能叫互联网+。移动互联网网民增加,并不代表他们只用智能手机上网,他们也会用其他工具上网。想象自己的亲身经历,就算用手机,我们一样访问PC端的产品,比如网站,OA工具。而PHP的快速,开发成本低,周期短,后期维护费用低,开源产品丰富,PHP已经是国内大部分Web项目的首选,甚至很多公司从其它语言(如ASP,JAVA)转到了PHP。所以现在如果做网站,毫无疑问企业就用PHP。
第二、从企业一般规律来看,有手机App的企业一定有网站!
有网站的企业不一定有手机App,但有手机App的企业一定有网站!所以“移动互联网+时代”,除了企业会迅速抢占手机端开发App,更是倒逼大量企业对网站有需求,让PHP更加抢手!
第三、智能手机时代,PHP可以对App进行数据传输!
目前最常用的手机APP开发,主要是用iOS和Andriod两大类。但手机App根据其适用性,需要快速开发,简单便捷,这与PHP的开发精神不谋而合。同时PHP完美支持RESTFULL规则,更适合手机App接口的调用规范,故常用来作为手机App数据传输工具。这也意味着,PHP在手机互联网时代同样有着广泛用武之地!
第四、微信开发火爆,PHP是最好的开发工具!
目前最火爆的手机APP,无疑是腾讯的微信产品,微信的火爆,催生出一个产业,那就是微信开发。微信开发最常用的语言就是PHP,而且微信官网公布的开发者文档demo就是PHP版。微信的火爆也让PHP语言有在手机互联趋势下,有了更大的生存空间。
第五、Hybrid App的诞生,实现PHP程序员也可以开发手机App!Hybrid App前台采用混合式开发,其后端采用PHP开发即可。这种开发模式可以不用
学Object-c,也不用学Android,也就意味着PHP程序员只要掌握前端知识(Html5、Css3、Javascript)也可以开发手机APP。该种方法开发出来的APP客户端,不仅其效果与原生安卓和iOS一样,而且还可以兼容安卓手机和iOS手机,大大降低移动端开发成本,深受企业欢迎。Hybrid App的诞生,为PHP语言在“互联网+”时代注入了强大生命力。目前,黑马程序PHP学科已经将Hybrid App加入到课程体系当中,正致力于打造横跨前端+后端+移动端的全能型人才!
第六、PHP低成本、快速开发,最符合互联网+时代的创客需求!
由于互联网本身的快速发展、不断创新的特点,决定了互联网创业公司,除了要有好的Idea,还要有最快的开发速度和最低成本,方能取胜。PHP以快速开发著称,同时PHP开源、免费,符合互联网时代需求。再加上随着Hybrid App问世,PHP程序员不仅能满足企业在“移动互联网+”背景下横跨Web端+移动端需求,还能进一步大大降低企业用人成本,标志着PHP是最符合互联网+时代的创客需求的语言,PHP程序员被争抢势头不可阻挡!
回顾PHP语言在“移动互联网+”时代能抢手的的六大原因,展望“移动互联网+”行业的发展趋势,我们可以得出结论:PHP的发展势头不可阻挡,PHP成为最抢手后端语言的势头必将在更长时间里延续!
第二篇:黑马程序员:PHP 短信验证码功能
黑马程序员:PHP 短信验证码功能
现在网站在建设网站时为了保证用户信息的真实性,往往会选择发短信给用户手机发验证码信息,只有通过验证的用户才可以注册,这样既保证了用户的联系信息资料的100%的准确性,也为用户提供了一种最方便快捷的注册方式。
那么我们今天就来说一下 短信发送原理, 如下图
黑马程序员郑州中心 编著
工作开发流程: 第一、实现php手机短信验证功能的基本思路
1、要找到短信服务提供商,接入短信服务
2、在网站信息提交页面请求发送信息
3、服务器向短信服务提供商通信,提交发送请求
4、短信服务提供商通过运营商将信息发送到用户的手机中 第二 :手机号码短信验证前台页面效果实现
*{margin:0;padding:0;}
var InterValObj;//timer变量,控制时间
var count = 60;//间隔函数,1秒执行
var curCount;//当前剩余秒数
function codeRandom(chars){
var res=“";
for(var i=0;i res += Math.floor(Math.random()*10); } return res; } //timer处理函数 function SetRemainTime(){ if(curCount == 0){ 黑马程序员郑州中心 编著 window.clearInterval(InterValObj);//停止计时器 $(”#sub“).removeAttr(”disabled“);//启用按钮 $(”#sub“).val(”重新发送验证码“); code = ”“;//清除验证码。如果不清除,过时间后,输入收到的验证码依然有效 } else { curCount--; $(”#sub“).val(”请在“ + curCount + ”秒内输入验证码“); } } //获取手机号码 $(function(){ $(”#sub“).click(function(){ var phone=$(”#phone“).val();//获取手机号码 curCount = count; 黑马程序员郑州中心 编著 if(phone!=''){ //验证手机有效性 var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+d{8})$/; if(!myreg.test($('#phone').val())) { alert('请输入有效的手机号码!'); return false; } phone = $('#phone').val(); //验证码(随机生成) var code= codeRandom(4); //设置button效果,开始计时 黑马程序员郑州中心 编著 $(”#sub“).attr(”disabled“, ”true“); $(”#sub“).val(”请在“ + curCount + ”秒内输入验证码“); InterValObj = window.setInterval(SetRemainTime, 1000);//启动计时器,1秒执行一次 //发送数据到后台 通过Ajax $.ajax({ //设置的参数 type: ”post“,url: ”data.php“,data:{”code“:code,”phone“:phone},success:function(msg){ alert(msg); } });}else{ alert('请填写手机号码'); } 黑马程序员郑州中心 编著 }); }); PHP-短信验证码
手机验证码:
第三篇:总结PHP程序员最常犯的11个MySQL错误
对于大多数web应用来说,数据库都是一个十分基础性的部分。如果你在使用PHP,那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。
对于很多新手们来说,使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是,构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误(有些同样也反映在其他语言/数据库的使用上)。www.xiexiebang.com
1、使用MyISAM而不是InnoDB
MySQL有很多数据库引擎,但是你最可能碰到的就是MyISAM和InnoDB。
MySQL 默认使用的是MyISAM。但是,很多情况下这都是一个很糟糕的选择,除非你在创建一个非常简单抑或实验性的数据库。外键约束或者事务处理对于数据完整性 是非常重要的,但MyISAM都不支持这些。另外,当有一条记录在插入或者更新时,整个数据表都被锁定了,当使用量增加的时候这会产生非常差的运行效率。
结论很简单:使用InnoDB。
2、使用PHP的mysql函数
PHP自产生之日就提供了MySQL库函数(or near as makes no difference)。很多应用仍然在使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数,尽管PHP手册上说:
如果你在使用MySQL v4.1.3或者更新版本,强烈推荐使用您使用mysqli扩展。
mysqli(MySQL的加强版扩展)有以下几个优点:
可选的面向对象接口
prepared表达式,这有利于阻止SQL注入攻击,还能提高性能
支持更多的表达式和事务处理
另外,如果你想支持多种数据库系统,你还可以考虑PDO。
3、没有处理用户输入
这或者可以这样说#1:永远不要相信用户的输入。用服务器端的PHP验证每个字符串,不要寄希望与JavaScript。
4、没有使用UTF-8
美国、英国和澳大利亚的我们很少考虑除英语之外的其他语言。我们很得意地完成了自己的“杰作”却发现它们并不能在其他地方正常运行。
UTF-8解决了很多国际化问题。虽然在PHP v6.0之前它还不能很好地被支持,但这并不影响你把MySQL字符集设为UTF-8。
5、相对于SQL,偏爱PHP
如果你接触MySQL不久,那么你会偏向于使用你已经掌握的语言来解决问题,这样会导致写出一些冗余、低效率的代码。比如,你不会使用MySQL自带的AVG()函数,却会先对记录集中的值求和然后用PHP循环来计算平均值。
此外,请注意PHP循环中的SQL查询。通常来说,执行一个查询比在结果中迭代更有效率。
所以,在分析数据的时候请利用数据库系统的优势,懂一些SQL的知识将大有裨益。
6、没有优化数据库查询
99%的PHP性能问题都是由数据库引起的,仅仅一个糟糕的SQL查询就能让你的web应用彻底瘫痪。MySQL的EXPLAIN statement、Query Profiler,还有很多其他的工具将会帮助你找出这些万恶的SELECT。
7、不能正确使用数据类型
MySQL提供了诸如numeric、string和date等的数据类型。如果你想存储一个时间,那么使用DATE或者DATETIME类型。如果这个时候用INTEGER或者STRING类型的话,那么将会使得SQL查询非常复杂,前提是你能使用INTEGER或者STRING来定义那个类型。
很多人倾向于擅自自定义一些数据的格式,比如,使用string来存储序列化的PHP对象。这样的话数据库管理起来可能会变得简单些,但会使得MySQL成为一个糟糕的数据存储而且之后很可能会引起故障。
8、在查询中使用*
永远不要使用*来返回一个数据表所有列的数据。这是懒惰:你应该提取你需要的数据。就算你需要所有字段,你的数据表也不可避免的会产生变化。
9、不使用索引或者过度使用索引
一般性原则是这样的:select语句中的任何一个where子句表示的字段都应该使用索引。
举 个例子,假设我们有一个user表,包括numeric ID(主键)和email address。登录的时候,MySQL必须以一个email为依据查找正确的ID。如果使用了索引的话(这里指email),那么MySQL就能够使用 更快的搜索算法来定位email,甚至可以说是即时实现。否则,MySQL就只能顺序地检查每一条记录直到找到正确的email address。
有的人会在每个字段上都添加索引,遗憾的是,执行了INSERT或者UPDATE之后这些索引都需要重新生成,这样就会影响性能。所以,只在需要的时候添加索引。
10、忘记备份!
虽然比较罕见,但是数据库还是有崩溃的危险。硬盘有可能损坏,服务器有可能崩溃,web主机提供商有可能会破产!丢失MySQL数据将会是灾难性的,所以请确保你已经使用了自动备份或者已经复制到位。
11、Bonus mistake-不考虑使用其他数据库
对于PHP开发人员来说,MySQL可能是使用最广泛的数据库系统,但并不是唯一的选择。PostgreSQL和Firebird是最强有力的竞争者:这个两者都是开源的,而且都没有被公司收购。微软提供了sql server Express,甲骨文提供了10g Express,这两者都是企业级数据库的免费版本。有时候,对于一个较小的web应用或者嵌入式应用,SQLite也不失为一个可行的替代方案。