搜尋

隨機推薦

24 十二月 2010
22 十一月 2011

這幾個function的區別:

  • system()輸出並返回最後一行shell結果。
  • exec()不輸出結果,返回最後一行shell結果,所有結果可以保存到一個返回的數組裡面。
  • passthru()只調用命令,把命令的運行結果原樣地直接輸出到標準輸出設備上。

 


相同點:都可以獲得命令執行的狀態碼

demo:
//system('dir');
// exec ('dir');
// passthru ('dir');
// echo `dir`;

PHP作為一種server端的腳本語言,可以編寫簡單與複雜的動態網頁功能,PHP能夠完全勝任。

但有時為了實行某些功能,筆續透過外部的shell script或是指令(或稱為命令),可以比較有效率的完成目的。

那麼,是否可以在PHP中執行外部指令呢? 可以只要用一個或幾個function即可

AJAX 技術的廣泛運用,對網際網路的發展帶來重大變革;透過更新部分頁面即可維護資料,更有效率的反應使用者動作,避免在網路上發送沒有改變的資訊所帶來的頻寬的浪費。但是這樣部分更新的做法,同時也伴隨著缺點,其中受到最多批評的就是瀏覽器後退按鈕的失效;因為 AJAX 並不會更新整個頁面,自然也就無法在瀏覽器中的歷史紀錄留下資訊。

不過這個問題,早在 google 廣泛利用 AJAX 技術的初期,就已經被他們解決囉!雖然必須針對各種瀏覽器做各自不同的處理,但是現在 jQuery 已有網海中的前輩推出簡單使用的 Plugin囉:history plugin,官網本身也是展示網頁;下面稍微介紹一下使用以及運作的流程:

 

關於什麼是Engine(引擎)?

在Half-Life 完成之後不久,Valve開始籌備他們的下一個主打遊戲--Half-Life 2。在商討遊戲引擎的採用問題上,開發小組明白到原版遊戲改採用的改良Quake 1引擎對於Half-Life 2來說顯得過於破舊,而且在很多的方面都不符合這一代遊戲發展的要求。於是,vlave的開發小組決定從美工設計以及遊戲代碼開始,設計出一個全新的遊戲框架,並在其中加入了一套來自havok的定製物理引擎。 
對於一個遊戲來說,“引擎”就是一個系統,就像是一輛汽車的發動機一樣,他能輸入來自加速器的動能,並輸出到輪子的轉動。軟件(在這裡為遊戲)的引擎實現的東西和汽車的發動機一樣,輸入來自框架(某些程序或者文件的片段),然後輸出程序員們想要的結果。再次拿汽車的發動機為例,一個軟件的引擎不能自行運作,他必須依靠另外一個系統,就好像,你只能開著“一台汽車”而非“一台發動機”去上班。在Source中,一個純粹的引擎只能是一堆代碼,完全不具有可玩性。所以不難對引擎下這樣的定義:引擎就是一套讓遊戲元素發生互動關係並將其編譯成可玩程序的代碼或程式,依靠框架進行操作。

band

 

 

11.再接再厲―Unreal2引擎

Unreal引擎一炮打響,EPIC又再接再厲推出了Unreal2引擎。相比第一代Unreal引擎,Unreal2的全部代碼幾乎重寫,並集成了最新的編輯器。隨著遊戲開發的需要,遊戲引擎的內涵也在不斷擴大,Unreal2引擎擁有了更多的功能。


clip_image001


《Unreal 2》虛幻2的畫面

當時物理加速技術已然成形,Unreal2引擎便集成了Karma 物理加速技術開發包,引擎中的物理效果得以增強,並且開始支持XBOX、PS2等主機平台。Unreal2引擎期間有過一次小幅升級,被稱為UE2.5,渲染性能有了一定提高。

clip_image002 
這張Unreal 2的看起來更漂亮一些

 

遊戲引擎(Game Engine)是什麼?大多數人給出的解釋都是基於engine的英文翻譯,將遊戲引擎等同於汽車中的引擎(發動機),再好一些的解釋成動力,這些解釋都對,但是動力只說並不全面,不能完整反映出遊戲引擎在遊戲中的作用與地位。


clip_image001

先舉一個簡單例子,在某遊戲中的一個場景中,玩家控制的角色躲藏在屋子裡,敵人正在屋子外面搜索玩家。突然,玩家控制的是一個穿迷彩服的士兵,突然碰倒了桌子上的一個杯子,杯子墜地發出破碎聲,敵人在聽到屋子裡的聲音之後聚集到玩家所在位置,玩家開槍射擊敵人,子彈引爆了周圍的易燃物,產生爆炸效果。在這個簡單而常見的過程中,遊戲引擎便在後台起著作用,控制著遊戲中的一舉一動。

clip_image002 
一些遊戲中常見的場景都是引擎在後台起著作用

