2008年9月13日 星期六

[PHP]新增Cookie資料

< ?php
//開啟輸出暫存器
ob_start();
?>

< html>
< head>
< meta http-equiv="Content-Type" content="text/html; charset=big5">
< title>建立Cookie< /title>
< /head>
< body>

< ?php
$name="Linda";
$value="努力存錢!";

//設定有效期限為目前的時間加上一星期
$expire=strtotime("+1 week",time());

//建立Cookie
setcookie($name,$value,$expire);

//出清輸出暫存器
ob_end_flush();

//顯示目前日期
$now=getdate(time());
$shownow=$now["month"]." ".$now["mday"].", ".$now["year"];

//顯示有效日期
$expday=getdate($expire);
$showexp=$expday["month"]." ".$expday["mday"].", ".$expday["year"];

echo "Cookie的名稱是: ".$name."

";
echo "目前的時間: ".$shownow."

";
echo "Cookie有效期限: ".$showexp;
?>

< /body>
< /html>

2008年9月12日 星期五

[PHP][FPDF]產生PDF


require('fpdf.php'); //引入fpdf類別檔
$pdf=new FPDF(); //產生PDF物件
$pdf->AddPage(); //新增一頁
$pdf->SetFont('Times','B',14); //設定字型
$pdf->Cell(50,20,'Hello World!'); //儲存格文字
$pdf->Output(); //產生PDF檔
?>

[PHP]產生PDF問題

