2008年8月26日 星期二

[PHP]傳遞整個陣列

< ?php
//原始陣列資料
$info=array(12,34,56,76,78,55,66,90,40,88);

function sorting($arr)
{//陣列遞減排序
arsort($arr);

//由陣列最後刪除5元素
for($x=0;$x<5;$x++){
array_pop($arr);
}
//傳回最大的5筆資料
return $arr;
}

echo "原始陣列資料:< br/>";
print_r($info);
echo "< p>";

//呼叫函數
$result=sorting($info);

//顯示回傳的陣列資料
echo "顯示回傳的陣列資料 : < br/>";
foreach($result as $value)
{
echo $value." -> ";
}
?>

=================顯示結果============
原始陣列
Array ( [0] => 12 [1] => 34 [2] => 56 [3] => 76 [4] => 78 [5] => 55 [6] => 66 [7] => 90 [8] => 40 [9] => 88 )
傳回值
90=>88=>78=>76=>66=>

[PHP]call by reference

< ?php
$x=20;
$y=60;
echo "原本的值< /br>";
echo "\$x=".$x."< br/>";
echo "\$y=".$y."< br/>";


function swap($a,$b)
{
$temp=$a;
$a=$b;
$b=$temp;
echo "a的值".$a."< /br>";
echo "b的值".$b."< /br>";
}

echo "

以Call By Value 呼叫 swap函數< br/>";
swap(&$x,&$y);
echo "

呼叫函數後的 \$x 和 \$y 變數: < br/>";
echo "\$x=".$x."< br/>";
echo "\$y=".$y."< br/>";
? >
=============輸出結果===============
原本的值
$x=20
$y=60

以Call By Value 呼叫 swap函數
a的值60
b的值20


呼叫函數後的 $x 和 $y 變數:
$x=60 =========>不同處$y=20

[PHP]call by value use swap

< ?php
$x=20;
$y=60;
echo "原本的值< /br>";
echo "\$x=".$x."< br/>";
echo "\$y=".$y."< br/>";


function swap($a,$b)
{
$temp=$a;
$a=$b;
$b=$temp;
echo "a的值".$a."< /br>";
echo "b的值".$b."< /br>";
}

echo "< p>以Call By Value 呼叫 swap函數< br/>";
swap($x,$y);
echo "

呼叫函數後的 \$x 和 \$y 變數: < br/>";
echo "\$x=".$x."< br/>";
echo "\$y=".$y."< br/>";
? >
=======顯示結果=========
原本的值
$x=20
$y=60

以Call By Value 呼叫 swap函數
a的值60
b的值20


呼叫函數後的 $x 和 $y 變數:
$x=20
$y=60

[PHP]區域變數與全域變數

function sayhello(){ $b="holiday"; global $a; //使用全域變數 echo $b."
"; echo "---".$a."!!!";}echo $a."
";sayhello();

?>

[PHP]函數的定義

if(is_numeric($a)&&is_numeric($b)){

$avg=($a+$b)/2;
return $avg;

}

else

{

return "輸入的非數值";

}

}
$info=average(60,20);

echo "平均值是".$info;

echo "
";

$info=average(aa,20);

echo "平均值是".$info;
?>

2008年8月25日 星期一

[PHP]時間函數2

";
//列印陣列中的資料foreach($info as $index => $value){ echo "\$info[$index] => ".$value."
";}
//轉成日期格式 echo "

系統日期和時間 :
"; echo ($info["tm_year"]+1900)."年".($info["tm_mon"]+1)."月".$info["tm_mday"]."日
"; echo "星期".$info["tm_wday"]." => ".$info["tm_hour"]."點"; //取得UNIX時間戳記並指定顯示格式$tim=mktime(11,30,20,8,16,2005); echo "

另一筆時間資料 :
"; echo date("Y-M-d h:i:s A",$tim);?>

[PHP]時間函數

$m=$info['mon'];

$d=$info['mday'];

$y=$info['year'];
//驗證是否為合法日期格式

if(checkdate($m,$d,$y))

{

echo "這是合法日期格式
";

echo "年份為".$y."
";

echo "月份為".$m."
";

echo "日期是".$d."
";

}else{

echo "這不是日期合法的格式";

}
echo "

".date ("M. dS Y l ");

?

>

[PHP]數值轉換

將使用者輸入數值轉換不同進位表示==================HTML頁面語法=====================
請輸入一個整數:

name="form1" method="post" action="test11.php">
type="text" name="number">< /p><>< type="submit" name="submit" value="送出">< type="reset" name="reset" value="reset" id="reset">
/p>
/form>
===================php頁面語法====================";if(is_numeric($numb)){ //判斷是否為數值echo "轉成二進位為".base_convert($numb,10,2)."

"; echo "轉成八進位為".decoct($numb)."

";echo "轉成 十六進位為".dechex($numb)."

";}else{echo "您輸入的不是數值資料 ";}
?>

[PHP] 常用數學函數

//原始數值
$nm=-123.456;

echo "原數值 = ".$nm."
";

$nm=abs($nm);
$nm=round($nm,2);
echo "取絕對值和四捨五入小數取二位 => ".$nm;
echo "

亂數產生陣列值 :
";
for($a=0;$a<10;$a++){
//以亂數產生陣列值

$arr[$a]=rand(0,1000);
//顯示陣列元素 echo "\$arr[$a] => ".$arr[$a]."
";
}
echo "

