|
Darkhero
|
 |
« 於: 2005-07-23 12:59 » |
|
這是我幫朋友寫的一份考題...目前寫了三分之一... 會考的內容有20~25題php, 20~25題MySQL... 面試考試的話,應該是列印出來考的.所以沒有電腦可以上網查資料... PHP部分的考試方向,有部分參考之前考的ZCE.各位可以參考看看(不過zend考的是英文拉..我這是中文) 目前這裡有15題 php 的.. PHP人員面試測驗
* + - PHP o + - 1.PHP是屬於下列哪一類型的語言 + 1.伺服器端網頁描述語言 + 2.瀏覽器描述語言 + 3.系統�{式語言 + 4.組合語言 o + - 2.PHP可搭配下列哪種網頁伺服器 + 1.IIS + 2.APACHE + 3.NetScape + 4.以上皆可 o + - 3.下列何者非PHP的用途 + 1.Server-Side Script + 2. Command line scripting + 3. Writing desktop applications + 4.以上皆是 o + - 4.PHP使用下列何關鍵字�]定全域變數 + 1.all + 2.total + 3.global + 4.get o + - 5.PHP的變數識別字元是? + 1.@ + 2.% + 3.& + 4.$ o + - 6.當取得Form Submit的資料後,PHP可從下列何者取得該變數 + 1.$_GET + 2.$_SERVER + 3.$_ENV + 4.$_COOKIE o + - 7.下列何者可以輸出日期 "2005-08-08 15:04" + 1.date('Ymd') + 2.date("y-m-d h:i") + 3.date("Y-m-d H:i") + 4.date("Y-m-d h:i") o 8.請寫出 date("Y-m-d h:i:s",mktime(13,12,11,12,10,2003)) o + - 9.PHP Code : <? echo count ("123") ?>執行結果為? + 1.123 + 2.0 + 3.false + 4.3 o + - 10.在PHP中,變數與變數連結所使用的運算元是? + 1. + + 2. . + 3. = + 4. ~ o + - 11. $str = "1234567890"; 請選出能取出789 的PHP Code + 1.substr($str,0,789); + 2.substr($str,7,3); + 3.substr($str,6); + 4.substr($str,6,3); o + - 12. 下列何者能中斷迴圈的執行 + 1.stop + 2.quit + 3.break + 4.exit o + - 13. 請看�{式碼 $result = array(10,20,30,40); list($a,$b,$c,$d) = $result; 則下列何者正確? + 1.$a+$b = 40; + 2. $b.$d = 1030; + 3. $a+$c = 30; + 4, $d.$a = 4010; o + - 14. 下列何者為 class 內的特殊保留變數 + 1.$this + 2.$object + 3.$classes + 4.$func o + - 15. $a = b; $b = 10; $c = $$a; echo $c; 請問 $c = ? + 1.a + 2.b + 3.10 + 4.false
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
kiang
|
 |
« 回覆文章 #1 於: 2005-07-23 23:34 » |
|
1 - 1 2 - 4 3 - 4 4 - 3 5 - 4 6 - 1 7 - 3 8 - 2003-12-10 1:12:11 9 - 4(好像沒有分號 :roll: ) 10 - 2 11 - 4 12 - 4 13 - 4 14 - 1 15 - 3(好像少了引號 :roll: )
|
|
|
|
|
已記錄
|
**************************************************** Finjon Kiang / 江明宗 Just This Computer Studio / 就這間電腦工作室 Website: http://olc.tw****************************************************
|
|
|
|
hoyo
|
 |
« 回覆文章 #2 於: 2005-07-24 00:30 » |
|
9 - 4(好像沒有分號 :roll: ) 此例不需要分號,分號的真正用途為何? 15 - 3(好像少了引號 :roll: ) 資料型態的差異,有 ' 或 " 和沒有的差異為何?
|
|
|
|
|
已記錄
|
|
|
|
|
kiang
|
 |
« 回覆文章 #3 於: 2005-07-24 01:25 » |
|
9. 在Windows環境下的實際執行結果為 1 ;一般程式句末會加上分號不是嗎? 15. 定義字串時不是應該有引號嗎? 上面給的答案只是憑第一印象,並沒有實際嘗試;其實之前在做ZCE的模擬試題也發現許多超乎預期的答案,可能是題目看錯,也可能是自己的誤解吧 
|
|
|
|
|
已記錄
|
**************************************************** Finjon Kiang / 江明宗 Just This Computer Studio / 就這間電腦工作室 Website: http://olc.tw****************************************************
|
|
|
|
Darkhero
|
 |
« 回覆文章 #4 於: 2005-07-24 02:13 » |
|
9 沒有放上答案..Q_Q.. 我的錯... 正確答案應該 echo 出 1 .. 因為...count 是算陣列..他不是在算字串長度...
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
耗呆
|
 |
« 回覆文章 #5 於: 2005-07-24 19:52 » |
|
[list=1] - 1
- 4
- 4
- 3
- 4
- 1
- 3
- 2003-12-10 13:12:11
- ?
- 2
- 4
- 3
- 4
- 1
- 3[/list:o]
|
|
|
|
|
已記錄
|
|
|
|
|
Darkhero
|
 |
« 回覆文章 #6 於: 2005-07-25 08:16 » |
|
訂正版~ PHP人員面試測驗
* + - PHP o + - 1.PHP是屬於下列哪一類型的語言 + 1.伺服器端網頁描述語言 + 2.瀏覽器描述語言 + 3.系統語言 + 4.組合語言 o + - 2.PHP可搭配下列哪種網頁伺服器 + 1.IIS + 2.APACHE + 3.NetScape + 4.以上皆可 o + - 3.下列何者非PHP的用途 + 1.Server-Side Script + 2. Command line scripting + 3. Writing desktop applications + 4.以上皆是 o + - 4.PHP使用下列何關鍵字�]定全域變數 + 1.all + 2.total + 3.global + 4.get o + - 5.PHP的變數識別字元是? + 1.@ + 2.% + 3.& + 4.$ o + - 6.當取得Form Submit的資料後,PHP可從下列何者取得該變數 + 1.$_GET + 2.$_SERVER + 3.$_ENV + 4.$_COOKIE o + - 7.下列何者可以輸出日期 "2005-08-08 15:04" + 1.date('Ymd') + 2.date("y-m-d h:i") + 3.date("Y-m-d H:i") + 4.date("Y-m-d h:i") o 8.請寫出 date("Y-m-d h:i:s",mktime(13,12,11,12,10,2003)) o + - 9.PHP Code : <? echo count ("123") ?>執行結果為? + 1.123 + 2.1 + 3.false + 4.3 o + - 10.在PHP中,變數與變數連結所使用的運算元是? + 1. + + 2. . + 3. = + 4. ~ o + - 11. $str = "1234567890"; 請選出能取出789 的PHP Code + 1.substr($str,0,789); + 2.substr($str,7,3); + 3.substr($str,6); + 4.substr($str,6,3); o + - 12. 下列何者能中斷迴圈的執行 + 1.stop + 2.quit + 3.break + 4.exit o + - 13. 請看 $result = array(10,20,30,40); list($a,$b,$c,$d) = $result; 則下列何者正確? + 1.$a+$b = 40; + 2. $b.$d = 1030; + 3. $a+$c = 30; + 4, $d.$a = 4010; o + - 14. 下列何者為 class 內的特殊保留變數 + 1.$this + 2.$object + 3.$classes + 4.$func o + - 15. $a = 'b'; $b = 10; $c = $$a; echo $c; 請問 $c = ? + 1.a + 2.b + 3.10 + 4.false
當自己再寫題目的時候..才發現題目並不是想像中那麼好出的... 忽然覺得以前老師出題很厲害...
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
abelyang
|
 |
