第一篇:黑馬程序員:PHP為何能成為最搶手的后端語言?
黑馬程序員:PHP為何能成最搶手后端語言?
2016(第十五屆)中國互聯網大會于6.21-23日在北京國際會議中心召開。作為聚焦熱點趨勢的深度權威大會,此界互聯網大會公布了下面一組數據:在剛剛過去的2015年,隨著智能手機大力發展,移動互聯網用戶已高達6.1981億,占整體網民比例也已高達90.1%??梢灶A見,未來誰更重視移動端,誰就更能在“移動互聯網+”大潮中獲得更多紅利。那么作為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.tmdps.cn
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也不失為一個可行的替代方案。