20140408

Deprecated: Function ereg_replace() is deprecated

example :
$mytext = ereg_replace('[^A-Za-z0-9_]', '', $mytext );
is changed to
$mytext = preg_replace('/[^A-Za-z0-9_]/', '', $mytext );

Deprecated: Function set_magic_quotes_runtime() is deprecated

find:
set_magic_quotes_runtime(0);

replace with:
ini_set("magic_quotes_runtime", 0);

Deprecated: Function ereg() is deprecated


而PHP5.2版本以前ereg()都使用正常,在5.3以後,就要用preg_match來代替ereg。詳行請看PHP官方文件:ereg()頁面下有顯示
ereg() is deprecated as of PHP 5.3.0. preg_match() is the suggested alternative to this function. 
在PHP中有兩種正則表示法,一個是posix,一個是perl,PHP6打算廢除posix的正則表示方法所以後來就加了個 preg_match()

ereg()前面加個過濾提示信息符號即可->把ereg()變成@ereg()。但這樣把錯誤隱藏掉,在執行後面的程式碼,假如出錯也會連帶後面的資料出錯,這樣的方法並不是我們所想要的,所以在此並不推薦這方法。




Version
PHP 5.2 Version Before
PHP5.3 Version After
Function
Ereg()Eregi()
Preg_match()
舉例
ereg(“^[0-9]*$”,$String)
preg_match(“/^[0-9]*$/”,$Strimg)
說明
要加  /
特別提醒:posixperl的很明顯的表達區別就是是否加 /,所以與ereg相比,後者在正則的前後分別增加了兩個」/」符號,不能缺少。

PHP 5.3.0 後 split() 的替代方式

PHP 的 split() 非常方便, 但是 PHP 5.3.0 後, 不建議繼續使用 split(), 在使用上會出現警告訊息.

split() 不建議使用的原因

PHP 5.3.0 之後的 regex, 希望使用 PCRE 的規格, POSIX Regex 都不建議使用了(統一 Regex, 避免規格太多?).
所以下述是不建議使用的 Function (POSIX), 與建議替換成的 Function (PCRE) 列表, 詳可見: PHP: Differences from POSIX regex
  • POSIX → PCRE
  • ereg_replace() → preg_replace()
  • ereg() → preg_match()
  • eregi_replace() → preg_replace()
  • eregi() → preg_match()
  • split() → preg_split()
  • spliti() → preg_split()
  • sql_regcase() → No equivalent

PHP split() 替代方案

  • 需要 regex 的 split, 可用 preg_split() 代替
  • 不需要 regex, 只要要快速分割固定的字串, 可用 explode() 代替. (速度會比需要 regex 的快很多)

20130313

php 5.3.x 連ms sql server

php在5.3以後不支援mssql extension了,但還好微軟有提供sqlsrv套件來支援,

請依照下面步驟來配置:或參考微軟官方網頁

1.先確認自己的系統是否為以下其中之一:
Windows Server 2003 Service Pack 1
Windows XP Service Pack 3
Windows Vista Service Pack 1 or later
Windows Server 2008
Windows Server 2008 R2
Windows 7

2.下載sqlsrv套件:下載SQLSRV20.EXE,若是WIN7則下載SQLSRV30.EXE
下載後解壓縮可以看到許多dll檔案,這時請打開您的phpinfo頁面,查看
Zend Extension Build,我的編制為:API220090626,TS,VC9,故請將壓縮後的dll檔,其後面有ts_vc9的檔案附至到php預設的ext資料夾裡,並且配置php.ini:
extension=php_sqlsrv_53_ts_vc9.dll
extension=php_pdo_sqlsrv_53_ts_vc9.dll 
3.下載Microsoft SQL Server 2008 R2 Native Client:XP用戶點選 Download the X86 package,更進階64為原則點選Download the X64 package

安裝完後重新啟動web server ,並且撰寫測試ms sql server 的程式碼:
 $DB_HOST1        = "";//IP   
 $DB_LOGIN1       = "";//uid
 $DB_PASSWORD1    = "";//pwd
 $DB_NAME1        = "";//db name

 $serverName = $DB_HOST1;
 $connectionInfo = array("UID"=>$DB_LOGIN1, "PWD"=>$DB_PASSWORD1, "Database"=>$DB_NAME1, "CharacterSet" => "UTF-8" );
 $conn = sqlsrv_connect( $serverName, $connectionInfo);

 $params = array();
 $options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
 $sqlstr = "select * from Account";
 $res = sqlsrv_query($conn,$sqlstr,$params,$options);
 $num = sqlsrv_num_rows($res);
 for($i=0;$i<$num;$i++)
 {
  $r = sqlsrv_fetch_array($res);
  echo $r[0].' '.$r[1].'
';
 }
?>
 順利列出資料表則大功告成唷!!

20130129

在Mac上寫Java



打開您的終端機吧 (應用程式->工具程式-> 終端機)

path已經幫您設好了(echo $PATH )

輸入
javac這就是java complier
java這就是執行java程式

系統已經內建J2SDK 1.4.2了
打開"文字編輯" (應用程式->文字編輯)

就可以開始coding了

在Mac上寫Java就是這麼簡單,連Download JDK都免了

20121125

shiva3D 塔防大戰 part6

設定遊戲中的HUD
新增HUD並與所用到之貼圖匯入且一同加入資源區
1.設定黃忠血條

 2.設定計分板
3.設定弓箭顯示畫面
4.新增過關殺敵數

5.新增鍵盤事件(鍵盤按下ESC鍵即跳離)

6.將HUD新增到場景界面
加入關卡設定
1.加入過關判斷,新增NextLevel函數,並以nL為參數。撰寫場景動態產生Hero及對應位置的程式。再把Hero模型加入GameEditor模型區



2.因已由第一步驟來動態新增Hero,故原本的Game_onEnter的場景設定及英雄須拿掉,並且撰寫關卡判斷設定


3.新增nKilled(0)變數來儲存殺敵數
4.新增處理Score、Blood、Arrow的函數
5.撰寫關卡判斷及殺敵判斷

6.離開遊戲時,要把HUD拿掉

你還在幫別人打造舒適圈?

 師不順路,不好為人師,談何容易.... 人總是在為自己的做法找"理由",找一個漂亮的包裝,找一個可以說服人的方式,找一個立足點....然而,這個為自己所做的一切,往往是一個自私的隱性表現,因為你要達到的就是"滿足"自己。 但要如何滿足自己...