« 回覆文章 #7 於: 2005-07-25 09:51 » |
|
可以加一些 HTTP 或 web server 的東西 可以當成 Extra , 不會沒關係,會可以加分
12 題中的 3,4 都可以, 可能需要避免疑義
|
|
|
|
|
已記錄
|
|
|
|
|
Darkhero
|
 |
« 回覆文章 #8 於: 2005-08-01 12:31 » |
|
訂正版加上後面10題.
+ - 1.PHP是屬於下列哪一類型的語言 o 1.伺服器端網頁描述語言 o 2.瀏覽器描述語言 o 3.系統程式語言 o 4.組合語言
+ - 2.PHP可搭配下列哪種網頁伺服器 o 1.IIS o 2.APACHE o 3.NetScape o 4.以上皆可
+ - 3.下列何者非PHP的用途 o 1.Server-Side Script o 2. Command line scripting o 3. Writing desktop applications o 4.以上皆是
+ - 4.PHP使用下列何關鍵字設定全域變數 o 1.all o 2.total o 3.global o 4.get
+ - 5.PHP的變數識別字元是? o 1.@ o 2.% o 3.& o 4.$
+ - 6.當取得Form Submit的資料後,PHP可從下列何者取得該變數 o 1.$_GET o 2.$_SERVER o 3.$_ENV o 4.$_COOKIE
+ - 7.下列何者可以輸出日期 "2005-08-08 15:04" o 1.date('Ymd') o 2.date("y-m-d h:i") o 3.date("Y-m-d H:i") o 4.date("Y-m-d h:i")
8.請寫出 date("Y-m-d h:i:s",mktime(10,11,12,12,10,2003))
+ - 9.程式碼<? echo count ("123") ?>執行結果為? o 1.123 o 2.0 o 3.1 o 4.3
+ - 10.在PHP中,變數與變數連結所使用的運算元是? o 1. + o 2. . o 3. = o 4. ~
+ - 11. $str = "1234567890"; 請選出能取出789 的程式碼 o 1.substr($str,0,789); o 2.substr($str,7,3); o 3.substr($str,6); o 4.substr($str,6,3);
+ - 12. 下列何者能中斷迴圈的執行,但不終止程式的執行. o 1.stop o 2.quit o 3.break o 4.exit
+ - 13. 請看程式碼 $result = array(10,20,30,40); list($a,$b,$c,$d) = $result; 則下列何者正確? o 1.$a+$b = 40; o 2. $b.$d = 1030; o 3. $a+$c = 30; o 4, $d.$a = 4010;
+ - 14. 下列何者為 class 內的特殊保留變數 o 1.$this o 2.$object o 3.$classes o 4.$func
+ - 15. $a = b; $b = 10; $c = $$a; echo $c; 請問 $c = ? o 1.a o 2.b o 3.10 o 4.false
+ - 16. 請問下面錯誤訊息的涵義 Parse error: parse error, unexpected T_VARIABLE in /home/test/test.php on line 30
+ - 17.請問指令 set_time_limit 的作用是? o 1.設定時間 o 2.設定程式執行時間 o 3.設定程式最大可執行時間 o 4.設定程式在什麼時間執行
+ - 18.當你有一個 php module 的時候,可用下列何種方式載入 o 1.修改php.ini ,使用 extension 語法 o 2.在程式中使用 dl() o 3.以上皆可 o 4.以上皆非
+ - 19.有一個Html 的 Form 如下. <form method="post"> <input type="text" name="name[]"><br> <input type="text" name="name[]"><br> <input type="text" name="name[]"><br> <input type="text" name="name[]"><br> <input type="Submit" name="Submit"> </form> 請問送出的資料需要以何種方式提取,且,資料型態為何? o 1.$_GET['name'],陣列 o 2.$_POST['name'],物件 o 3.$_POST['name'],陣列 o 4.$_GET['name'],物件
20.請看程式碼 <? $a = 1; $b = "abcd'; for($i = 0 ; $i < 10 ;$i++){ $a++; $b .= $a; ) ?> 請指出錯誤地方,且修正.
+ - 21.承上題,最後輸出的 $b 是什麼? o 1.abcd o 2.12345678910 o 3.abcd12345678910 o 4.abcd234567891011 o 5.以上皆非
+ - 22.以下為一個以CSV存檔的客戶資料 18,王小名,abcd@123.com 請問可用下列哪一個指令將資料分割存入陣列 o 1.implode o 2.explode o 3.substr o 以上皆非
+ - 23.小陳寫好了一段程式,但是執行的時候出現了下面的錯誤訊息. Call to undefined function mysql_connect() 請問他該怎麼辦? o 這是問答題.
+ - 24.PHP在4.3.0以後,預設將 register_globals = Off . 請問主要的用意為何? 為何不建議將 register_globals = On 呢? o 這也是問答題.
25.請簡單解釋下列程式碼之用途
$fp = file("userlist.csv"); foreach($fp as $val){ $user[] = explode(",",$val); }
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
ricky
|
 |