把這個過程用專業們的語言分解一下就會變成這樣:首先出場的是可以行動的士兵,也就是人物模型。模型由引擎中的動畫系統賦予運動能力,遊戲中角色能做出什麼動作便取決於動畫系統有多強大。人物的真實程度則取決於3D模型渲染引擎的能力,這也是遊戲引擎最重要的功能之一,遊戲的畫質高低便由它來決定。之後,士兵碰倒了杯子,這個過程涉及到引擎的碰撞檢測,它可以決定不同的物體在接觸的時候會產生什麼樣的結果,有的遊戲能穿牆有的則不能便是不同的碰撞檢測控制的。例子中設定的是把杯子碰倒了,杯子發出了破碎聲。在發生某種動作的同時發出相應的聲音則屬於引擎中的音效處理了。杯子破碎的聲音吸引了敵人的注意,這是引擎中的AI智能運算在起作用,最後雙方交火引發爆炸,爆炸產生的煙霧、爆炸物飛散則是引擎中的物理效果在起作用了。 
可以說,遊戲引擎雖然有著“動力(Engine)”之名,但是其實際上卻是行“大腦(brain)”之實,指揮控制著遊戲中各種資源。遊戲引擎的準確定義也是如此,“用於控制所有遊戲功能的主程序,從計算碰撞、物理系統和物體的相對位置,到接受玩家的輸入,以及按照正確的音量輸出聲音等等。”通常來講,遊戲引擎包含以下系統:渲染引擎(即“渲染器”,含二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測系統、音效、腳本引擎、電腦動畫、人工智能、網絡引擎以及場景管理。(引自wikipedia)

看了一下datastore的入門,以及開始採用MVC方式來寫php,於是想拿php為redis寫個model,可以實現一些datastore的基本功能...於是碰到這樣一個問題-.-

php裡__CLASS__這類東西是靜態綁定的,如果不再子類裡重載的話,那麼繼承父類方法所得到的依舊是父類的名稱而不是子類的名稱。比如:

class A{
function __construct(){
echo __CLASS__;
}
static function name(){
echo __CLASS__;
}
}
class B extends A{}

此時無論將B實例化還是直接調用靜態方法,echo出來的都會是A。翻qeephp裡是用子類重載的方式解決這個問題,可是這樣的話沒新搞一個子類就得把相應調用類名的方法重載一邊.....這算是php在oop上的缺陷吧,試了試python上沒這個問題。

google之。找到兩個函數get_class()和get_called_class()。get_class()用於實例調用,加入參數($this)可解決子類繼承調用的問題,而get_called_class()則是用於靜態方法調用,可是...這玩意兒只在php 5.3以後才有....5.3還是比較遙遠的事...還好5.2之前可以手動實現這個函數:參閱http://php.net/manual/en/function.get-called-class.php 下方有高手添加了幾種5.3之前的實現方式。這樣,即可實現印出靜態子類別的方法了。

Key Codes


This document is written by Helge Willum Larsen
It contains a list of all "onkeypress", "onkeydown" and "onkeyup" KeyCodes in JavaScript,
that can be typed with a DANISH KEYBOARD !!!
Other keyboards probably have other KeyCodes.

The first section is tested with the Microsoft Internet Explore 5.0 and the Netscape
Communicator 4.51. At this time, Netscape didn't support "onkeydown" and "onkeyup".

CasualJS Framework是根據ActionScript3.0的架構開發的一套適用於HTML5 Canvas的面向對象的開發框架。目的是讓你無縫的從AS3開發過渡到HTML5 Canvas開發。雖然Canvas提供了強大的繪圖功能,但滿足不了高級開發的需要。利用CasualJS的顯示對象架構及渲染機制,你可以輕鬆的在Canvas中操控各種位圖、圖形、影片剪輯等顯示對象,就如同在用AS3開發一樣愉快。

 

好久之前,發現必須應該有個動畫框架,才能支持開發出更加複雜的動畫效果。所以在學習Canvas的過程中,我就萌發了這樣的念頭,在無數大神大牛的啟發下,今天“出廠”一個小的動畫框架,希望能和有興趣的朋友一起探討交流一下。

 

 

HTML5入門

HTML5是HTML的最新版本,目標是更好地開發網絡應用程序。HTML5比HTML4擁有更簡潔的語法並且提供了更多新的特性。本文將對HTML5做一個大體的介紹。

HTML5能做什麼?

1. 離線存儲

HTML5可以讓你的WEB應用程序離線也能運行,它提供了一個稱作“應用程序緩存”的離線存儲功能,因此即使當用戶離線 ,瀏覽器仍然能夠訪問到它所需的文件。這些文件可以是HTML,CSS,Javascript 或者其它任何 網頁運行所需要的文件。

2.拖拽功能

HTML5提供了可以用來設計交互應用程序的本地拖拽功能,通過這個特性你可以拖動任何元素然後把它放到你想放到地方。

3.地理位置定位技術

HTML5的地理位置定位API可以讓你與所信任的網站分享你當前的位置信息,當然,隱私問題是這一特性所主要考慮的,W3.org聲明:

瀏覽器在沒有用戶許可的情況下不允許私自向網站發送用戶的地理位置信息。

比如一位用戶使用Firefox瀏覽器訪問了一個實現地理位置定位技術的網頁,瀏覽器會向用戶詢問是否共享他的地理位置信息,如果用戶同意,Firefox會收集附近無線接入點和訪問者IP地址信息,並把這些信息發送到默認設定的Google地理位置服務,處理之後的位置信息將會發送給用戶訪問的這個網站。

4.音頻和視頻

當前的HTML缺少在頁面中嵌入多媒體文件的特性,因此多媒體文件的嵌入需要使用各種的插件。比如FLASH被廣泛地用來嵌入音頻和視頻文件。現在可以非常方便地使用HTML5提供的audio和video標籤,而不用任何插件。

5.表單輸入

HTML5提供了幾個新的表單input類型,像彈出日曆,調色板,數字輸入框等等。這些可以創建擁有更好的輸入控制和驗證的高效表單。

 

Please publish modules in offcanvas position.