❶ php好學嗎
我認為php難不難學和php多久學會是一個共性問題,所以我們首先來總結下有那麼幾種情況。
好的情況:
1、不排除有的人有天賦、智商高腦仁大。上手很快,這個和腦仁中的Z字回形溝有關。不過大部分人的腦仁都是差不多分量的。
2、不排除有的人具備瘋狗般的瘋狂學習精神。這種人從上手到提升周期也很短。
3、不排除有的人人緣很好,譬如MM程序員。一碰到問題就會有個中哥哥姐姐弟弟妹妹們來幫助、指導、甚至代為調試程序。如果自身努力再高一些,這類人進步也是很快。編程的世界裡如果有大神幫你指路,再加上你本身很好學,那是飛一樣的速度
不好的情況就不說了。不排除有的人沒啥天賦、長的像我那樣寒酸所以沒大神指路、天生怕疼無法達到瘋狗般的努力。
從我個人的學習情況來說吧,就屬於「不好的情況」。希望大家不要像我這樣
對於PHP來說,我給個php自學從入門到精通大約需要多久的模板。其他語言大家自行套弄
1、入門(第一階段)
標准:掌握基本的語法。能夠在記事本上寫 hello world 。能夠從網上下載wamp等全自動套件安裝php+apache環境。同時你的helloworld能夠運行
此階段,大約需要一周到一個月時間。看激情,沒有固定的。
精神狀態:迷茫。經常用手抓頭發,熬夜是常事
情感生活:有女朋友
2、入門(第二階段)
標准:學會簡單的html和寫個醜陋的樣式單。至少能用p做個胡亂浮動的效果。配合PHP把寫死的數組循環顯示在頁面里
精神狀態:程序員屌絲氣質初現,脾氣差,喜歡和別人爭論php有前途還是XX語言有前途(初入Web開發,php、python和ruby應該學哪個?),感覺自己離蓋茨不遠。
情感生活:可能有女朋友
3、初級階段
標准:學會了php如何連接mysql.會用客戶端工具來連接mysql,能夠自行部署phpadmin更佳。並會寫兩句簡單無比的sql語句。css和html有長進。能夠讀取數據循環一些數據到頁面上.
脫離初級階段有個很重要的因素:不再堅信「PHP+IIS的搭配是挺好的「,開始對linux產生莫名的好感
精神狀態:在小公司打工。人緣差,不愛講話,對是否要換語言重頭學猶豫不決。喜歡看勵志文,不吃早飯
情感生活:沒有女朋友.
4、初中級階段
此時已經能夠手工配置php+apache環境了。開始對linux感興趣。至少知道yum 一鍵安裝php+apache,並能做簡單的配置.
開始跟著項目經理做項目。經常被罵。掃BUG佔用的精力很大
精神狀態:時常接近崩潰邊緣。不修邊幅,發型經常一個月都不理。
情感生活:沒有女朋友,雖然很嚮往,青春痘多
5、中級階段
要達到中級階段至少要做過2-3個真實的或者類真實的模擬項目(php實戰教程)。在項目中積累了一定的調錯經驗、性能調優性能、Sql優化性能。
Linux技能有所提高,並能優化網站的apache配置。對nginx有一定了解,並能操作之
此時已經明白一個重要的道理:要想學好PHP,不是光光會PHP就夠的。同時還要掌握一定的html知識、js知識、linux知識和資料庫知識。而且每樣都不能學的慫,否則php會了也白會
精神狀態:目空一切,感覺自己已經成為大神。時常向老闆提加薪。和項目經理對罵。認為自己的想法都是對的。
情感生活:都沒有,ang
6、中高級階段(一)
要達到中高級階段,必須做過一些(幾個?這個隨意)大中型項目。在項目中積累了較高水準的肉眼識BUG的技能。開始能夠自行編寫PHP前端框架,JS水平精進(這里指原生態JS),資料庫水平不比公司DBA差多少、如果公司運維人員懷孕了能夠代替運維那麼一天也不會吐.
對開源代碼有興趣。很好的利用並能讀懂開源代碼。譬如memcached或 NOSql某些產品。
精神狀態:心態逐步平和。終於知道天外有天。開始尊重領導,雖然心裡有時也不太願意。
情感生活:已婚。戀愛周期很短,差不多可以了。
7、中高級階段(二)
做大中型項目不再局限於PHP。而是用java等語言做了後台、python做了數據分析(或挖掘)、PHP來做前端。掌握至少2們資料庫
此時學習一門新技術已經達到一通百通的程度,分分鍾就能掌握一門新語音的語法。
精神狀態:屌絲氣質已經消失。謙遜無比。雖然有時遇到郁悶的時候還會本性全露,但是很快就恢復正常
情感生活:孩子都有了
8、高級階段
PHP已經僅僅是個工具了。其他語言亦是。
惡補數學、c/c++。修改PHP內核是很正常的事。
同時認為,要成為PHP高級階段,這時已經和PHP本身沒啥太大關系了。
精神狀態:完全恢復正常人狀態。已經買房。能夠自主控制自己的情緒。
情感生活:也是高手了。你懂得
❷ php開發工程師前景
發展前景因各個企業不同而不一樣,但是最終目標是一樣的,就是開發出能掙錢的產品,所以就這點來說 PHP 也好,JAVA 也好,關鍵是否能給企業帶來利益,利益越大,越能使企業在這項技術領域投入的人力物力更多。因此,前景是看最終產品的。
❸ PHP哪個框架最好
二話不說先來一個 Github 上 PHP 開源項目的排名 Search · stars:>0 · GitHub , 好有個概念.
大家的回答都比較老了, 現在是 2014 年 8 月下旬, PHP 最近這幾年還是發生了很多變化, 尤其是 Laravel 的出現, 讓很多已經開始放棄 PHP 的人又從新回到 PHP 的懷抱.
離開 PHP 是因為覺得社區就是一盤散沙, 大家各種為戰, 當我想學個框架, 來提高生產效率的時候, 上 Google 一搜, 出來的就是
50個你必須了解的 PHP 框架>
<10個最有名的 PHP 框架>....
真的很嚇人, 這么多的框架, 我無從入手.
最後我下定決心, 把每一個框架都學習一遍, 真正在學習的時候, 頭又大了, 每一個框架都有不同的代碼規范, 不同的架構, 不同 "功能一樣調用方式不一樣的函數方法" , 可以這么說
每一個框架都在發明屬於自己的語言
在學到第五個框架的時候, 我就決定放棄了, 因為, 我覺得, 我雖然年輕, 但是不至於時間如此廉價的浪費掉.
後來一直聽說 Ruby 社區有一個叫 Ruby on Rails 的 Web 框架, 是全世界最好的框架, 為了用上最好的框架我開始學習 Ruby 直到接觸 Rails, 還記得第一次用 Rails 寫 Demo App 的時候, 熱淚盈眶呀, 多麼好的設計, 並且最重要的, Rails 的社區是如此理智, 大家喊得口號是
Convention over configuration;
DRY - Don't Repeat You;
KISS - Keep it simple and stupid;
Don't reinventing the wheel;
Optimized for programmer happiness and sustainable proctivity
多麼智慧, 多麼聰明, 又是多麼簡單的一些想法, 我瘋狂的愛上了 Rails.
2012 年末, 無意間在 Tuts+ 網站上看到 Jeffrey Way 的一套 Laravel 3 Essentials ( 注意: Laravel 現在已經是 Laravel 4 了, 這套課程已經 out dated 了 ) 課程, 看完以後對 Laravel 印象深刻, 從那會就一直留意 Laravel 的發展.
2013 年 6 月份, Laravel 4 發布, 集成了 Composer, 框架的可擴展性極高, 還有 100% full testing coverage.
關於 Laravel 4 的好, 我在這個問題裡面已經講了 最好的 PHP 框架是什麼?為什麼? , 就不復制過來了.
Laravel China:
Laravel China is ready Laravel 中文文檔 , 歡迎發起 issue 提交紕漏 和建議 --> Laravel China · GitHub
❹ 誰推薦個開源php進銷存軟體
一庫倉儲:PHP開源的進銷存軟體,前端環境基於 HTML5 的,適合庫存品類在 3000 以內的中小企業。 界面非常簡單,出入庫、庫存、明細、設置,無需配置品類,直接使用。 要求 html5 瀏覽器支持,因為軟體使用了不少 html5 的特性,如 datalist, required , date 等。 推薦使用 chrome20 以上版本,可以直接下載 chrome 最新版使用。 另安裝本軟體需要 apache + php 支持, apache 要求開啟 url_rewrite 和 htaccess 一庫倉儲,為啥而來 最早寫的不是倉儲軟體,而是CMS(羊駝CMS), 寫完以後才發現,形形色色的 CMS 太多了. 這才想起了OSC 上面的那一句話 "不要重復發明輪子" 。 於是乎,想寫點用的著的, 就有了「一庫倉儲」。
❺ php是什麼意思
PHP,是英文超文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,被廣泛地運用。
PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創的語法。 PHP安裝它可以比 CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
==================================================================
親~你好!````(^__^)````
很高興為您解答,祝你學習進步,身體健康,家庭和諧,天天開心!有不明白的可以追問!
如果有其他問題請另發或點擊向我求助,答題不易,請諒解.
如果您認可我的回答,請點擊下面的【採納為滿意回答】或者手機提問的朋友在客戶端右上角點擊【評價】,謝謝!
你的好評是我前進的動力!! 你的採納也會給你帶去財富值的。(祝你事事順心)
==================================================================
❻ php 數組序列化
mixed unserialize ( string str [, string callback] )
unserialize() 對單一的已序列化的變數進行操作,將其轉換回 PHP 的值。返回的是轉換之後的值,可為 integer、float、string、array 或 object。如果傳遞的字元串不可解序列化,則返回 FALSE。
unserialize_callback_func 指令: 如果在解序列化的時候需要實例化一個未定義類,則可以設置回調函數以供調用(以免得到的是不完整的 object 「__PHP_Incomplete_Class」)。可通過 php.ini、ini_set() 或 .htaccess 定義『unserialize_callback_func』。每次實例化一個未定義類時它都會被調用。若要禁止這個特性,只需置空此設定。還需要注意的是 unserialize_callback_func 指令是從 PHP 4.2.0 開始提供使用的。
若被解序列化的變數是一個對象,在成功地重新構造對象之後,PHP 會自動地試圖去調用 __wakeup() 成員函數(如果存在的話)。 例子 1. unserialize_callback_func 示例
<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
// unserialize_callback_func 從 PHP 4.2.0 起可用
ini_set('unserialize_callback_func','mycallback'); // 設置您的回調函數
function mycallback($classname) {
// 只需包含含有類定義的文件
// $classname 指出需要的是哪一個類
}
?>
<?php
// 這里,我們使用 unserialize() 裝載來自資料庫的 $session_data 數組中的會話數據。
// 此例是描述 serialize() 的那個例子的補充。
$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array ($PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata) || !odbc_fetch_into ($stmt, &$tmp)) {
// 如果執行出錯或返回錯誤,則初始化為空數組
$session_data = array();
} else {
// 現在我們需要的是 $tmp[0] 中已序列化的數據。
$session_data = unserialize ($tmp[0]);
if (!is_array ($session_data)) {
// 出錯,初始化為空數組
$session_data = array();
}
}
?>
❼ php+mysql優化,百萬至千萬級快速分頁mysql性能到底能有多高
php+Mysql 優化,百萬至千萬級快速分頁
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考這個問題還是從前天開始。有過痛苦有過絕望,到現在充滿信心!MySql 這個資料庫絕對是適合dba級的高手去玩的,一般做一點1萬篇新聞的小型系統怎麼寫都可以,用xx框架可以實現快速開發。可是數據量到了10萬,百萬至千萬,他的性能還能那麼高嗎?一點小小的失誤,可能造成整個系統的改寫,甚至更本系統無法正常運行!好了,不那麼多廢話了。用事實說話,看例子:
數據表 collect ( id, title ,info ,vtype) 就這4個欄位,其中 title 用定長,info 用text, id 是逐漸,vtype是tinyint,vtype是索引。這是一個基本的新聞系統的簡單模型。現在往裡面填充數據,填充10萬篇新聞。
最後collect 為 10萬條記錄,資料庫表佔用硬碟1.6G。OK ,看下面這條sql語句:
select id,title from collect limit 1000,10; 很快;基本上0.01秒就OK,再看下面的
select id,title from collect limit 90000,10; 從9萬條開始分頁,結果?
8-9秒完成,my god 哪出問題了????其實要優化這條數據,網上找得到答案。看下面一條語句:
select id from collect order by id limit 90000,10; 很快,0.04秒就OK。為什麼?因為用了id主鍵做索引當然快。網上的改法是:
select id,title from collect where id>=(select id from collect order by id limit 90000,1) limit 10;
這就是用了id做索引的結果。可是問題復雜那麼一點點,就完了。看下面的語句
select id from collect where vtype=1 order by id limit 90000,10; 很慢,用了8-9秒!
到了這里我相信很多人會和我一樣,有崩潰感覺!vtype 做了索引了啊?怎麼會慢呢?vtype做了索引是不錯,你直接 select id from collect where vtype=1 limit 1000,10; 是很快的,基本上0.05秒,可是提高90倍,從9萬開始,那就是0.05*90=4.5秒的速度了。和測試結果8-9秒到了一個數量級。從這里開始有人提出了分表的思路,這個和discuz 論壇是一樣的思路。思路如下:
建一個索引表: t (id,title,vtype) 並設置成定長,然後做分頁,分頁出結果再到 collect 裡面去找info 。 是否可行呢?實驗下就知道了。
10萬條記錄到 t(id,title,vtype) 里,數據表大小20M左右。用
select id from t where vtype=1 order by id limit 90000,10; 很快了。基本上0.1-0.2秒可以跑完。為什麼會這樣呢?我猜想是因為collect 數據太多,所以分頁要跑很長的路。limit 完全和數據表的大小有關的。其實這樣做還是全表掃描,只是因為數據量小,只有10萬才快。OK,來個瘋狂的實驗,加到100萬條,測試性能。
加了10倍的數據,馬上t表就到了200多M,而且是定長。還是剛才的查詢語句,時間是0.1-0.2秒完成!分表性能沒問題?錯!因為我們的limit還是9萬,所以快。給個大的,90萬開始
select id from t where vtype=1 order by id limit 900000,10; 看看結果,時間是1-2秒!
why 分表了時間還是這么長,非常之郁悶!有人說定長會提高limit的性能,開始我也以為,因為一條記錄的長度是固定的,mysql 應該可以算出90萬的位置才對啊? 可是我們高估了mysql 的智能,他不是商務資料庫,事實證明定長和非定長對limit影響不大?怪不得有人說 discuz到了100萬條記錄就會很慢,我相信這是真的,這個和資料庫設計有關!
難道MySQL 無法突破100萬的限制嗎???到了100萬的分頁就真的到了極限???
答案是: NO !!!! 為什麼突破不了100萬是因為不會設計mysql造成的。下面介紹非分表法,來個瘋狂的測試!一張表搞定100萬記錄,並且10G 資料庫,如何快速分頁!
好了,我們的測試又回到 collect表,開始測試結論是: 30萬數據,用分表法可行,超過30萬他的速度會慢道你無法忍受!當然如果用分表+我這種方法,那是絕對完美的。但是用了我這種方法後,不用分表也可以完美解決!
答案就是:復合索引!有一次設計mysql索引的時候,無意中發現索引名字可以任取,可以選擇幾個欄位進來,這有什麼用呢?開始的select id from collect order by id limit 90000,10; 這么快就是因為走了索引,可是如果加了where 就不走索引了。抱著試試看的想法加了 search(vtype,id) 這樣的索引。然後測試
select id from collect where vtype=1 limit 90000,10; 非常快!0.04秒完成!
再測試: select id ,title from collect where vtype=1 limit 90000,10; 非常遺憾,8-9秒,沒走search索引!
再測試:search(id,vtype),還是select id 這個語句,也非常遺憾,0.5秒。
綜上:如果對於有where 條件,又想走索引用limit的,必須設計一個索引,將where 放第一位,limit用到的主鍵放第2位,而且只能select 主鍵!
完美解決了分頁問題了。可以快速返回id就有希望優化limit , 按這樣的邏輯,百萬級的limit 應該在0.0x秒就可以分完。看來mysql 語句的優化和索引時非常重要的!
好了,回到原題,如何將上面的研究成功快速應用於開發呢?如果用復合查詢,我的輕量級框架就沒的用了。分頁字元串還得自己寫,那多麻煩?這里再看一個例子,思路就出來了:
select * from collect where id in (9000,12,50,7000); 竟然 0秒就可以查完!
mygod ,mysql 的索引竟然對於in語句同樣有效!看來網上說in無法用索引是錯誤的!
有了這個結論,就可以很簡單的應用於輕量級框架了:
代碼如下:
$db=dblink();
$db->pagesize=20;
$sql="select id from collect where vtype=$vtype";
$db->execute($sql);
$strpage=$db->strpage(); //將分頁字元串保存在臨時變數,方便輸出
while($rs=$db->fetch_array()){
$strid.=$rs['id'].',';
}
$strid=substr($strid,0,strlen($strid)-1); //構造出id字元串
$db->pagesize=0; //很關鍵,在不注銷類的情況下,將分頁清空,這樣只需要用一次資料庫連接,不需要再開;
$db->execute("select id,title,url,sTime,gTime,vtype,tag from collect where id in ($strid)");
< php while($rs=$db->fetch_array()): >
<tr>
<td$amp;>amp;$amp;nbsp;< php echo $rs['id']; $amp;>amp;$lt;/td>
<td$amp;>amp;$amp;nbsp;< php echo $rs['url']; $amp;>amp;$lt;/td>
<td$amp;>amp;$amp;nbsp;< php echo $rs['sTime']; $amp;>amp;$lt;/td>
<td$amp;>amp;$amp;nbsp;< php echo $rs['gTime']; $amp;>amp;$lt;/td>
<td$amp;>amp;$amp;nbsp;< php echo $rs['vtype']; $amp;>amp;$lt;/td>
<td$amp;>amp;$amp;nbsp;<a act=show&id=< php echo $rs['id']; $amp;>quot;$ target="_blank"$amp;>amp;$lt; php echo $rs['title']; $amp;>amp;$lt;/a$amp;>amp;$lt;/td>
<td$amp;>amp;$amp;nbsp;< php echo $rs['tag']; $amp;>amp;$lt;/td>
</tr>
< php endwhile; >
</table>
< php
echo $strpage;
通過簡單的變換,其實思路很簡單:1)通過優化索引,找出id,並拼成 "123,90000,12000" 這樣的字元串。2)第2次查詢找出結果。
小小的索引+一點點的改動就使mysql 可以支持百萬甚至千萬級的高效分頁!
通過這里的例子,我反思了一點:對於大型系統,PHP千萬不能用框架,尤其是那種連sql語句都看不到的框架!因為開始對於我的輕量級框架都差點崩潰!只適合小型應用的快速開發,對於ERP,OA,大型網站,數據層包括邏輯層的東西都不能用框架。如果程序員失去了對sql語句的把控,那項目的風險將會成幾何級數增加!尤其是用mysql 的時候,mysql 一定需要專業的dba 才可以發揮他的最佳性能。一個索引所造成的性能差別可能是上千倍!
PS: 經過實際測試,到了100萬的數據,160萬數據,15G表,190M索引,就算走索引,limit都得0.49秒。所以分頁最好別讓別人看到10萬條以後的數據,要不然會很慢!就算用索引。經過這樣的優化,mysql到了百萬級分頁是個極限!但有這樣的成績已經很不錯,如果你是用sqlserver肯定卡死!而 160萬的數據用 id in (str) 很快,基本還是0秒。如果這樣,千萬級的數據,mysql應該也很容易應付。
❽ PHP自學要多久
HTMl做web開發必須要接觸一門語言,現在這個語言已經發展到HTMl5,但是大很多瀏覽器對HTMl的兼容性不好,我們學習只需要學習XHTML就可以,我在網頁上點擊右鍵查看源碼哪裡面寫的就是HTMl
CSS有了html只有雖然我們的頁面有了但是我們要配置各種顏色,各種布局,這個時候我們就需要Css這個語言
javascript 有了頁面也有了布局,這個時候我們就需要添加很多頁面的效果,比如橫幅的滾動,這些是最常見不過的了,這些效果就是js來實現的,我們也可以用js第三方的庫,比如jquery、dojo還有很多其他的
前端頁面好了,這個時候我們就需要調用數據,這個時候就用到php語言了,php的作用是把資料庫中的數據經過php展示在前端上,php的學習,個人建議直接看看php的手冊就可以
php的數據來源是哪裡?當然是資料庫,數據mysql,這個在php的手冊中有mysql一些擴展函數,mysql最原始的的sql語句,我們至少要學會 create delete update
按照上面的流程學號後 基本可以做一個小的簡單應用程序出來。如果你想進一步的提升自己的能力,那伺服器是必須的了,伺服器我們只需要學習linux的就可以,linux 可以關注redhat centos Ubuntu
學習了linux之後我們在學習web伺服器軟體需要學習 apache和nginx這兩個軟體