« 回覆文章 #9 於: 2005-08-01 13:35 » |
|
我也來PO一下解答吧 有錯請指正 + - 1.PHP是屬於下列哪一類型的語言 o 1.伺服器端網頁描述語言 o 2.瀏覽器描述語言 o 3.系統程式語言 o 4.組合語言 1.伺服器端網頁描述語言 + - 2.PHP可搭配下列哪種網頁伺服器 o 1.IIS o 2.APACHE o 3.NetScape o 4.以上皆可 4.以上皆可 + - 3.下列何者非PHP的用途 o 1.Server-Side Script o 2. Command line scripting o 3. Writing desktop applications o 4.以上皆是 4.以上皆是 + - 4.PHP使用下列何關鍵字設定全域變數 o 1.all o 2.total o 3.global o 4.get 3.global + - 5.PHP的變數識別字元是? o 1.@ o 2.% o 3.& o 4.$ 4.$ + - 6.當取得Form Submit的資料後,PHP可從下列何者取得該變數 o 1.$_GET o 2.$_SERVER o 3.$_ENV o 4.$_COOKIE 1.$_GET + - 7.下列何者可以輸出日期 "2005-08-08 15:04" o 1.date('Ymd') o 2.date("y-m-d h:i") o 3.date("Y-m-d H:i") o 4.date("Y-m-d h:i") 3.date("Y-m-d H:i") 8.請寫出 date("Y-m-d h:i:s",mktime(10,11,12,12,10,2003)) 2003-12-10 10:11:12 + - 9.程式碼<? echo count ("123") ?>執行結果為? o 1.123 o 2.0 o 3.1 o 4.3 3.1 + - 10.在PHP中,變數與變數連結所使用的運算元是? o 1. + o 2. . o 3. = o 4. ~ 2. . + - 11. $str = "1234567890"; 請選出能取出789 的程式碼 o 1.substr($str,0,789); o 2.substr($str,7,3); o 3.substr($str,6); o 4.substr($str,6,3); 4.substr($str,6,3); + - 12. 下列何者能中斷迴圈的執行,但不終止程式的執行. o 1.stop o 2.quit o 3.break o 4.exit 3.break + - 13. 請看程式碼 $result = array(10,20,30,40); list($a,$b,$c,$d) = $result; 則下列何者正確? o 1.$a+$b = 40; o 2. $b.$d = 1030; o 3. $a+$c = 30; o 4, $d.$a = 4010; 4, $d.$a = 4010; + - 14. 下列何者為 class 內的特殊保留變數 o 1.$this o 2.$object o 3.$classes o 4.$func 1.$this + - 15. $a = b; $b = 10; $c = $$a; echo $c; 請問 $c = ? o 1.a o 2.b o 3.10 o 4.false 3.10 + - 16. 請問下面錯誤訊息的涵義 Parse error: parse error, unexpected T_VARIABLE in /home/test/test.php on line 30 在test.php第30行的地方語法錯誤嘍!! + - 17.請問指令 set_time_limit 的作用是? o 1.設定時間 o 2.設定程式執行時間 o 3.設定程式最大可執行時間 o 4.設定程式在什麼時間執行 3.設定程式最大可執行時間 + - 18.當你有一個 php module 的時候,可用下列何種方式載入 o 1.修改php.ini ,使用 extension 語法 o 2.在程式中使用 dl() o 3.以上皆可 o 4.以上皆非 3.以上皆可PS:這邊補充一下dl不是所有的地方都可使用 在thread模式下的web server就不支援了 例如apache編譯成worker模式就不能使用dl這個方式載入 + - 19.有一個Html 的 Form 如下. <form method="post"> <input type="text" name="name[]"><br> <input type="text" name="name[]"><br> <input type="text" name="name[]"><br> <input type="text" name="name[]"><br> <input type="Submit" name="Submit"> </form> 請問送出的資料需要以何種方式提取,且,資料型態為何? o 1.$_GET['name'],陣列 o 2.$_POST['name'],物件 o 3.$_POST['name'],陣列 o 4.$_GET['name'],物件 3.$_POST['name'],陣列 20.請看程式碼 <? $a = 1; $b = "abcd';=> $b = "abcd"; for($i = 0 ; $i < 10 ;$i++){ $a++; $b .= $a; ) ?> 請指出錯誤地方,且修正. + - 21.承上題,最後輸出的 $b 是什麼? o 1.abcd o 2.12345678910 o 3.abcd12345678910 o 4.abcd234567891011 o 5.以上皆非 4.abcd234567891011 + - 22.以下為一個以CSV存檔的客戶資料 18,王小名,abcd@123.com 請問可用下列哪一個指令將資料分割存入陣列 o 1.implode o 2.explode o 3.substr o 以上皆非 2.explodePS:使用方法為 $RawData="18,王小名,abcd@123.com"; $ArrayData=explode("'",$RawData); + - 23.小陳寫好了一段程式,但是執行的時候出現了下面的錯誤訊息. Call to undefined function mysql_connect() 請問他該怎麼辦? o 這是問答題. 這個原因是php沒有將mysql模組編譯進去 請重新編譯php並且將mysql模組加入 + - 24.PHP在4.3.0以後,預設將 register_globals = Off . 請問主要的用意為何? 為何不建議將 register_globals = On 呢? o 這也是問答題. 將POST,COOKIE,GET,SESSION傳來的變數資料 放入各自專屬的array中 $_POST,$_COOKIE,$_GET,$_SESSION 將register_globals = On將會導致這些類型的變數跟global變數混淆 導致系統安全因素 詳情請看 http://www.php.net/manual/en/security.globals.php 25.請簡單解釋下列程式碼之用途 $fp = file("userlist.csv"); foreach($fp as $val){ $user[] = explode(",",$val); } 將"userlist.csv"的內容讀出每一行放入array $fp中 使用foreach 讀入$fp這個array 使用explode將每一行的資料以","做區隔讀入$user這個array中
|
|
|
|
|
已記錄
|
|
|
|
|
httang
|
 |
