PHP學習紀錄

towns對於寫程式是完全沒概念的 = =,不過還是得寫下來,以免忘記

1.查測php 環境資訊
使用網頁方式 <?php echo phpinfo(); ?>
使用指令方式 php -m <== 這個只會出現那些 modules
使用指令方式 php -i <== 1. 參數設定是否有改變,2. 目前使用的設定檔是那一個,3. so 檔路徑,4. 執行檔路徑,5. ini 檔路徑等等…。不過都是看到 cli 的資訊

php -S localhost:9000 <== 可以開啟本機 9000 port 以查看程式
php --ini <== 列出目前有哪些 ini 檔及其路徑
如 session.cookie_httponly = true 是否變 on
php -r '<?php echa((' <== 於指令模式下執行 php 語法,這是在測試 php_errors.log 是否會出現資料
執行檔位置 /usr/bin/
php -i |grep Path <== 查看 ini 檔存放位置
php -i |grep extension_dir <== 查看 so 檔存放位置
php -i |grep PATH <== 查看 執行檔存放位置
php -i |grep Configuration <== 查看 ini 檔存放位置及目前使用的 php.ini 檔


2.顯示時間 date、time
<?php echo(date("l g:i:s A")); ?>
例1:<? echo (date("Y年m月t日 H時i分s秒")); ?>。結果:2013年10月31日 17時41分03秒
例2:<? echo (time("U")); ?>。結果:1382520036,顯示了總秒數
例3:<? echo (date("Y-m-d H:i:s")); ?>。結果 2014-08-29 10:56:00
例4:<? echo (date("y-m-d h:i:s")); ?>。結果 14-08-29 10:56:00
排列方式、空格、使用變數,都會改變顯示方式
資料來源:anstd 大的文章
http://bbs.mychat.to/sindex.php?t57647.html

相關資料:zzjnet大的文章
http://zzjnet.blog.51cto.com/323001/63746


3.色碼 #RRGGBB #000000~ffffff,加入時要加" "


4.<P></P><table></table>中加入align標籤,<P></P>分斷功能及<table></table>自動分行功能會失效


5.<table></table>連用時,會自動將表格放下面


6.編輯器斷行問題
通常在html語法中,只有使用<P></P>或<BR>,在瀏灠器上會顯示斷行,但事實上,如果在編輯器中有使用enter換行,文字間仍會出現有一個空格的差距


7. php.ini參數
upload_max_filesize <== 這個是最大檔案上傳大小
max_execution_time <== 單一程式最高執行時間
max_input_time <== 資料讀入時間
memory_limit <== 記憶體大小不能超過實體記憶體為主
post_max_size <== post傳值最大量。該設定值也會限制檔案上傳大小
file_uploads <== 是否允許檔案上傳,預設為 On
upload_tmp_dir <== 檔案暫存路徑(建議為預設)
date.timezone =

相關資料:http://tw.myblog.yahoo.com/jw!_DQlSnqYERQl8yut.QueSg--/article?mid=1213&prev=1215&next=1207


8. php5抓取資料庫語法,並使用UTF8編碼
      $mysql_server="localhost";
      $mysql_user="abcd";
      $mysql_password="abcd";
      $link=mysql_connect($mysql_server,$mysql_user,$mysql_password) or die('Could not connect: ' .         mysql_error());
      $db_name="abcd";
      mysql_db_query($db_name,"SET NAMES 'utf8'",$link) or die('Could not mysql_db_query');
      mysql_select_db($db_name,$link) or die('Could not mysql_select_db');


9. php5網站強制使用UTF8編碼語法
     header("Content-Type: text/html;charset=UTF-8");


10. 讓程式可以直接以傳送的參數做為接收變數
while (list($var, $value) = each($_GET))
{
  $$var = $value;
}

while (list($var, $value) = each($_POST))
{
  $$var = $value;
}


