php大型網站
1. php能做什麼網站
php可以做很多東西,小到企業網站,大到B2B比如阿里巴巴,淘寶等等,開發web上有速度上的優勢,性能上也是最好的,執行速度快。PHP 還支持利用諸如LDAP、IMAP、SNMP、NNTP、POP3、HTTP、COM(Windows環境)
等不計其數的協議的服務。
還可以開放原始網路埠,使得任何其它的協議能夠協同工作。
PHP 支持和所有 web 開發語言之間的 WDDX 復雜數據交換。
關於相互連接,PHP 已經支持了對 java 對象的即時連接,
並且可以將他們自由的用作 PHP 對象。
甚至可以用我們的 CORBA 擴展庫來訪問遠程對象。
PHP 具有極其有效的文本處理特性,
支持從 POSIX 擴展或者 Perl 正則表達式到 XML 文檔解析。
為了解析和訪問 XML 文檔,PHP 4 支持 SAX 和 DOM 標准,
也可以使用 XSLT 擴展庫來轉換 XML 文檔。
PHP 5 基於強健的 libxm2 標准化了所有的 XML 擴展,
並添加了 SimpleXML 和 XMLReader 支持,擴展了其在 XML 方面的功能。 此外還可以開發一些桌面程序如果用戶非常精通 PHP,並且希望在客戶端應用程序中使用 PHP 的一些高級特性,
可以利用 PHP-GTK 來編寫這些程序
2. PHP大型門戶站是用靜態好,還是偽靜態好
你好。大型門戶
一般是生成純靜態html,如果使用偽靜態會佔用一定的CPU使用率,對於大型門戶,這並不合適。
純靜態的好處:
1、載入的時候不需要調用資料庫,打開速度快。
2、減少了伺服器對數據響應的負荷。
3、從安全形度講,純靜態網頁不易遭受黑客攻擊。
4、從網站穩定性來講,即使網站代碼或資料庫出了問題,靜態網站也不會受到影響。
偽靜態的好處:
1、維護方便,網頁每天都自動變化,不用維護或者說極大地減少了維護量。
2、可以方便的實現對搜索引擎的優化,易於被搜索引擎收錄。
3、縮短了url的長度,隱藏文件實際路徑提高了安全性,易於用戶記憶和輸入。
4、占空間比較小,不像純靜態那樣多佔用近過多的空間。
5、安全性能通過url地址隱藏或加密,讓黑客無法找到真實的動態頁面,同時動態文件不需要太高的許可權,從而避免了木馬的注入。
結論:
偽靜態最大的缺點就是會佔用一定量的CPU使用率,增加伺服器的響應時間。
1、既然真偽靜態和偽靜態對搜索引擎的效果一樣,我們就可以選擇偽靜態了,畢竟它的優點是純靜態不可取代的。
2、大量使用偽靜態會照成CPU超負荷,所以我們只要不大量使用就可以了,設計在線使用了相應的編譯緩存技術,己經很好的優化並解決這個問題了。
3. ASP JSP PHP CGI SSI 區別是什麼哪個的工資高些大型網站如新浪163SOHU是用什麼技術建成的
asp(active server pages)是活動伺服器文檔,可以說是現在國內網上最流行的語言,它主要使用VBScript和JavaScript兩種腳本語言編程。但有一個弊端,那就是安全性能太差。
JSP(Java Server Pages)是用JAVA語言作為腳本語言的,JSP網頁為整個伺服器端的JAVA庫單元提供了一個介面來服務於HTTP的應用程序。速度快,功能強大,安全性高是它與asp最大區別,JSP由於是一種較新的技術,國內採用的較少。但在國外,JSP已經是比較流行的一種技術,尤其是電子商務類的網站,多採用JSP。
PHP( Hypertext Preprocessor)超文本預處理器 的縮寫,它是一種伺服器端的 HTML 腳本編程語言,是一種簡單的、面向對象的、解釋型的、健壯的、安全的、性能非常之高的、獨立於架構的、可移植的、動態的腳本語言。
CGI(Common Gateway Interface)通用網關介面,是HTTP伺服器與你的或其它機器 上的程序進行「交談」的一種工具,其程序須運行在網路伺服器上。
不僅可以運行於windows系列操作系統上,還可以運行在UNIX操作系統上CERN或NCSA格式的伺服器上運行。
SSI直譯伺服器端包含(Server Side Includes),由字面上看由WEB在伺服器提供的一種功能,並且是在伺服器端進行的。一般說來,要完成較復雜的任務(如:聊天室/留言本等),必須設計專門的CGI或ASP程序;但是如果只是想給網頁加上簡單的功能(如:顯示一篇文檔,web伺服器環境變數,關於該文檔的更新日期/大小等),則只要SSI就可以完成了。SSI則是直接由伺服器解釋執行的,須要WEB伺服器軟體支持SSI。
而且,由於直接在伺服器端執行SSI,產生相應HTML代碼;所以對客戶端沒有限制,不會產生因為不同瀏覽器而產生不同的觀看效果。
現在的大型門戶型網站一般是php技術構建。
中小型網站一般是asp。
關於哪種程序員的工資高些,真的很難定論,但不管用什麼樣的語言,只要精,就可以。都差不多。主要看需求。從發展上來看,php是發展的主流趨勢。
4. 哪些有名網站是用php做的
知名網站的前端,一般用的是php。比如淘寶、新浪、網路等,但是這些網站的業務中心(後台業務邏輯部分),用的基本是Java,或者是.NET,或者C++,或者Python等都有可能,但可以肯定,不是PHP。這些業務中心一般通過WebService對外提供服務。
5. 為什麼大型網站前端使用 PHP 後台邏輯用 Java
首先,為什麼是PHP和Java,不是其他。這和兩者的開源社區都很活躍,並且都很適合進行Web開發有很大的關系,而且都很適合Linux環境下運行,可以在運維上統一管理。
盡管.Net市場佔有率也不低,但由於Windows和SQL Server的License費用、開源社區不活躍等多種問題相對而言考慮得少一些。TIOBE TOP 10中適合Web開發的語種還包括了Python Perl Ruby,其中Perl已經是昨日黃花,主要在伺服器腳本領域還有較多應用,Web上已經不太可能Yesterday oncemore了。Python最近上升勢頭挺猛,但僅需要考慮文檔較少、招聘相對困難基本就註定了暫時不會是大網站的主流選擇。Ruby就不更不用提了。
再看一下兩個語言之間的差異。 PHP靈活,上手快,易修改,發布快捷,缺點是容易犯錯(常見如拼寫錯誤、SQL注入、上傳執行等)、執行效率不高、缺乏全局緩存。Java的優點則是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。盡管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊?
然後從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事干誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。而View,啥時候兩天不改BU啊PM啊UED啊大概是集體休年假了吧?
再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專注在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的復雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合?
總的來說,靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。
所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。
好吧,後面的同學補充了一個很好的問題,為什麼不是僅用PHP或是僅用Java?這個我原本稍微提了,不過之前發布前刪掉了的,因為問題是為什麼PHP+Java。其實也有很多公司為了保證團隊組織不至於過度復雜,會更傾向於採用單一語言,尤其是中小公司。
單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。
但我們都知道,現實往往比理想骨感很多,這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:
1、PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重復執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。 更何況,還缺少了系統級共享數據的支持,使得核心數據一次性初始化後重復使用必須藉助擴展或中間件。
2、在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。
3、Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕松的學習成本、多到令人發指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?
好吧,吐槽結束。
實際工作中性能問題可以通過良好的架構解決,容易犯錯的問題可以通過框架和規范以及全面的測試來解決,中間件選擇少些但其實該有的都有了,Java的靈活性一樣有不少可供考慮的解決方案,不說 OSGi 之類,就算是挫得要死的摘掉節點重啟,完成後重新上節點的策略也都能湊效。
所以,大家會看到單一語言的技術團隊也很多,這個問題的真正考慮還是更多在團隊自身的特點、積累等等。用了雙語言的,也知道自己為什麼要用這些,不用的也清楚自己的路該怎麼走。最後的最後說一句:如果你不知道自己為什麼要用雙語言方案的話,基本上你也就不需要考慮它了。
小豬,寫程序很好玩
後端java最大的優勢在於龐大的生態環境,你想解決的任何問題,java都有現成的方案,而且,相對其他語言來說,基於jvm的方案在運行效率和運維成本上平均來說是最佳的(這里不討論說什麼運維人員的能力之類的,只假設我們的運維都只具有一般的平均水平),所以,後端天然是傾向java的,無論前端用什麼。
至於前端,最大的問題在於,一個網站的UI,變動相當頻繁,傳統的基於java的開發方案,jsp tag lib,freemaker, velocity。。。。你讓前端怎麼改,怎麼調試?不經過專門學習他們怎麼看得懂?而且,java的開發模式,動不動上來就是MVC,後端跟前端結合太緊密了,基本上前端很難自由的在ui層工作。反過來,基於PHP的前端方案,至少做前端的都能看得懂,都能調試得了,這就是巨大的生產力的解放了,講後端java做成rest服務,前端所有的動態代碼都可以交給前端工程師,對他們來講,最舒服的動態網頁方案,自然就是PHP,這個是歷史沉澱決定了,誰也沒法改變,無論你多麼看不起PHP,包括我自己也是並不喜歡PHP,但是仍然要再強調一次,對前端工程師來說,最舒服最自在的動態網頁方案,仍然是PHP!就如同上面很多人回答的,PHP就是快,快在哪兒?PM說要改什麼,前端上手10分改好,30分鍾後已經release了。把任務發給後端工程師?那慢慢等吧。。。