« 回覆文章 #10 於: 2005-08-01 20:51 » |
|
+ - 3.下列何者非PHP的用途 o 1.Server-Side Script o 2. Command line scripting o 3. Writing desktop applications o 4.以上皆是
我想提出中文語意上可能產生誤解的問題,如果改成 下列何者是php的用途?也是以上皆是耶@@..中文果然夠圓滑,怎麼解釋都通XD 感謝分享^_^
|
|
|
|
|
已記錄
|
....
|
|
|
|
螢火飛
|
 |
« 回覆文章 #11 於: 2005-08-01 22:44 » |
|
啊!我也出一題考大家,這題是小弟專門考新人的寫作技巧,順便考邏輯。
試寫一程式,輸入阿拉伯數字,轉換成中文大寫輸出,最大位數為 9 位數,不必考慮小數點。
例一:輸入 『354』,則輸出為『參佰伍拾肆』 例二:輸入 『20964』,則輸出為『貳萬零玖佰陸拾肆』
|
|
|
|
|
已記錄
|
|
|
|
|
kiang
|
 |
« 回覆文章 #12 於: 2005-08-02 00:58 » |
|
原來不只我在玩,下面是寫一半的程式;後來想想有很多需要思考的邏輯... 1000010 = 壹百萬零一拾 這個數字就可以讓人想很久了...看來要通過面試的人可能不多...我先睡覺去了...... <?php if(!is_null($_POST['key']) && ($len = strlen($_POST['key'])) <= 9 && is_numeric($_POST['key'])) { $ano = array('零', '壹', '貳', '參', '肆', '伍', '陸', '柒', '捌', '玖'); $bno = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); $cno = array('拾', '佰', '仟', '萬', '億'); $len = strlen($_POST['key']); for($i=$len; $i >= 0; $i--) { switch($i % 4) { case 0: break; case 1: break; case 2: break; case 3: break; } } echo str_replace($bno, $ano, $_POST['key']); } ?><p> <form method="post"> <input type="text" name="key"> <input type="submit"> </form>
|
|
|
|
|
已記錄
|
**************************************************** Finjon Kiang / 江明宗 Just This Computer Studio / 就這間電腦工作室 Website: http://olc.tw****************************************************
|
|
|
|
梁楓
|
 |