11. 標示為註解
 html    <!--  -->
 php     區塊 /* */,單行 //


12. 利用switch參數轉址
<?php
switch ($_SERVER["HTTP_HOST"]) {
    case "aa.com.tw":
        header("Location: http://www.aa.com.tw/");
        break;
    case "bb.com.tw":
        header("Location: http://www.bb.com.tw/");
        break;
}
?>
資料來源:Blues


13. php程式除錯
ini_set('display_errors', '1');  <==在讀取php程式時,將php.ini中display_error = Off 的設定改為 On
error_reporting(E_ALL); <==在讀取php程式時,將php.ini中error_reporting 的設定改為 E_ALL

echo 'abc'; <==顯示abc
die(); <==讓程式在此中斷
資料來源:小灰


14. 傳值
<form action="output.php" method="post" name="from1" ></form>
當表單置於<form ></form>中,就表示要針對表單內容做傳值的動作
action="output.php" <==表示將表單中的值,送到output.php這支程式
method="post" <==使用post方式,送資料到output.php這支程式
name="form1" <==這個表格的名稱

 1. 畫表格(使用dreamwave、kompozer等等)
 2. 傳值到檔案(action = "**")
 3. 值處理,如何送入檔案、將值分開並寫入指定檔案
  3.1. 使用變數取值。變數取值與表單名稱(name)、送值方式(method)設定有關,並使用str_replace,在各值中插入指定分隔符號
  3.2. 利用變數合併變數。設定另一變數,並使用 . 合併指定變數
  3.3. 使用fopen方式,開啟指定檔案 
  3.4. 使用fput方式,將資料寫入檔案(檔案要有寫入權限)
 4. 取值,並送入指定欄位
 5. 值處理,如何將值送入資料庫


15. 關於使用程式產生樣版的問題
當我們要使用程式來產生樣版檔時,需要將該資料匣權限改為777,這時產生的檔案擁有者就會是apache,並具有寫入權限644。
這個也與apache中預設的帳號有關,apache的設定檔中,預設是使用apache這個帳號來產一檔案,當我們使用php寫程式,並提供使用者可以互動式的產生檔案時,透過apache產生檔案,檔案的擁有者及群組就是apache,所以必需提供apache可以寫入的權限。
也可以將該資料匣群組改為apache,這樣資料匣權限可改為754,比較安全。


16. php.ini中的參數 short_open_tag
是否能使用<? ?>這種簡單的標識格式,當設定為Off時只有<?php ?>這種標識能被識,請記得打開
short_open_tag = On


17. 關於php發信語法
$mail->setSMTPParams('mail.domain.com', 25, true, 'user', 'pass');
資料來源:http://stackoverflow.com/questions/371392/using-html-mime-mail-for-php-to-send-email-but-need-to-authenticate-through-exc


18. echo 指令使用
echo $? <== 顯示前一個指令的回傳值。指令正確,回傳為0,指令錯誤回傳會有數字
資料來源:鳥哥的Linux私房菜  認識與學習 BASH


19. read 指令使用
read指令,是一個會互動的指令,等待使用者輸入
read [變數] ==> 等待使用者輸入變數內容
read -p [說明文字] -t [時間(秒)] [變數]  ==> 跳出說明文字,並等待30秒,等使用者輸入
例:read -p "What is your name?" -t 30 name
資料來源:鳥哥的Linux私房菜 認識與學習 BASH


20. declare 指令使用
宣告變數類形的指令
declare -i [變數] <== 定義變數為整數數值
例:declare -i sum=10+20+30
echo $sum的結果為 60

declare -a [變數] <== 定義變數為陣列
資料來源:鳥哥的Linux私房菜 認識與學習 BASH


21. php指令
php -v <== 顯示版本
php -m <== 查測php 環境資訊
php -i <== 顯示所有資訊