陣列最大值 : ".max($arr)."
";

echo "陣列最小值 : ".min($arr);

?>

2008年8月24日 星期日

[PHP]字串比對-身份證比對,mail比對

service@hotmail.com.tw","linda@123454","1234@hinet.com");
//定義樣式$ptn1="[a-z]{1}[1-2]{1}[0-9]{8}";
for($a=0;$a 格式正確

"; }else{ echo $id[$a]." => 格式不正確

"; }}
//找尋開頭可以是任何英文或數值,接著有一個@其後還有一個點$ptn2="^[[:alnum:]]+@[[:alnum:]]+\.";
for($a=0;$a 格式正確

"; }else{ echo $mail[$a]." => 格式不正確

"; }}?>

[PHP]輸出格式化字串

//原始字串$info="5600 ml";

echo "原始字串 : ".$info; //轉換成數值並以科學記號表示3位數值來顯示

$num=sprintf("%.3e",$info);

echo "

轉換成科學記號表示 : ".$num; //轉換成數值並以浮點小數兩位來顯示

$num=sprintf("%.2f",$info);

echo "

轉換浮點數表示 : ".$num; //另一個訊息字串 $message="每天需要的水份大於";

echo "

"; //%'.-25s設定message靠左,以 ..擴充到25位元 //%s設定info以字串顯示

printf("%'.-25s%s",$message,$info);

?>

[PHP]分割字串

【分割字串】

$array_info=explode(";",$info);

將$info以;分開字串存到$array_info裡頭


【單位分割】
$array_info=str_split($info,10);
以10個字元分割為一組傳到$array_info裡頭

【以空白合併】
echo "空格合併字串".implode(" ",$info2);
將“陣列”的資料,以空白把陣列合併

============================
$array_info=explode(";",$info);echo "分割後的資料
";print_r($array_info);
$array_info=str_split($info,10); echo "

分割後
"; print_r($array_info); echo "
";$info2=array("microsoft","internet","exploer"); echo "空格合併字串".implode(" ",$info2);
?>

[PHP]字串取代

【字串取代】
echo str_replace("valientine","father",$info);
將valientine的字串取代成father

[截取字串後面的文字】
echo strstr($mail,"@");
將@後的文字顯示出來

=====================
dickfala@gmial.com"; echo strstr($mail,"@");?>

2008年8月12日 星期二

[推甄]自傳完成

推甄自傳終於完成,
但還有小部份需要修改,
接下來的目標 
就是研究計劃,
加油!

Mystuff for windows

今天終於把mystuff成功架在windows
雖然架在Linux可以正常
但windows之前一直沒有架成
花了大約兩天才架好
原本是使用Appserv,但發現他們不合
於是改用xampp,第一次使用xampp,起初抓下來一直不會用
後來才發現抓錯檔案了,應該抓自動安裝那個檔
很順利了渡過了這關,安裝完xammp之後,
發現不知道要把網頁目錄放哪,一直try localhost一直沒出現我設的網頁,
發現官網有說明!太晚發現了,應該提早去看官網的教學表,
很開心的找到了網頁目錄後,將moodle放入,
安裝卻又出現一直找不到網頁
一整個頭痛
發現browser因為是一直顯示舊的畫面.......
之後終於可以順利讀取到moodle開始安裝
但發現重要的問題,居然在建立moodle需要的資料表時
一下就出現了error!!!!!!!!
真的非常意外,因為之前裝都沒有這些問題出現,
後來用google查到,原來在xammp裡頭的C:\xampp\apache\bin中 php.ini
extension=eaccelerator.dll
要改為
;extension=eaccelerator.dll
前面加個分號後,安裝就沒有問題了
但之後將mystuff放到mod裡頭
http://127.0.0.1/moodle/admin
他會先安裝mod裡頭mystuff需要的資料表
裝完之後
再執行http://127.0.0.1/moodle/mod/portfolio 
發現他直接顯示出 發生系統嚴重錯誤........
這個情況完全沒遇見過
之前裝mystuff頂多是全空白畫面
以為會成功裝好,但一直遇到好多問題
後來嘗試去MySQL的官網載新的版本
直接past到MYSQL的資料夾
發現xampp沒辦法直接這樣合在一起
只好再度把xammp重新刪掉再安裝一次
裝完後,將moodle放入htdocs的資料夾,web是讀取這個目錄
突然想到若我先把Mystuff放到mod裡,再去執行moodle本程式的安裝
他應該會一起把mod裡需要的資料表一起裝好
於是這樣嘗試之後,
再度執行http://127.0.0.1/moodle/mod/portfolio 
終於!!出現了!
真是開心,光裝這個就花了好多時間,
一直先執著先灌在windows是因為要改php程式會比較方便熟悉,
到時真正的目的在windows做好再移到linux也不遲。
上星期一直到書店翻找PHP與PDF的資料
有教這兩個關聯的書並不多,
大多都只有在 PHP函式庫會提到,
我只有看到一本“PHP學習手冊”與PDF報表有關的教學書
這本書是歐萊禮出版
在他的第十三章有提到PDF的報表製作,
若PHP學的有進展就可以慢慢朝那個方向去接觸了。
2008.08.13 PM 01:50 原瑜