« 回覆文章 #13 於: 2005-08-02 00:58 » |
|
<? // 給予位數的定義(前面二個空的是配合數字的習慣) $num_chinese[0] = array('','','拾','佰','仟','萬','拾','佰','仟','億','拾','佰'); // 給予中文數字 $num_chinese[1] = array('零','壹','貳','參','肆','伍','陸','柒','捌','玖'); // 要顯示的阿拉伯數字 $_GET['num'] = 12345678901; // 取得數字的長度 $num_qu = strlen($_GET['num']); // 如果大於能計算的範圍( if ($num_qu <= count($num_chinese[0])-1){ if( $i2 = $num_qu % $num_chinese[0] == 0 ) $i2=$num_qu; for ($i = 0 ; $i <= $num_qu -1; $i++ ) { $num = substr($_GET['num'],$i,1); echo $num_chinese[1][$num],$num_chinese[0][$i2 - $i]; } } ?>
唉...覺得一點都不簡單... 我一定是新手...
|
|
|
|
|
已記錄
|
|
|
|
|
Darkhero
|
 |
« 回覆文章 #14 於: 2005-08-02 01:27 » |
|
我也來亂寫.. function num2cnum($num){ $cnum = array( "1" => "壹", "2" => "貳", "3" => "參", "4" => "肆", "5" => "伍", "6" => "陸", "7" => "柒", "8" => "捌", "9" => "玖", "0" => "零" );
$cnum2 = array( "1" => "", "2" => "拾", "3" => "佰", "4" => "仟", "5" => "萬", "6" => "拾", "7" => "佰", "8" => "仟", "9" => "億", "10" => "拾" );
$len = strlen($num); for($i = 0;$i < $len;$i++){ $x = substr($num,$i,1); if($x != 0 and $l == 0){ $retStr .= $cnum[$l]; $retStr .= $cnum[$x]; }else if($x != 0){ $retStr .= $cnum[$x]; } if($x != 0 or ($len - $i) == 5 or ($len - $i) == 9){ if(substr($num,$i-3,4) != "0000" or $i < 3){ $retStr .= $cnum2[$len - $i]; } } $l = $x; } return $retStr; }
echo num2cnum("354")."\n"; echo num2cnum("20964")."\n"; echo num2cnum("100000010")."\n";
糟糕..好像我寫的程式碼最長了.Q_Q.
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
Darkhero
|
 |