22. 將值寫入資料庫的PHP語法
方法一:
$sql = "INSERT INTO `basic_data` (`guestname`, `address`, `tel`, `cell`, `email`, `level`) VALUES ('$guestname', '$address', '$tel', '$cell', '$email', '$level');";

方法二:
$sql = "insert into `basic_data` SET `guestname` = '$guestname', `address` = '$address', `tel` = '$tel', `email` = '$email'";

註1:方法一為舊寫法,當使用變數名時,如果沒有將 register_globals = Off設為On,直接使用變數名將無法取得傳送來的變數
註2:改寫方式,只是這樣的寫法反而讓程式變的複雜
$sql = "INSERT INTO `basic_data` (`guestname`, `address`, `tel`, `cell`, `email`, `level`) VALUES ('".$_POST["guestname"]."','".$_POST["address"]."','".$_POST["tel"]."','".$_POST["cell"]."',
'".$_POST["email"]."','".$_POST["level"]."');


23. 搜尋資料庫
$Chksql = "SELECT * FROM admin_data where username = '$username'"; <==定義$Chksql變數為後面字串
$result = mysql_query($Chksql); <== 使用mysql_query方式將Chksql字串送入 SQL,並取得查詢資料
$row = mysql_fetch_row($result); <==  使用mysql_fetch_row陣列方式取出result的結果


24. 列出搜尋結果
        $sql = "SELECT * FROM guest_data";
        $result = mysql_query($sql);
        while($row = mysql_fetch_row($result))  

                { echo "序號:$row[0], 客戶姓名:$row[1], 地址:$row[2], 電話/傳真:$row[3],  手機:$row[4], Email:$row[5], 評等:$row[6]<br>"; }  <== 這一段中,row[0],代表回傳陣列中的第一欄位值


25. html語法中,一個空格是有用的,但如果要多個空格,必需打入&nbsp;


26. isset()、empty()、is_null(),檢查變數是否設置,依布林值回應
相關資料:謝晒大的blog
http://seanphpbook.blogspot.tw/2009/10/php-empty-isset-php.html


27. 邏輯運算子 and(&)、or(||)、xor、! 與 算術運算子 +、-、*、/、%
在未學程式前,對於 and及+這兩個運算子,一直以為是相同的,直到現在才知道他們的不同
例: 4 & 5 = 4 ==> 必需使用二進位來看 100 & 101 = 100(4),and代表兩者為真時為1,一真一假時就為0
例: 4 + 5 = 9 ==> 單純的運算
and ==> 兩者為真時為1、一真一假、兩假時為0
or ==> 任一或兩真時為1
xor ==> 任一個且只有一個為真時為1


28. 真假值(布林值;Boolean)
數字:0 假值,非0數字 真值
字串:空字串 假值,有字 真值


29. 指派運算子(=)與比較判斷的等於運算子(==)
例:$a = mon  ==> 這是在說 $a 為 mon,這個是在宣告 $a = mon
例:$a == mon  ==> 這是說 $a 等於 mon,這個值會與程式送來的變數有關


30. 關於list()函數說明

list 函數可同時管理多個 陣列(array)中多個變量(變數),每一個變量用“,”分開,如果不顯示某變量,可以用空白表示,如(abc, ,)

資料來源:
stockwfj3大的Blog
http://stockwfj3.pixnet.net/blog/post/60079105-%5Bphp%5Dlist-%E2%80%94-%E6%8A%8A%E9%99%A3%E5%88%97%E4%B8%AD%E7%9A%84%E5%80%BC%E8%B3%A6%E7%B5%A6%E4%B8%80%E4%BA%9B%E8%AE%8A%E9%87%8F


31. get及post傳值的差異
get傳值,會將傳出的值,寫在在網址列後面,安全性低
post傳值,會隱藏傳出的值,不會出現在網址列後面,安全性高

資料來源:
muta大的blog
http://muta1021.wordpress.com/2011/03/12/php-post%E8%88%87get-%E5%82%B3%E9%81%9E%E8%AE%8A%E6%95%B8/