出現的問題
============================

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pdftest.php:9) in C:\AppServ\www\class.pdf.php on line 1916

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pdftest.php:9) in C:\AppServ\www\class.pdf.php on line 1917

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\pdftest.php:9) in C:\AppServ\www\class.pdf.php on line 1919
%PDF-1.3 %睼珃 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R ] /Count 1 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text ] endobj 5 0 obj << /Creator (R and OS php pdf writer, http://www.ros.co.nz) /CreationDate (D:20080910) >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 61 >> stream xr Q06?00P?0?66P IQ苡3T0 ?)(hd斗鳵??憭h*)?@?E endstream endobj 8 0 obj << /Type /Font /Subtype /Type1 /Name /F1 /BaseFont /Helvetica /Encoding /WinAnsiEncoding >> endobj xref 0 9 0000000000 65535 f 0000000015 00000 n 0000000080 00000 n 0000000126 00000 n 0000000280 00000 n 0000000309 00000 n 0000000414 00000 n 0000000477 00000 n 0000000610 00000 n trailer << /Size 9 /Root 1 0 R /Info 5 0 R >> startxref 717 %%EOF

=================問題解法===============
這一個問題的原因是因為我在php的檔案裡有加了html的關係,因為我是把
程式
?>

加在< body> 與< /body>之間
然後沒有在windows裡頭php.ini也要加上;include_path='.;C:\php5\pear'
這一行。
程式
>?
單純放在php網頁檔去跑,這樣就可以成功發佈PDF檔了。

2008年9月11日 星期四

[PHP]清單的設計

============html=============
< form id="form1" name="form1" method="post" action="like.php">
< label>
< br />
姓名
< input name="uname" type="text" size="5" maxlength="5" />
< br />
< br />
職業
< select name="select1">
< option value="總經理">總經理< /option>
< option value="業務">業務< /option>
< option value="行政助理">行政助理< /option>
< option value="工程">工程師< /option>
< option value="經理">經理< /option>
< /select>
< /label>
< p>喜歡的水果< /p>
< p>
< label>
< select name="select2[]" size="4" multiple="multiple">
< option value="香蕉">香蕉< /option>
< option value="西瓜">西瓜< /option>
< option value="蓮霧">蓮霧< /option>
< option value="櫻桃">櫻桃< /option>
< option value="水梨">水梨< /option>
< option value="文旦">文旦< /option>
< option value="桃子">桃子< /option>
< /select>
< /label>
< /p>
< p>
< label>
< input type="submit" name="Submit" value="送出" />
< /label>
< label>
< input type="reset" name="Submit2" value="重設" />
< /label>
< /p>
< /form>
=====================PHP====================
< ?php
echo $_POST[uname]."您好

";
echo "您的職稱是".$_POST["select1"]."

";
echo "您喜歡的水果:

";
$arr=$_POST["select2"];
print_r($arr);

?>

[PHP]核取方塊的應用

============HTML============
< form id="form1" name="form1" method="post" action="baseball.php">
< p class="style2">您的姓名
< label>
< input name="uname" type="text" size="10" maxlength="5" />
< /label>
< /p>
< p class="style2">選取您喜歡的球隊


< p class="style2">
< label>
< input type="checkbox" name="checkbox1" value="兄弟象" checked />
< /label>
兄弟象
< label>
< input type="checkbox" name="checkbox2" value="LaNew熊" />
< /label>
LaNew熊
< label>
< input type="checkbox" name="checkbox3" value="統一獅" />
< /label>
統一獅
< label>
< input type="checkbox" name="checkbox4" value="興農牛" />
< /label>
興農牛
< label>
< input type="checkbox" name="checkbox5" value="米迪亞暴龍" />
< /label>
米迪亞暴龍
< label>
< input type="checkbox" name="checkbox6" value="中信鯨" />
< /label>
中信鯨
< /p>

< p>
< label>
< input type="submit" name="Submit" value="送出" />
< /label>
< label>
< input type="reset" name="Submit2" value="重設" />
< /label>
< /p>
< /form>

=================PHP=====================
< ?php
echo $_POST[uname]."球迷< P>";
echo "你喜歡的球隊有:< P>";

for($x=1;$x<7;$x++)
{
$str="checkbox".$x;

if(isset($_POST[$str]))
//true代表被選取
{
echo $_POST[$str].".";
}

}
?>

2008年9月10日 星期三

[PHP]選項鈕的應用

=============HTML============
< form id="form1" name="form1" method="post" action="test6.php">
< p>訂購單< /p>
< p>姓名:
< label>
< input name="uname" type="text" id="uname" />
< /label>
< /p>
< p>電話:
< label>
< input name="uphone" type="text" id="uphone" />
< /label>
< /p>
< p>地址:
< label>
< input name="addr" type="text" id="addr" />
< /label>
< /p>
< p>郵寄方式:


< p>
< label>
< input name="delivery" type="radio" value="掛號" />
< /label>
掛號
< label>
< input name="delivery" type="radio" value="普通" checked />

< /label>
普通
< label>
< input name="delivery" type="radio" value="快捷" />
< /label>
快捷 < /p>
< p>
< input type="hidden" name="param" value="訂購單確認" />

< label>
< input type="submit" name="Submit" value="送出" />
< /label>
< label>
 
< input type="reset" name="Submit2" value="重設" />
< /label>
< /p>
< /form>

=================PHP=================
< ?php
echo "< b>< font color='purple'>".$_POST["param"]."< /font>

";
echo "< b>< font color='blue'>".$_POST["uname"]."< /font>< /b>的連絡電話是< b>< font color='blue'>".$_POST[uphone]."< /font>< /b>< p>";
echo "您的訂單會依照< b>< font color='blue'>".$_POST["delivery"]."< /font>< /b>送到下列地址";

echo "< hr>< p>";
echo "< p>< font color='blue'>".$_POST[addr]."< /font>< /br>"
?>

2008年9月9日 星期二

[PHP]文字類相關欄位

============HTML=========
< form id="form1" name="form1" method="post" action="test4.php">
< p>請輸入資料< /p>
< p>帳號
< label>
< input name="uname" type="text" size="10" />
< /label>
< /p>
< p>密碼
< label>
< input name="upass" type="password" size="15" />
< /label>
< /p>
< p>
< label>
備註
< textarea name="note" rows="8" id="note">< /textarea>
< /label>
< /p>
< p>

< input type="hidden" name="param" value="隱藏欄位" />
< /p>
< p>
< label>
< input type="submit" name="Submit" value="送出" />
< /label>
< label>
< input type="reset" name="Submit2" value="重設" />
< /label>
< /p>


< /form>
===================PHP================

< ?php
echo "< h2>< font color='purple'>".$_POST["param"]."< /font>< /h2>";

echo "會員名稱:".$_POST["uname"]."< p>";
echo "會員密碼:".$_POST["upass"]."< p>";
echo "備註:".$_POST["note"]."< p>";


?>

[PHP]header函數

< ?php
echo "網頁轉向";
header("Refresh:3;url=http://www.yahoo.com.tw");
//利用header()函數使網頁轉向
ob_end_flush();
//關閉output buffer

?>

=========
網頁轉向:
header("location:指定路徑");
更新網頁:
header("Refresh:間格秒數");
資料類型:
header("Content-type:MIME資料類型");
保留期限:
header("Expires:"時間字串);

[PHP]資料傳遞

===============HTML=============
< form id="form1" name="form1" method="post" action="test3.php">
< p>請輸入資料< /p>
< p>帳號
< label>
< input name="uname" type="text" size="10" />
< /label>
< /p>
< p>密碼
< label>
< input name="upass" type="password" size="15" />
< /label>
< /p>
< p>
< label>
< input type="submit" name="Submit" value="送出" />
< /label>
< label>
< input type="reset" name="Submit2" value="重設" />
< /label>
< /p>
< /form>


=================PHP=====================
< ?php
echo "< h2>< font color='purpls'>您的資料為:< /font>< /h2>";

echo "您的帳號:".$_POST["uname"]."

";
echo "您的密碼:< font color='red'>".$_POST["upass"]."< /font>< p>";


?>

[PHP]類別與物件相關函數

< ?php
//宣告類別
class vehicle
{
//相關屬性
var $type;
var $model;
var $color;

function set_type($tt){
//設定交通工具屬性
$this->type=$tt;
}

function set_model($mm){
//設定車子的廠牌
$this->model=$mm;
}

function set_color($cc){
//設定車子顏色
$this->color=$cc;
}

function getcartype() {
//傳回$type屬性
return $this->type;
}

function getmodel(){
//傳回$model屬性
return $this->model;
}

function getcolor(){
//傳回$color屬性
return $this->color;
}
}//end vehicle class

//建立物件實體
$PeterCar=new vehicle;

//使用類別相關函數
$clsname=get_class($PeterCar);
echo "\$PeterCar物件對應的類別是 : ".$clsname."< p>";

//顯示類別中的所有方法清單
$method_array=get_class_methods($clsname);
echo "$clsname 類別的所有成員函數: < p>";
print_r($method_array);

//顯示類別中的所有屬性清單
$property_array=get_class_vars($clsname);
echo "

$clsname 類別的所有成員資料:

";
print_r($property_array);
?>
==================結果================
類別相關函數
$PeterCar物件對應的類別是 : vehicle
vehicle 類別的所有成員函數:

Array ( [0] => set_type [1] => set_model [2] => set_color [3] => getcartype [4] => getmodel [5] => getcolor )

vehicle 類別的所有成員資料:

Array ( [type] => [model] => [color] => )

[PHP]介面

< ?php
//宣告介面(類別的原型,不含任何屬性定義)
interface itemtotal
{
//宣告介面成員函數
function item_total($x);
}

//宣告另一個介面
interface owner
{
//宣告介面成員函數
function get_owner($x);
}

//cart類別引用itemtotal和owner介面
class cart implements itemtotal,owner
{
//宣告自已的成員資料
var $owner;
var $store;
var $item=0;

//自訂自己的成員函數
function get_store()
{
//指定商店的名稱
$this->store="PHP學習";
return $this->store;
}

//重新定義介面的item_total()函數
function item_total($x)
{
//將購買項目加總到原有的$item屬性
$this->item +=$x;

//傳回$item屬性值
return $this->item;
} //end function

//重新定義介面的get_owner()函數
function get_owner($x)
{
$this->owner=$x;
//傳回owner屬性值
return $this->owner;
}
} //end class

//建立新的物件
$Elearning=new cart;
echo "這家網路商店的名稱 : < font color='blue'>".$Elearning->get_store()."< /font>< p>";
echo "目前購物車的車主是 : < font color='blue'>".$Elearning->get_owner("Elvin")."< /font>< p>";

$total=$Elearning->item_total(100);
echo "加買100項後< br/>";
echo "目前購買的數量是 : < font color='blue'>".$total."< /font>< p>";

$total=$Elearning->item_total(5);
echo "加買5項後< br/>";
echo "目前購買的數量是 : < font color='blue'>".$total."< /font>

";

?>
==================結果=================
介面
這家網路商店的名稱 : PHP學習
目前購物車的車主是 : Elvin

加買100項後
目前購買的數量是 : 100

加買5項後
目前購買的數量是 : 105

2008年9月4日 星期四

[PHP]多形性的應用

======PHP=========
< ?php
//宣告類別
class cart
{//建立購物車類別
var $owner;
var $store;

function get_owner($x)
{
$this->owner=$x;
return $his->owner;
} //end function

} //end cart class

class store_cart extends cart
{//繼承自cart類別的商店購物車

function get_owner($x)
{
//設定商店名稱
$this->store="大家發商店";
echo "< font color='green'>歡迎光臨 < i>".$this->store."< /i>< p>";
echo $x." 客戶您好< /font>

";
} //end function

} //end store_cart class

class book_cart extends cart
{//繼承自cart類別的書店購物車

function get_owner($x)
{
//設定商店名稱
$this->store="志凌書店";
echo "< font color='blue'>歡迎光臨 < i>".$this->store."< /i>< p>";
echo $x." 客戶您好< /font>

";
} //end function
} //end book_cart class

//宣告新的物件
$Linda=new book_cart;
//使用類別內自訂的成員函數
$Linda->get_owner("林錦雀");

//宣告新的物件
$Caroline=new store_cart;
//使用類別內自訂的成員函數
$Caroline->get_owner("羅微娟");

?>

[PHP]類別的繼承

< ?php
//宣告類別
class vehicle
{
//相關屬性
var $type;
var $model;
var $color;

function set_type($tt){
//設定交通工具屬性
$this->type=$tt;
}

function set_model($mm){
//設定車子的廠牌
$this->model=$mm;
}

function set_color($cc){
//設定車子顏色
$this->color=$cc;
}

function getcartype() {
//傳回$type屬性
return $this->type;
}

function getmodel(){
//傳回$model屬性
return $this->model;
}

function getcolor(){
//傳回$color屬性
return $this->color;
}
}//end vehicle class

class car extends vehicle
{//繼承自vehicle 的子類別
var $wheel;
function showcar($x,$y,$z)
{
//是四輪的車子
$this->wheel=4;

//呼叫父類別的函數
parent::set_type($x);
parent::set_model($y);
parent::set_color($z);

//顯示車子的相關資料
echo "你車子的類型是 : < font color='blue'> ".$this->type."< / font>< p>";
echo "你車子的輪子數是 : < font color='blue'> ".$this->wheel."< /font>< p>";
echo "你車子的廠牌是 : < font color='blue'> ".$this->model."< /font>< p>";
echo "你車子的顏色是 : < font color='blue'> ".$this->color."< /font>< p>";
} //end function
} //end car class

//建立新的 car 物件
$Alicecar=new car;

//使用物件所提供的方法
$Alicecar->showcar("家用房車","Nissan","red");
? >

================結果====================
類別繼承
你車子的類型是 : 家用房車
你車子的輪子數是 : 4

你車子的廠牌是 : Nissan

你車子的顏色是 : red

[PHP]設定類別存取權限

< ?php
class vehicle
{
public $type;
protected $model;
private $color;
function set_type($tt){
$this->type=$tt;
}

function set_model($mm){
$this->model=$mm;
}

function set_color($cc){
$this->color=$cc;
}

function getcartype(){
return $this->type;
}

function getmodel(){
return $this->model;
}

function getcolor(){
return $this->color;
}

}

$Lindacar=new vehicle;
$Lindacar->type="Van";
$Lindacar->set_model("TOYOTA");
$Lindacar->set_color("silver");

echo "Linda的車型是 : ".$Lindacar->getcartype()."< p>";
echo "Linda車的顏色是 : ".$Lindacar->getcolor()."< p>";
echo "Linda車的廠牌是 : ".$Lindacar->getmodel();

?>
==============結果===========
Linda的車型是 : Van
Linda車的顏色是 : silver

Linda車的廠牌是 : TOYOTA

[PHP]解構子

< ?php
//宣告類別
class cart
{
var $owner;
var $price=300; //每套產品的定價
var $goods;
function cart($name){
//建構子
$this->owner=$name;
echo "< h2>< font color=purple>歡迎進入志凌資訊學習網!< /h2>";
echo $name."建立了cart類別的物件< / font>

";
}
function add_item($title, $amt){
//新增項目到購物車中
$this->goods[$title] +=$amt;
//傳回數量
return $amt;
}
function remove_item($title, $amt){
//由購物車內移除項目
if($this->goods[$title]>$amt)
{
$this->goods[$title] -=$amt;
//傳回數量
return $amt;
}else{
echo "錯誤!! $title 移除的量大於該項目既有的量!< br>";
return false;
}
}
function get_owner(){
//傳回購物車擁有者的名稱
return $this->owner;
}
function get_goods(){
//傳回購物車中的物件清單
return $this->goods;
}
function __destruct(){
//解構子
echo "

即將結束程式 !....";
}
}//end class

//建立一個新物件並指定名稱
$mycart=new cart("Alice");

//新增物品到購物車
$item += $mycart->add_item("PHP & MySQL",3);

//取得購物車的擁有者
$na=$mycart->get_owner();
echo $na."< p>";

//取得購物車內的物件清單
$list=$mycart->get_goods();
print_r($list)."< p>";
?>

=============================================

畫面下方會多出程式正在結束

[PHP]建構子

< ?php
//宣告類別
class cart
{
var $owner;
var $price=300; //每套產品的定價
var $goods;
function cart($name){
//建構子
$this->owner=$name;
echo "< h2>< font color=purple>歡迎進入志凌資訊學習網!< /h2>";
echo $name."建立了cart類別的物件< /font>< p>";
}
function add_item($title, $amt){
//新增項目到購物車中
$this->goods[$title] +=$amt;
//傳回數量
return $amt;
}
function remove_item($title, $amt){
//由購物車內移除項目
if($this->goods[$title]>$amt){
$this->goods[$title] -=$amt;
//傳回數量
return $amt;
}else{
echo "錯誤!! $title 移除的量大於該項目既有的量!< br>";
return false;
}
}
function get_owner(){
//傳回購物車擁有者的名稱
return $this->owner;
}
function get_goods(){
//傳回購物車中的物件清單
return $this->goods;
}
}//end class

$item=0;
//建立一個新物件並指定名稱
$mycart=new cart("Peter");

//新增物品到購物車
$item += $mycart->add_item("ASP.NET",3);
$item += $mycart->add_item("Java",2);
$item += $mycart->add_item("JavaScript",3);
$item += $mycart->add_item("VB",4);
$item += $mycart->add_item("ASP",1);

//取得購物車的擁有者
$na=$mycart->get_owner();
echo $na."< p>";

//取得購物車內的物件清單
$list=$mycart->get_goods();
print_r($list)."< p>";

echo "

採購總金額 : ".$item * $mycart->price;
?>

[PHP]類別與物件

< ?php
//宣告類別
class cart
{
var $owner;
var $price=300; //每套產品的定價
var $goods;
function add_item($title, $amt){
//新增項目到購物車中
$this->goods[$title] +=$amt;
//傳回數量
return $amt;
}
function remove_item($title, $amt){
//由購物車內移除項目
if($this->goods[$title]>$amt)
{
$this->goods[$title] -=$amt;
//傳回數量
return $amt;
}else{
echo "錯誤!! $title 移除的量大於該項目既有的量!< br>";
return false;
}
}
function get_owner(){
//傳回購物車擁有者的名稱
return $this->owner;
}
function get_goods(){
//傳回購物車中的物件清單
return $this->goods;
}
}//end class

$item=0;
//建立一個新物件
$mycart=new cart;
//指定購物車名稱
$mycart->owner="Linda";

//新增物品到購物車
$item += $mycart->add_item("Access",3);
$item += $mycart->add_item("Word",2);
$item += $mycart->add_item("PowerPoint",3);
$item += $mycart->add_item("VB",4);
$item += $mycart->add_item("Access",1);

//移除購物出車中的物品
$item -= $mycart->remove_item("PowerPoint",1);
//取得購物車的擁有者
$na=$mycart->get_owner();
echo $na."

";

//取得購物車內的物件清單
$list=$mycart->get_goods();
print_r($list)."< p>";

echo "< p>採購總金額 : ".$item * $mycart->price;
?>

2008年9月3日 星期三

[PHP]require關鍵字-無外部檔會產生錯誤並中斷程式

============外部檔=================
< ?php
function ddcheck($m,$d,$y)
{
//判斷所輸入的資料是否是合法的日期資料
if(checkdate($m,$d,$y)){
//將輸入的資料轉成UNIX時間戳記
$dd=mktime(0,0,0,$m,$d,$y);
//以date()函數顯示對應格式
echo date("M-d-Y",$dd);
}else{
echo "所輸入的資料不是合法的日期格式!";
}
}

? >

==============PHP檔======================
< ?php
require "ddfunc.inc";

$mm=8;
$dd=20;
$yy=2005;

echo "< p>輸入的資料是 : < br/>";
echo $mm." , ".$dd." , ".$yy."< br/>";

//呼叫載入檔案中的函數
ddcheck($mm,$dd,$yy);

//改變$dd值
echo "< p>輸入的資料是 : < br/>";
$dd=34;
echo $mm." , ".$dd." , ".$yy."< br/>";

//呼叫載入檔案中的函數
ddcheck($mm,$dd,$yy);

? >
============產生結果================

輸入的資料是 :
8 , 20 , 2005
Aug-20-2005

輸入的資料是 :
8 , 34 , 2005
所輸入的資料不是合法的日期格式!

[PHP]include關鍵字呼叫-無外部檔會警告不會中斷

=============外部檔============
< ?php
function average($a,$b)
{
//先判斷輸入的資料是否是數值
if(is_numeric($a) && is_numeric($b)){
$avg=($a+$b)/2;
//傳回平均值
return $avg;
}else{
return "< font color='red'>所輸入的資料非數值 !< /font>";
}
}

function sum($a,$b)
{
//先判斷輸入的資料是否是數值
if(is_numeric($a) && is_numeric($b)){
$total=$a+$b;
//傳回總計
return $total;
}else{
return "< font color='red'>所輸入的資料非數值 !< /font>";
}
}
? >

=============PHP===================
< ?php
include "funs.inc";
$x=123;
$y=456;
echo "輸入的值為".$x.",".$y."< p>";

echo "平均值為".average($x,$y)."< p>";
echo "總和為".sum($x,$y)."< p>";

?>

[PHP]不定名稱函數

======================HTML部份========================
< form name="form1" method="post" action="test18.php">
< p class="style1">請輸入一個數值< /p>
< p>
< input type="text" name="number">
< /p>
< p>
< input name="transform" type="radio" value="bin">
二進位
< input name="transform" type="radio" value="oct">
八進位
< input name="transform" type="radio" value="hex">
十六進位< /p>


< input type="submit" name="Submit" value="送出">
< input type="reset" name="Submit2" value="清除">
< /p>
< /form>

=====================PHP部份=======================
< ?php

//轉換成為二進位
function bin($n)
{
echo "二進位表示 : ".decbin($n);
}
//轉為八進位
function oct($n)
{
echo "八進位表示 : ".decoct($n);
}
//轉為十六進位
function hex($n)
{
echo "十六進位表示 : ".dechex($n);
}

//取得表單傳遞過來的資料
$nm=$_POST[number];
$choose=$_POST[transform];

echo "輸入的數值是 : ".$nm."< br/>";
echo "選取的模式是 : ".$choose."< p>";

//呼叫不定名稱函數
//依不同的變數值去呼叫不同的函數
$choose($nm);


?>

[PHP]不定參數函數

< ?php
//不定參數函數
function print_me()
{
$nm=func_num_args();
echo "此次共傳 ".$nm." 個參數。< br/>";
for($x=0;$x<$nm;$x++){
echo func_get_arg($x)."< br/>";
}
}
//呼叫函數,傳遞2參數
print_me("Linda","Peter");

echo "

";
//呼叫函數,傳遞3參數
print_me("Happy","Holiday","Elvin");

? >

========================顯示結果=======================
此次共傳 2 個參數。
Linda
Peter

此次共傳 3 個參數。
Happy
Holiday
Elvin

2008年9月2日 星期二

[PHP]利用巢狀函數轉換進位

===HTML部份語法===
< body >

< h2>請輸入一個整數:< /h2>
< form name="form1" method="post" action="test16.php">

< p>
< input type="text" name="number">
< /p>
< p>
< input type="submit" name="submit" value="送出">
< input type="reset" name="reset" value="reset" id="reset" >

< /p>


< /form>
< /body>

==================PHP部份============
< ?php
$n=$_POST[number];
function nest_transform($n)
{
function bin($n)
{
return decbin($n);
}

function oct($n)
{
return decoct($n);
}

function hex($n)
{
return dechex($n);
}

echo "< table border=2 width=80%>";
echo "< tr>二進位< /th>< td>".bin($n)."< /td>< /tr>";
echo "< tr>< th>八進位< /th>< td>".oct($n)."< /td>< /tr>";
echo "< tr>< th>十六進位< /th>< td>".hex($n)."< /td>< /tr>";


}

echo $n."< /br>";
nest_transform($n);


?>

[PHP]遞迴呼叫-階層

< ?php
function factory($n)
{//判定是否為整數且大於零
if(is_integer($n) && $n>0){
if($n>=2){
$temp=$n ;
$n=$n-1;
//遞迴呼叫本身
$total=$temp * factory($n);
return $total;
}else{
return 1;
}
}else{
echo "請輸入大於零的整數";
}
}

//呼叫factory 函數
echo "5! = ".factory(5)."< br/>";
echo "6! = ".factory(6)."< br/>";
echo "7! = ".factory(7)."< br/>";
? >

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 原瑜

2008年7月29日 星期二

Moodle 上的 e-portfolio 系統

老師寄信來說

有一個架構在 Moodle 上的 e-portfolio 系統

http://sclater.com/blog/?p=46

http://www.open.ac.uk/blogs/MyStuff-info/index.php

看了一下似乎是增加文件上傳的功能,然後有標籤功能可以找尋這個上傳文件

不用再到每一個資料夾裡找這個文件在哪裡

不過這一個是架在moodle上面的功能

我們主要的目標是claroline,不過moodle和這個很類似,

但現在目前首要問題是,如何把f2blog的資料庫與claroline合併在一起

過了要一個月了,老實講以我們現在的進度就是沒有進度

雖然我有一直在試也在學怎麼用,但沒有點東西出來就是一樣感覺沒有在做

但學校學的不夠只好自己現學現賣 ,速度可能有點慢

f2blog和claroline他們安裝完在phpmyadmin裡頭的屬性名稱是無法直接在上面修改的

找了一下裝在電腦裡頭的資料夾不知道哪個才是他們裝進去的資料庫檔

難到要全部自己重建一個資料庫來拉了嗎

這就變成全部重做一套系統一樣了

再試看看吧!

查到:
資料庫內每個資料表會有三支檔案
副檔名如下:
MYD:資料表主檔
frm:索引定義檔
MYI:索引資料區

C:\AppServ\MySQL\data\cal 裡頭有這些資料檔

php & MySQL 相關網頁
http://b2ddoc.tnc.edu.tw/yh/php4book/index.php

推甄

 【推甄看的是學生對於學習是否「有興趣」,而不完全取決於「有能力」】


在知識+看見 


由此句話來勉勵自己嘗試努力下去!!


加油!

學習歷程

紀錄由此開始

紀錄各項進度

要學的 真的太多了

希望能夠簡單統整進度

加強自己