« 回覆文章 #15 於: 2005-08-02 01:39 » |
|
再次修正... function num2cnum($num){ $cnum = array( "1" => "壹", "2" => "貳", "3" => "參", "4" => "肆", "5" => "伍", "6" => "陸", "7" => "柒", "8" => "捌", "9" => "玖", "0" => "零" );
$cnum2 = array( "1" => "", "2" => "拾", "3" => "佰", "4" => "仟", "5" => "萬", "6" => "拾", "7" => "佰", "8" => "仟", "9" => "億", "10" => "拾" );
$len = strlen($num); for($i = 0;$i < $len;$i++){ $x = substr($num,$i,1); if($x != 0 and $l == 0){ $retStr .= $cnum[$l]; $retStr .= $cnum[$x]; }else if($x != 0){ $retStr .= $cnum[$x]; } if($x != 0 or ($len - $i) == 5 or ($len - $i) == 9){ if(substr($num,$i-3,4) != "0000" or $i < 3){ $retStr .= $cnum2[$len - $i]; $x = 1; } } $l = $x; } return $retStr; }
echo num2cnum("354")."\n"; echo num2cnum("20964")."\n"; echo num2cnum("101001010")."\n";
沒修正前 101001010 輸出 壹億零壹佰萬零壹仟零壹拾 這樣子修正後 101001010 輸出 壹億零壹佰萬壹仟零壹拾 也可以正確輸出 壹佰萬,壹億
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
Darkhero
|
 |