32. 傳值與顯示傳來的值

<form action="response.php" method="post" name="form1">
<p>請輸入您的姓名:<input name="tbxname"></p>
<input name="submit1" type="submit" value="送出">
<input name="reset1" type="reset" value="清除">
</form>
html有一個輸入姓名的欄位,並將寫入的值傳給 response.php這支程式

response.php這支程式中有兩種方式可以顯示值
1. <? echo $_POST['tbxname'] ?> ==>顯示使用POST傳來的值

2.使用三元運子,先定義變數 $tbxname,再用echo 顯示
<? 
$tbxname=isset($_POST['tbxname'])?$_POST['tbxname']:NULL;
echo $tbxname;
?>

如果直接使用echo $tbxname,會出現 Undefined variable(變數未定義)的問題,主要是因為 register_globals = Off在4.2版本後,預設為off,這時就必需使用較嚴僅的陣列接值方式,才能正常接到post所傳來的值。這也是比較安全的方式

參考資料:Belleaya大的blog
http://belleaya.pixnet.net/blog/post/30538510-%5B%E6%95%99%E5%AD%B8%5D-php-%E5%82%B3%E5%80%BC%E8%AA%9E%E6%B3%95---post%E5%92%8Cget%E7%9A%84%E7%94%A8%E6%B3%95

補充:該參數自 PHP 5.3.0 起停用並自 PHP 5.4.0 起移除


33. 時區未設定時出現的警告
當程式中使用到 dare這個函式時,如果系統未設定時區,則會出現下列警告,且系統會自動自己選一個來用 ^^"
Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /***/***.php on line 23 

處理方式
 1. 設定伺服器PHP.ini中date.timezone = "Asia/Taipei" <== 全php設定
 2. 於程式中加入ini_set('date.timezone','Asia/Taipei'); <== 這是透過程式臨時修改PHP.ini的設定
 3. 於程式中加入date_default_timezone_set("Asia/Taipei") <== 這是PHP5.3的建議方式,towns選這個

資料來源:
羊小咩的blog
http://lamb-mei.com/138/php-%E6%99%82%E5%8D%80-timezone-%E8%A8%AD%E5%AE%9A/

Jax的blog
http://jax-work-archive.blogspot.tw/2009/07/php-datetimezone.html


34. 關於PHP function問題

PHP的Function功能,有些必需安裝特定套件才有這個功能,如mb_substr(),這個Function必需要安裝php-mbstring這個套件,才有這個功能


35. 秀出變數

towns很常需要知道送來的變數是否正確以便判斷程式哪裡錯了,所以常常得用到這樣的函數
print_r($_REQUEST); ==> 列出所有送至該程式的變數
print_r($_POST); ==> 列出表單post方式送來的變數
var_dump($_POST); ==> 列出表單post方式送來的變數,並顯示變數類型

資料來源:小舖討論
http://www.blueshop.com.tw/board/show.asp?subcde=BRD201312131657540JH&fumcde=BRD201312131657540JH


36. die 函數

這個 die 函數,可以用在所有函數的後方,多半都是 or or die("XXX" . mysql_error());,這麼做,可以知道在哪一個函數出現錯誤,並可以顯示資料庫產生的錯誤訊息

資料來源:小舖討論
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20131220161752RPV&fumcde=BRD20131220161752RPV


37. 關資PHP 5.3 以上的接值變化

towns覺得,在PHP 5.3以前的接變數值方式,簡單明瞭,當然,因為有危險性變為使用陣列接值方式,可以確保資料是由指定的程式送來的,不過,真的是落落長而且很麻煩。有些時候長一點真的是好事,但對towns而言,程式碼短才是好事