« 回覆文章 #16 於: 2005-08-02 01:55 » |
|
+ - 3.下列何者非PHP的用途 o 1.Server-Side Script o 2. Command line scripting o 3. Writing desktop applications o 4.以上皆是
我想提出中文語意上可能產生誤解的問題,如果改成 下列何者是php的用途?也是以上皆是耶@@..中文果然夠圓滑,怎麼解釋都通XD 感謝分享^_^ 的確是....題目問法有需要修改一下... 感謝提醒~..
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
ricky
|
 |
« 回覆文章 #17 於: 2005-08-02 10:37 » |
|
我也來po一下吧 能處理的位數應該是夠了 ('萬','億','兆','京','垓' .... 再接下去我也不知道要叫啥了) <?php /* 中文數字念法是以10000為一個進位 所以這邊把他拆成三個部份來顯示 */ $val="23230002334567001"; $num=array('零','壹','貳','參','肆','伍','陸','柒','捌','玖'); $digit=array('','拾','佰','仟'); $mdigit=array('','萬','億','兆','京','垓'); echo $val."\n"; //這邊我們先擷取出數字有幾個一萬的單位 //以上面$val來說2 3230 0023 3456 7001 //所以有5個單位 for($i=0;$i<=floor(strlen($val)/4);$i++) { //$i=0時表示第一組 //最前面的部份會有不足位數得特別獨立處理 //我們用了一個$StrIndex用來標記我們取位取到第幾組 if($i==0) { //這邊取出前頭的4位如果不足4位則取出最前面的部份 //把取出的部份放入$tmpval中 $tmpval=strlen($val)%4?substr($val,$StrIndex,strlen($val)%4):substr($val,$StrIndex,4); $StrIndex+=strlen($val)%4?strlen($val)%4:4; } else { $tmpval=substr($val,$StrIndex,4); $StrIndex+=4; } $OutString=''; //這邊我們用了一個特殊技巧把字串反轉 //為什麼這麼做呢 //是這樣的 //以123來說好了 //我們要輸出成壹佰貳拾叁 //如果從前面取過來時我們得先判定這串數字是否足4位 //然後在決定輸出 這樣會造成式邏輯上判斷的複雜性 //所以我們從後面來當遇到文字結尾就知道結束嘍 //不要再繼續 //整個分析就變成 //3 2 1 => 3->叁 2->貳拾 1->壹佰 //然後再接回來就變成了壹佰貳拾叁 $tmpval=strrev($tmpval); //反轉字串 for($j=0;$j<strlen($tmpval);$j++) { $currentdigits=substr($tmpval,$j,1); //取出每一位的數字 //如果數字為0就不輸出後面接的位數例如零佰就不輸出佰只輸出零 if($currentdigits=='0') { //如果輸出為零可是前一個 //例如貳仟零佰零壹就會輸出成->貳仟零壹 if((substr($OutString,0,2)!='零')&&($j!=0)) $OutString=$num[$currentdigits].$OutString; } else $OutString=$num[$currentdigits].$digit[$j].$OutString; } echo $OutString.$mdigit[floor(strlen($val)/4)-$i]."\n"; } ?>
輸出 23230002334567001 貳京 參仟貳佰參拾兆 零貳拾參億 參仟肆佰伍拾陸萬 柒仟零壹
|
|
|
|
|
已記錄
|
|
|
|
|
梁楓
|
 |
« 回覆文章 #18 於: 2005-08-02 11:45 » |
|
Darkhero 你不及格 因為你沒寫註解...
-- 快跑...不然我會被打... ccc
|
|
|
|
|
已記錄
|
|
|
|
|
ricky
|
 |
« 回覆文章 #19 於: 2005-08-02 13:00 » |
|
疑... 我好像也沒寫註解耶 趕快來加
|
|
|
|
|
已記錄
|
|
|
|
|
Darkhero
|
 |
« 回覆文章 #20 於: 2005-08-02 15:25 » |
|
Darkhero 你不及格 因為你沒寫註解...
-- 快跑...不然我會被打... ccc XD... 我錯了... 我沒寫註解.... 跑~?..阿基你怎麼跑都躲不起來吧...
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
螢火飛
|
 |