布林值接值:舊方式 isset($a),新方式 isset($_POST["a"])
一般接入變數:舊方式 echo $a,新方式 echo $_POST["a"]
PHP資料庫接值寫入寫法:
舊方式 $str = "INSERT INTO abc (a, b, c, d) VALUES ('$a', '$b', '$c', '$d')
新方式 $str = "INSERT INTO abc (a, b, c, d) VALUES ('".$_POST["a"]."', '".$_POST["b"]."', '".$_POST["c"]."', '".$_POST["d"]."')


38. 傳值方式

<a href='edit.php?id=".$row["id"]."'>
?後面就是變數名稱,而收值的程式必需使用GET來接收id這個變數

資料來源:豪哥口述


39. PHP顯示變數的簡寫

<?=$id?> == <? echo $id ?> == <?php echo $id>

問題:使用<?=這樣的方式,需經過PHP的轉換過程,當然效能就會下降,不過,只有在大量轉換時有差

資料來源:小灰口述


40. 關於mysql_fetch_array() 與 mysql_fetch_assoc() 與 mysql_fetch_row() 的差異
這三個都是在資料庫的資料取出後(mysql_query),將資料以陣列方式排列。array是可用欄位名及數字取值,assoc只能使用欄位名取值,row只能使用數字取值

資料來源:謝晒大的blog
http://seanphpbook.blogspot.tw/2010/05/php-mysqlfetcharray-mysqlfetchassoc.html


41.
行 ==>橫
列 ==>直


42. PHP運算子

參考資料:小殘大的blog
http://emn178.pixnet.net/blog/post/80980024-php%E6%95%99%E5%AD%B8---%E9%81%8B%E7%AE%97%E5%AD%90%28operators%29---%E4%B8%8A


43. 強制使用UTF-8
方法一:在PHP程式中加入 header('content-Type: text/html; charset=utf-8');
方法二:在該目錄中使用 .htaccess,並加入 AddDefaultCharset UTF-8 這一行

資料來源:
zmarkchang 大的blog
http://zfly9.blogspot.tw/2013/07/phpheaderutf8.html 


44. php.ini 設定檔中文說明

Matt大的blog
http://mic1491.pixnet.net/blog/post/30159855-php.ini%E8%A8%AD%E5%AE%9A%E6%AA%94%E4%B8%AD%E6%96%87%E8%AA%AA%E6%98%8E  


45. PHP 內建

在本目錄下開啟 PHP web server,這樣就不用架設如 apahe、nginx 等 web server,就可以使用browser 看看自己程式、網頁開發的情形

php -S localhost:9000

資料來源:
herb大口述


46. 開放 PHP 寫 log

在 php.ini 中找到 error_log = php_errors.log,將 ; 拿掉,並指定路徑即可

資料來源:
herb大口述


47. PHP 手動安裝元件檔方式(ubuntu)
1. 取得 so 檔(或自行編譯)
2. 將 so 檔放到預設路徑(/usr/lib/php/20151012/)
3. 建立 ini 檔
 0. /etc/php/7.0/mods-available/產生主要ini檔
 1. /etc/php/7.0/cli/conf.d/產生 link
 2. /etc/php/7.0/apache/conf.d/產生 link
補充1:如何找到 so 檔存放路徑。php -i |grep extension_dir  


48. PHP.ini 修改注意
在檢查 PHP 各項資訊時,常會使用兩個方式
使用網頁方式 <?php echo phpinfo(); ?>
使用指令方式 php -i
這個結果在 CentOS 下會是相同的,但在 Ubuntu 下是不同
因為 CentOS 下,只會有一個 php.ini 檔放在 /etc/ 下,但 Ubnutu 下,會有兩個 php.ini 檔,分別放於 /etc/[版本]/apache2 及 cli/ 中,兩個設定值不同,如果是要改網頁的部分,一定要改 apache2/php.ini

註:修改 apache2 下的 php.ini 必需要 reload,但修改 cli 下的 php.ini 是不需 reload


49. php info 顯示的資訊