« 回覆文章 #21 於: 2005-08-02 15:37 » |
|
哇咧!大家都好厲害 我十年前作這個題目時,傻眼了好久,花了三天才寫出來。 其實這個題目,雖然是用來考新進人員的,但小弟並不要求一定要完全正確啦!只要觀念對就過關。
|
|
|
|
|
已記錄
|
|
|
|
|
梁楓
|
 |
« 回覆文章 #22 於: 2005-08-02 15:49 » |
|
我大約花了半小時...
# 這個題目絕對不是新手題... 我差一點做不出來... 而且還有很多地方沒做好 ><~
|
|
|
|
|
已記錄
|
|
|
|
|
螢火飛
|
 |
« 回覆文章 #23 於: 2005-08-02 21:24 » |
|
我大約花了半小時...
# 這個題目絕對不是新手題... 我差一點做不出來... 而且還有很多地方沒做好 ><~ 梁兄啊 :-) 小弟從頭到尾也沒說是新「手」題,小弟是說新「人(新進人員)」題。 要我現在寫,也沒把握一定完全正確,嘻嘻。 這道題目是有來由的喔!小弟以前在某家金融機構的時候, 由於需要列印電腦支票,奉命寫這個程式,那時是用COBOL(還有人記得COBOL嗎), 結果,電腦支票被小弟浪費了 N 張,被罵到臭頭咧! 因為印錯的電腦票每一張都要申報作廢,哈哈 :-p
|
|
|
|
|
已記錄
|
|
|
|
dragon200e
可愛的小學生

文章: 20
|
 |
« 回覆文章 #24 於: 2005-08-04 21:35 » |
|
15 題的題目其實會有一個警告訊息產生... 找不到 b 這個常數... 但是 $c 的值卻會是 10 沒有錯... 我在想... 認證考試會不會也出這種題目來擾亂視聽... ^^"
ps: zend PHP 認證降為 $125 了喔... 到八月底...
|
|
|
|
|
已記錄
|
|
|
|
|
ricky
|
 |
« 回覆文章 #25 於: 2005-08-04 22:23 » |
|
php對常數的處理原則是這樣 例如 $a=abcd; 如果abcd這個常數存在 就會套用abcd這個常數 如果不存在 那就直接將abcd當成是一串文字 套用給$a
|
|
|
|
|
已記錄
|
|
|
|
|
Darkhero
|
 |
« 回覆文章 #26 於: 2005-08-04 23:25 » |
|
嗯... PHP 對於變數的寬鬆.... 有時候是一種方便...但也很多時候是會造成混淆的...
當然..出題的話這就是一個很好的陷阱的出題方向...
|
|
|
|
|
已記錄
|
希望我們的討論是為了把問題解決,而不是爭論誰對誰錯. 『灌水才是重點,發文只是順便』 『我寧可讓不會釣魚的工程師餓死,也不想讓會餓死的工程師去攪沉公司....』
|
|
|
|
Higojump
|
 |
« 回覆文章 #27 於: 2005-08-12 17:07 » |
|
我寫了三天才寫出來 <?
$number="3434558021"; $arr=array("","拾","百","千"); $arr1=array("","萬","億","兆"); $arr2=array("","壹","貳","參","肆","伍","陸","柒","捌","玖");
$len=strlen($number); for($i=0;$i<$len;$i++) { //數字不是零,但前面的數字是零,顯示零 if($number[$i]!=0 && $number[($i-1>0)?$i-1:0]==0) { echo "<font color=brown>零</font>"; } //數字轉為文字 echo $arr2[$number[$i]]; $pos=$len-($i+1); //顯示拾百千的單位 if($pos%4!=0 && $number[$i]!=0) { echo "<font color=blue>".$arr[$pos%4]."</font>"; } //顯示萬億兆的單位 if($pos%4==0) { if(substr($number,($i-3>0)?$i-3:0,4)!="0000") { echo "<font color=red>".$arr1[$pos/4]."</font>"; echo "<br>"; } } }
|
|
|
|
|
已記錄
|
------------------------------ 大雄這一生中只愛過兩個男人 胖虎跟小夫 -------------------------------
|
|
|
|