資訊中會出現兩個值 Local Value 及 Master Value,這個分別表示本地端設定(通常是指 .htaccess 檔中的設定)及主要設定(是指 php.ini 的設定),而通當本地設定會蓋過主要設定,因為,他是最後的讀取資

參考資料:
stackorverflow 討論 -- Marc B 回應
https://stackoverflow.com/questions/19520744/what-is-the-difference-between-local-value-and-master-value


自問自答與紀錄
1. 在PHP的物件導向中,物件可以不宣告類別嗎?不行,沒有屬性,就不是一個物件
2. 在PHP的物件導向中,在類別中是否可以不宣告屬性?可以,如果有延用父屬性,則父屬性的屬性將會延續
3. 在PHP的物件導向中,在類別中是否可以不宣告方法?可以,如果有延用父屬性,則父屬性的方法將會延續
4. 在PHP的物件導向中,如果新的類別延用父屬性而本身沒有加入任何屬性及方法,這時就會完全等於父屬性(除了有標為private的變數或函數)
5. 在程式中,如果有中文字,最好使用雙引號 " " ,告訴程式為字串,比較不會有錯誤
6. 在PHP5的物件導向中,每一個類別只能有一個方法(function)嗎?不一定,可以有多個方法
7. 每一個子類別只能繼承一個父類別,如果要用繼承多個類別,必需使用界面類別(interface)
8. 每一個類別只能使用自身類別中的方法,如果同時要用兩個類別的方法,需使用抽象類別(abstract),抽象類別很像是合併多個類別的方法,所以抽象類別並沒有自己的方法,而只有其他子類別提供的方法而以
9. 在PHP5的物件導向中,使用物件的複製(clone),會跳脫傳參考(傳址)的預設值,取得一模一模的物件資料
10. 在PHP5的物件導向中,物件比較時,如果使用了clone,反而造成物件不完全相同?
11. 在PHP5的中,如果傳送的欄位資料中有value值,則程式收到的就是value值,如果沒有,則程式會收到name值(也就是欄位中輸入的值)
12. 在PHP5的中,取出傳入值$_POST[''],如果內含變數(陣列取值)時,必需使用$_POST["變數[$i]"]雙引號,這時在內的變數就會生效,但這時取得的i,是陣列索引
13. 選擇鈕(Radio)與核取方塊(check)的差別。
radio在設定多個選項時,只需使用一個name就可以辦到,但這也表示,所有的radio只傳出一個值,所以程式可以明確
的取得該值並秀出,當然,也可以設定為多個name,這時,每個值就由不同的name送出(1對1關係)
check本身是送出on與NULL,所以在設定多個選項時,每一個check都必需有一個name,如果同一個名子,就會只有一個為on,程式將無法判斷是由誰送出的值(多對多關係)
14. 設定陣列 變數名稱[索引](a$[0]="PHP";陣列第一筆資料是PHP),如無設定索引,PHP會自動由以0開始設定。
15. 使用陣列函數(array()),
16. current、next、reset,這三個內建函數是取陣列中的值。current(變數陣列名),會取陣列第一個值、next(變數陣列名),會取陣列下一個值,reset(變數陣列名),會回到第一個值,如果next後直接接current,會抓到next的值
17. key是取陣列索引,如果有給陣列索引,則會取索引名稱,且預設key取第一個陣列索引
18. 列出陣列值 var_dump(變數);
19. 如果要使用$_POST取出陣列值,必需將變數與陣列值分開,如 $_POST['lbxbook'][$i]或$_POST["lbxbook"]
[$i],如果這麼做 $_POST["lbxbook[$i]"],只能取得陣列的索引
20. 陣列會將表單送出值中的name視為索引、輸入值視為陣列值
21. 每一個表單所送來的資料,都被視為陣列值
22. PHP時區設定
 1. 設定伺服器PHP.ini中date.timezone = Asia/Taipei
 2. 於程式中加入ini_set('date.timezone','Asia/Taipei'); <== 這是透過程式臨時修改PHP.ini的設定
 3. 於程式中加入date_default_timezone_set("Asia/Taipei") <== 這是PHP5.3的建議方式
23. 三元運算子,條件式?如果成立:如果不成立,其中條件式指的是變數宣告並使用布林值(bool)確認是否存在,如$abc=isset($_POST['abc']),這樣的方式就是在處理由表單(form)傳來的值(abc)是否存在,存在則視為$abc,不存在就是 0
 例:$abc=isset($_POST['abc'])?$_POST['abc']:NULL;
24. 感覺上,每一個name的地方,都可以設定陣列名稱及陣列索引,如
<input name="rdoQ[0]" type="radio" value="1">太平洋與大西洋
setcookie("personal[name]",$tbxname)
25. 關於函式session_register(),PHP 5.3版會提出警告(Deprecated),5.4版後,則會停用該函式,這個警告與php.ini中register_globals預設為關閉有關,官方建議使用$_SESSION['var'] = "value"陣列方式來宣告
http://php.net/manual/en/function.session-register.php
26. 關於PHP Session的介紹 http://www.webtech.tw/info.php?tid=33
27. session是否能由同目錄但不同網頁上存取呢?測試結果好像不行
28. 使用fgets取得中文字元,會有點怪怪的
29. submit與button
submit,送交
 1. 可以不用onClick,為表單做送交行為
 2. 支援Enter鍵
button,純按鍵
 1. 必須使用onClick,為表單做送交行為
 2. 不支援Enter鍵
http://codestandup.blogspot.tw/2009/08/html-inputbuttonsubmit.html
30. 使用html上傳檔案,只能使用post方式
31. foreach迴圈用法
 1. foreach(array_expression as $value) statement
第 1 種語法會對陣列 array_expression 做迴圈,並將目前所指元素的值放到 $value 變數裡,然後陣列裡

的指標會跟著移到下一個元素的位置。
 2. foreach(array_expression as $key => $value) statement
第 2 種語法則是和第一種語法相同,差別再於這種語法還會將元素的 key 放到 $key 變數裡。
http://www.jollen.org/php/jollen_php_book_31_foreach.html
32. printf函數,輸出格式化的字串
printf(format,arg1,arg2,arg++)
format 必需。規定字串格式及變數
arg1 必需。規定插到格式化字串中第一個%
<?php
$str = "Hello";
$number = 123;
printf("%s world. Day number %u",$str,$number);
?>
http://www.w3school.com.cn/php/func_string_printf.asp

33. PHP連結資料庫查詢參考 tony大的blog
http://tw.myblog.yahoo.com/tonywangblog2011-tonywangblog2011/article?mid=320&prev=-1&next=315

資料來源:
PHP語法 林義祥大的PHP手冊,內容有詳細的說明,適合初學者參考
http://www.encntc.edu.tw/document/php4doc/down.html

程式參考 dreamtails大的blog
http://dreamtails.pixnet.net/blog/post/23583385-%5B%E6%95%99%E5%AD%B8%5Dphp%E6%9C%83%E5%93%A1%E7%99%BB%E5%85%A5%E6%A9%9F%E5%88%B6%EF%BC%8Csession%E7%9A%84%E4%BD%BF%E7%94%A8%EF%BC%8C%E7%B0%A1%E6%98%93%E5%9E%8B

PHP起步,這是個國外的網站,是由 阿維實驗室 看到的相關資料
http://net.tutsplus.com/articles/web-roundups/25-resources-to-get-you-started-with-php-from-scratch/

網頁設計教學站台
http://www.webtech.tw/c.php?cid=5

TwHappy部落格,教學範例
http://www.twhappy.com/index.php?action=blog&category=6

留言

這個網誌中的熱門文章

zimbra 安裝、管理、設定

Fortigate 100D -- 管理、設定

IT 隨手記6