SlideShare a Scribd company logo
徐熊瓶
CFM Migration to PHP
Training
•在此之前
•Mail System
•File IO
•XML Parser
•Web Services
在此之前在此之前
偶數加總到 10 並列出結果
2+4+6+8+10 = ?
ColdFusionColdFusion 怎麼寫怎麼寫 ??
1.1. <cfset result = 0><cfset result = 0>
2.2. <cfloop index="ii" from="1" to="10"><cfloop index="ii" from="1" to="10">
3.3. <cfif ii mod 2 eq 0><cfif ii mod 2 eq 0>
4.4. <cfset result = result + ii><cfset result = result + ii>
5.5. </cfif></cfif>
6.6. </cfloop></cfloop>
7.7. <cfoutput>Result : #result#</cfoutput><cfoutput>Result : #result#</cfoutput>
PHPPHP 又要怎麼寫又要怎麼寫 ??
1.1. <?<?
2.2. $result = 0;$result = 0;
3.3. for ($ii=0; $ii<=10; $ii++)for ($ii=0; $ii<=10; $ii++){{
4.4. if ($ii % 2 == 0)if ($ii % 2 == 0){{
5.5. $result = $result + $ii;$result = $result + $ii;
6.6. }}
7.7. }}
8.8. echo "Result : " . $result;echo "Result : " . $result;
9.9. ?>?>
不專業比較不專業比較
ColdFusionColdFusion PHPPHP
行數行數 77 99
字數字數 138138 9797
行平均字數每行平均字數每 19.719.7 10.710.7
比較結果比較結果 Orz...Orz...
勝勝
好吧!我承認這頁純粹是用來 錢的拖檯
Convert ColdFusion to PHPConvert ColdFusion to PHP
<cfset result = 0><cfset result = 0>
  ↓  ↓ (( 美少女變身美少女變身 ...)...)
$result = 0;$result = 0;
NotNot$$RResult = 0;esult = 0;
Convert ColdFusion to PHPConvert ColdFusion to PHP
<cfloop index="ii" from="<cfloop index="ii" from="11" to="10">" to="10">
芭樂芭樂芭樂芭樂芭樂芭樂 ..........
</cfloop></cfloop>
↓↓
       for ($ii=for ($ii=00; $ii<=10; $ii++); $ii<=10; $ii++){{
      芭樂芭樂芭樂芭樂芭樂芭樂 ..........
       }}
Convert ColdFusion to PHPConvert ColdFusion to PHP
     <cfif ii mod 2 eq 0><cfif ii mod 2 eq 0>
       芭樂芭樂芭樂芭樂芭樂芭樂 ..........
     </cfif></cfif>
↓↓
     if ($ii % 2 == 0)if ($ii % 2 == 0){{
     芭樂芭樂芭樂芭樂芭樂芭樂 ..........
     }}
Convert ColdFusion to PHPConvert ColdFusion to PHP
Convert ColdFusion to PHPConvert ColdFusion to PHP
等於等於 大於大於 小於小於 大於等於大於等於 小於等於小於等於
ColdFusion isColdFusion is
eqeq gtgt ltlt gtegte ltelte
PHP isPHP is
==== >> << >=>= <=<=
Convert ColdFusion to PHPConvert ColdFusion to PHP
<cfset result = result + ii><cfset result = result + ii>
↓↓
$result = $result + $ii;$result = $result + $ii;
Convert ColdFusion to PHPConvert ColdFusion to PHP
這樣也行這樣也行$result = $result + $ii;$result = $result + $ii;
↓↓
$result$result +=+= $ii;$ii;
Convert ColdFusion to PHPConvert ColdFusion to PHP
<cfoutput>Result : #result#</cfoutput><cfoutput>Result : #result#</cfoutput>
↓↓
echo "Result : "echo "Result : " .. $result;$result;
Convert ColdFusion to PHPConvert ColdFusion to PHP
OROR
echo "Result : $result ";echo "Result : $result ";
Convert ColdFusion to PHPConvert ColdFusion to PHP
But you can’tBut you can’t
echoecho ‘‘Result : $resultResult : $result ‘‘;;
      ↓↓ ( Output Result )( Output Result )
Result : $resultResult : $result
不可以!不可以!不可以!生氣~ 筆!~~丟
Convert ColdFusion to PHPConvert ColdFusion to PHP
ColdFusionColdFusion :說:說
看看 ............ 這邊, 背的語法可以醬子寫!拎這邊, 背的語法可以醬子寫!拎
是要在那邊A你是要在那邊A你 ~~ AA ~~~~ AA ~~~A~~~A 到民國幾年摳到民國幾年摳
<cfoutput><cfoutput>
第一行第一行 <br><br>
第二行第二行 <br><br>
第三行第三行 <br><br>
</cfoutput></cfoutput>
按 ................ 鍵盤,輸人不輸陣,輸陣歹看面
Convert ColdFusion to PHPConvert ColdFusion to PHP
PHPPHP :說:說
雖然雖然 OutputOutput 沒你沒你 ColdFusionColdFusion 方便,但我也是方便,但我也是
可以多行顯示的好 ?總比嗎可以多行顯示的好 ?總比嗎 OutputOutput 完後多一完後多一
堆不知那來的空白好多了!浪費網路資源的傢堆不知那來的空白好多了!浪費網路資源的傢
!伙!伙
echo “echo “
第一行第一行 <br><br>
第二行第二行 <br><br>
第三行第三行 <br><br>
進入主題
Mail System
Mail Server HowToMail Server HowTo
MTA/MUA/MDA 傻傻分不清
cfm to php training
不是他不是他
起
來
的
懦
夫
躲
起來的懦夫躲
起來的懦夫
躲
起來的懦夫躲
起來的懦夫
躲
起來的懦夫
躲
起來的懦夫躲
起來的懦夫躲
起來的懦夫
躲
起
來
的
懦
夫
躲
起來的懦夫
躲
起來的懦夫
躲
起來的懦夫
躲
起來的懦夫
躲
起
來
的
懦
夫
躲
起來的懦夫
躲
起來的懦夫
躲
懦夫救星懦夫救星
接著再來介紹接著再來介紹 PHPPHP 界中的懦夫救星之 子特效傻界中的懦夫救星之 子特效傻
藥藥
按三餐飯後服用保證智商變零,腦袋叭哩叭哩按三餐飯後服用保證智商變零,腦袋叭哩叭哩
看到阿爸叫阿母,見到阿母叫阿爸看到阿爸叫阿母,見到阿母叫阿爸
天天沒煩惱,快樂似神仙!天天沒煩惱,快樂似神仙!
服用後的症狀應該就和我寫這段話時的狀況差不多
懦夫救星懦夫救星
<? phpinfo(); ?><? phpinfo(); ?>
GOGOGO~ 好累好累好累 ~~~
PHP MailPHP Mail
<?php<?php
$to$to  == ‘ ‘australia.customer@104.com.twaustralia.customer@104.com.tw’’;;
$subject$subject  == ’ ’ 這是主旨這是主旨‘‘ ;;
$message$message  == ’ ’ 這是內容這是內容‘‘ ;;
if ( mail($to,if ( mail($to,  $subject,$subject,  $message) ){$message) ){
echoecho ““Send Mail okSend Mail ok””;;
};};
?>?>
Send Mail
PHP mail() functionPHP mail() function 好好用好好用
bool mail (bool mail (
string $to,string $to,
string $subject,string $subject,
string $messagestring $message
[[
, string $additional_headers, string $additional_headers
[, string $additional_parameters][, string $additional_parameters]
]]
)) 使用 mb_send_mail() 可能會更好
不能用不能用
但是我們但是我們 ........
使用寫 方式寄送郵件檔使用寫 方式寄送郵件檔
<?<?
$_mail_to = "chonpin.hsu@104.com.tw";$_mail_to = "chonpin.hsu@104.com.tw";
$_mail_subject = "php$_mail_subject = "php 寫 方式寄檔寫 方式寄檔 Mail";Mail";
$_mail_body = "$_mail_body = " 這是信件 容內這是信件 容內 ";";
$_str_mail =$_str_mail =
"From: chonpin.hsu@104.com.tw" . chr(10) ."From: chonpin.hsu@104.com.tw" . chr(10) .
"To: " . $_mail_to . chr(10) ."To: " . $_mail_to . chr(10) .
"Date: " . date("y.m.d H:i:s") . chr(10) ."Date: " . date("y.m.d H:i:s") . chr(10) .
"Subject: " . $_mail_subject . chr(10) . chr(10) ."Subject: " . $_mail_subject . chr(10) . chr(10) .
$_mail_body . chr(10);$_mail_body . chr(10);
$fp=fopen($fp=fopen('/opt/sendmail/oms03/send1/m_'.rand().'.hmail','w''/opt/sendmail/oms03/send1/m_'.rand().'.hmail','w'););
fwrite(fwrite($fp, $_str_mail$fp, $_str_mail););
fclosefclose($fp($fp););
?>?>
信件寄出信件寄出
打完收工打完收工
File IO
File IOFile IO 三部曲三部曲
1.1.開檔開檔
2.2.讀讀 // 寫檔寫檔
3.3.關檔關檔
fopen() functionfopen() function
resource fopen (resource fopen (
string $filenamestring $filename or URLor URL,,
string $modestring $mode
[, bool $use_include_path [, resource $context]][, bool $use_include_path [, resource $context]]
))
Example :Example :
$fp=fopen('/opt/sendmail/oms03/send1/mail.hmail', 'wb‘);$fp=fopen('/opt/sendmail/oms03/send1/mail.hmail', 'wb‘);
$fp=fopen('http://www.104.com.tw', 'wb‘);$fp=fopen('http://www.104.com.tw', 'wb‘);
fopen() using modefopen() using mode
mod
e
Description
r 僅讀取 ( 案並需存在檔 )
r+ 讀或寫 ( 案並需存在,寫入為覆蓋模式檔 )
w 僅寫入 ( 案不存在時將自動建立 案檔 檔 )
w+ 讀或寫 ( 案不存在時將自動建立 案檔 檔 )
a 僅寫入的附加模式 ( 案不存在時將自動建立 案檔 檔 )
a+ 讀或寫的附加模式 ( 案不存在時將自動建立 案檔 檔 )
x 僅寫入的建立模式 ( 案存在時將回傳檔 false 值 )
x+ 讀或寫的建立模式 ( 案存在時將回傳檔 false 值 )
fwrite() functionfwrite() function
int fwrite (int fwrite (
resource $handle,resource $handle,
string $stringstring $string
[, int $length][, int $length]
))
Example :Example :
fwrite($fp, $_str_mail);fwrite($fp, $_str_mail);
fread() functionfread() function
string fread (string fread (
resource $handleresource $handle
, int $length, int $length
))
Example :Example :
while ( !feof($fp) ) {while ( !feof($fp) ) {
$tmp .= fgets($fp$tmp .= fgets($fp, 1024, 1024););
}}
Max length : 8192
fgets() functionfgets() function
string fgets (string fgets (
resource $handleresource $handle
, int $length, int $length
))
Example :Example :
while ( !feof($fp) ) {while ( !feof($fp) ) {
$tmp .= fgets($fp$tmp .= fgets($fp, 1024, 1024););
}} fgets()
fread()fread() 和和 fgets()fgets() 的差異的差異
某文字 內容:檔某文字 內容:檔
abcdefgabcdefg
123456789123456789
freadfread($fp, 10);($fp, 10); fgetsfgets($fp, 10)($fp, 10)
abcdefgabcdefg
1212
abcdefgabcdefg
fclose() functionfclose() function
bool fclose ( resource $handle )bool fclose ( resource $handle )
Example :Example :
fclose($fp);fclose($fp);
這個最簡單,醬子就好了
XML Parse
同場加映:
WhatWhat’’s XMLs XML
可延伸標示可延伸標示 (( 記記 )) 語言語言
(( eXtensible Markup LanguageeXtensible Markup Language ,簡稱,簡稱
XMLXML ))
XMLXML 是一種數據存儲格式。它沒有定義是一種數據存儲格式。它沒有定義
保存什 數據,也沒有定義數據的格式。麽保存什 數據,也沒有定義數據的格式。麽
XMLXML 只是定義了標記和這些標記的屬性。只是定義了標記和這些標記的屬性。
WhatWhat’’s XMLs XML
XMLXML 被廣泛用來作為跨平台之間互動數據的形被廣泛用來作為跨平台之間互動數據的形
式式
,主要針對數據的內容,通過不同的格式化描述,主要針對數據的內容,通過不同的格式化描述
手段,可以完成最終的形式表達(生成對應的手段,可以完成最終的形式表達(生成對應的
HTMLHTML ,, PDFPDF 或者其他的 案格式)。檔或者其他的 案格式)。檔
XMLXML 設計用來傳送及攜帶資料資訊,不用來表設計用來傳送及攜帶資料資訊,不用來表
現現
或展示資料,或展示資料, HTMLHTML 語言則用來表現資料,所語言則用來表現資料,所
以以
XMLXML 長這樣長這樣
<jobs><jobs>
<job><job>
<company><company> 骨哥高讚塔骨哥高讚塔 </company></company>
<jobname><jobname> 大樓管理員大樓管理員 </jobname></jobname>
</job></job>
<job><job>
<company><company> 啞虎動物園啞虎動物園 </company></company>
<jobname><jobname> 售票員售票員 </jobname></jobname>
</job></job>
</jobs></jobs>
XML ParseXML Parse
<?<?
$url =$url =
'http://www.104.com.tw/hotjob.'http://www.104.com.tw/hotjob.xmlxml';';
$fp = fopen($url, 'r');$fp = fopen($url, 'r');
$tmp = '';$tmp = '';
while (!feof($fp)) {while (!feof($fp)) {
$tmp .= fgets($fp);$tmp .= fgets($fp);
}}
?>?> 掯 ..... 我真是他 X 的天才,現學現賣! 爆了!屌
XML ParseXML Parse
使用使用 File openFile open 來來 Parse XMLParse XML 也是種方也是種方
式式
先取得先取得 XMLXML 容後內容後內
再用再用 String functionString function 去做分析去做分析
聰明、利害、高啊聰明、利害、高啊 ~~~~~~~~
只是只是 ....................................
XML ParseXML Parse
  我不知道要等到那一天才能  我不知道要等到那一天才能
 得償所望 得償所望 ....
  得得得兒  得得得兒 ........
   得償所望   得償所望 ............
使用使用 DOMDOM 進行進行 XML ParseXML Parse
<?php<?php
$doc = new DOMDocument();$doc = new DOMDocument();
$doc->load( 'http://tw.news.yahoo.com/rss/feel_oddlyenough' );$doc->load( 'http://tw.news.yahoo.com/rss/feel_oddlyenough' );
$items$items = $doc->getElementsByTagName("item");= $doc->getElementsByTagName("item");
foreach (foreach ($items$items asas $item$item){){
$titles$titles == $item$item->getElementsByTagName("title");->getElementsByTagName("title");
$title$title == $titles$titles->item(0)->nodeValue;->item(0)->nodeValue;
echoecho $title$title.<br>";.<br>";
}}
?>?>
簡單、清楚又有型簡單、清楚又有型
使用使用 SAXSAX 進行進行 XML ParseXML Parse
SAXSAX 是輕量級的是輕量級的 XMLXML 解析器,擅長巨型解析器,擅長巨型
文件文件
!這是件好事嗯!這是件好事嗯
SAXSAX 的回調的回調 (callback)(callback) 是件非常麻煩的事是件非常麻煩的事
!麻煩聽起來就不是件好事噢!麻煩聽起來就不是件好事噢
Sample CodeSample Code 落落長落落長
Shit!!Shit!! 致命傷致命傷
使用正則表達式進行使用正則表達式進行 XML ParseXML Parse
資格不符資格不符
取消參賽權取消參賽權
XML ParseXML Parse 冠軍是冠軍是 ........
DOMDOM
SAXSAX 不用灰心,不用灰心, REXREX 還是愛你滴還是愛你滴
Web Services
什麼是什麼是 Web ServicesWeb Services
Web ServicesWeb Services 是一種服務元件,它透過是一種服務元件,它透過
WebWeb
通訊協定及資料格式的開放式標準通訊協定及資料格式的開放式標準 (( 如如
XMLXML 、、
HTTPHTTP 及及 SOAPSOAP 等等 )) 為其他應用程式提供服為其他應用程式提供服
務。務。
什麼是什麼是 Web ServicesWeb Services
• 提供服務的元件提供服務的元件
• 以以 WebWeb 的開放標準為基礎的開放標準為基礎
什麼是什麼是 Web ServicesWeb Services
什麼是什麼是 Web ServicesWeb Services
PHPPHP 如何呼叫如何呼叫 Web ServicesWeb Services
$content='';$content='';
$search_wsdl="$search_wsdl="http://search.e104.com.tw/servicehttp://search.e104.com.tw/service
s/IndexService?wsdls/IndexService?wsdl";";
$searchObj= array($searchObj= array(
'indexType' =>'pda.CustprofileOn','indexType' =>'pda.CustprofileOn',
'executeFrom' => 'PHP_TEST','executeFrom' => 'PHP_TEST',
'page' => '1', 'pageSize' => '10','page' => '1', 'pageSize' => '10',
'mainCondition' => '*‘'mainCondition' => '*‘
);); Search Web Services
PHPPHP 如何呼叫如何呼叫 Web ServicesWeb Services
$c = new SoapClient($search_wsdl);$c = new SoapClient($search_wsdl);
try {try {
$r = $c->search(array('config'=>$searchObj));$r = $c->search(array('config'=>$searchObj));
$content = $r->out;$content = $r->out;
} catch (SoapFault $exception) {} catch (SoapFault $exception) {
$content='$content=' 使用失敗使用失敗 ';';
}}
PHPPHP 如何呼叫如何呼叫 Web ServicesWeb Services
$doc = new DOMDocument();$doc = new DOMDocument();
$doc->$doc->loadXMLloadXML($content);($content);
$items = $doc->getElementsByTagName("ITEM");$items = $doc->getElementsByTagName("ITEM");
foreach ($items as $item){foreach ($items as $item){
$titles = $item->getElementsByTagName("NAME");$titles = $item->getElementsByTagName("NAME");
$title = $titles->item(0)->nodeValue;$title = $titles->item(0)->nodeValue;
echo $title."<br>";echo $title."<br>";
}}
Result
打完收工
九月 容內
SQLRelay
PHP Framework
Q&A

More Related Content

PPT
PHP & MySQL 教學
PDF
OpenWebSchool - 02 - PHP Part I
PDF
Maintainable PHP Source Code
PDF
advanced introduction to codeigniter
PPTX
Perl 4 sa
PDF
常見設計模式介紹
PDF
Mastering Mustache
PDF
LazyRecord: The Fast ORM for PHP
PHP & MySQL 教學
OpenWebSchool - 02 - PHP Part I
Maintainable PHP Source Code
advanced introduction to codeigniter
Perl 4 sa
常見設計模式介紹
Mastering Mustache
LazyRecord: The Fast ORM for PHP

What's hot (20)

PDF
PHPUnit 入門介紹
PPT
Json知识分享
PDF
Python xmlrpc-odoo
PDF
Ooredis
DOC
jsp基础速成精华讲解
PPT
Mongodb
 
PDF
OpenWebSchool - 03 - PHP Part II
PDF
Introduction to Parse JavaScript SDK
PDF
解決! メール送信
PPTX
PHPUnit + Xdebug 单元测试技术
PPT
Perl在nginx里的应用
PPT
PHP
PDF
dbug in mysql
PDF
那 Angular 那 AJAX 那 RESTful
PPT
深入了解Memcache
KEY
Flex 4.5 action data communication
PDF
JavaScript现代化排错实践
PDF
第一次用 PHPUnit 寫測試就上手
PDF
Patterns in Zend Framework
PPTX
Bash shell script 教學
PHPUnit 入門介紹
Json知识分享
Python xmlrpc-odoo
Ooredis
jsp基础速成精华讲解
Mongodb
 
OpenWebSchool - 03 - PHP Part II
Introduction to Parse JavaScript SDK
解決! メール送信
PHPUnit + Xdebug 单元测试技术
Perl在nginx里的应用
PHP
dbug in mysql
那 Angular 那 AJAX 那 RESTful
深入了解Memcache
Flex 4.5 action data communication
JavaScript现代化排错实践
第一次用 PHPUnit 寫測試就上手
Patterns in Zend Framework
Bash shell script 教學
Ad

Similar to cfm to php training (11)

PPT
2009 CSBB LAB 新生訓練
PDF
Phpconf 2011 introduction_to_codeigniter
PDF
PHP 語法基礎與物件導向
PPT
10 檔案說明與處理
PDF
CodeIgniter 2.0.X
PPT
2006/05/09 PHP留言板實作
PPT
2006/03/07 PHP網頁製作入門
PDF
PHP教材
PDF
iosdfoijehsogijlphpasjkdhiusghfripugsah;dfjkhs;kjfhi
PPT
2006/03/28 PHP通訊錄實作
PDF
第四章解答
2009 CSBB LAB 新生訓練
Phpconf 2011 introduction_to_codeigniter
PHP 語法基礎與物件導向
10 檔案說明與處理
CodeIgniter 2.0.X
2006/05/09 PHP留言板實作
2006/03/07 PHP網頁製作入門
PHP教材
iosdfoijehsogijlphpasjkdhiusghfripugsah;dfjkhs;kjfhi
2006/03/28 PHP通訊錄實作
第四章解答
Ad

More from Chonpin HSU (6)

PPT
reading group 成為卓越程式設計師的38項必修法則(20~23)
PPT
滑鼠設計輕鬆聊
PPT
training and sharing about clean code
PPT
algorithm research and sharing
PPT
TopDB data transfer
PPTX
Buy the way web project report
reading group 成為卓越程式設計師的38項必修法則(20~23)
滑鼠設計輕鬆聊
training and sharing about clean code
algorithm research and sharing
TopDB data transfer
Buy the way web project report

cfm to php training

  • 5. ColdFusionColdFusion 怎麼寫怎麼寫 ?? 1.1. <cfset result = 0><cfset result = 0> 2.2. <cfloop index="ii" from="1" to="10"><cfloop index="ii" from="1" to="10"> 3.3. <cfif ii mod 2 eq 0><cfif ii mod 2 eq 0> 4.4. <cfset result = result + ii><cfset result = result + ii> 5.5. </cfif></cfif> 6.6. </cfloop></cfloop> 7.7. <cfoutput>Result : #result#</cfoutput><cfoutput>Result : #result#</cfoutput>
  • 6. PHPPHP 又要怎麼寫又要怎麼寫 ?? 1.1. <?<? 2.2. $result = 0;$result = 0; 3.3. for ($ii=0; $ii<=10; $ii++)for ($ii=0; $ii<=10; $ii++){{ 4.4. if ($ii % 2 == 0)if ($ii % 2 == 0){{ 5.5. $result = $result + $ii;$result = $result + $ii; 6.6. }} 7.7. }} 8.8. echo "Result : " . $result;echo "Result : " . $result; 9.9. ?>?>
  • 7. 不專業比較不專業比較 ColdFusionColdFusion PHPPHP 行數行數 77 99 字數字數 138138 9797 行平均字數每行平均字數每 19.719.7 10.710.7 比較結果比較結果 Orz...Orz... 勝勝 好吧!我承認這頁純粹是用來 錢的拖檯
  • 8. Convert ColdFusion to PHPConvert ColdFusion to PHP <cfset result = 0><cfset result = 0>   ↓  ↓ (( 美少女變身美少女變身 ...)...) $result = 0;$result = 0;
  • 9. NotNot$$RResult = 0;esult = 0; Convert ColdFusion to PHPConvert ColdFusion to PHP
  • 10. <cfloop index="ii" from="<cfloop index="ii" from="11" to="10">" to="10"> 芭樂芭樂芭樂芭樂芭樂芭樂 .......... </cfloop></cfloop> ↓↓        for ($ii=for ($ii=00; $ii<=10; $ii++); $ii<=10; $ii++){{       芭樂芭樂芭樂芭樂芭樂芭樂 ..........        }} Convert ColdFusion to PHPConvert ColdFusion to PHP
  • 11.      <cfif ii mod 2 eq 0><cfif ii mod 2 eq 0>        芭樂芭樂芭樂芭樂芭樂芭樂 ..........      </cfif></cfif> ↓↓      if ($ii % 2 == 0)if ($ii % 2 == 0){{      芭樂芭樂芭樂芭樂芭樂芭樂 ..........      }} Convert ColdFusion to PHPConvert ColdFusion to PHP
  • 12. Convert ColdFusion to PHPConvert ColdFusion to PHP 等於等於 大於大於 小於小於 大於等於大於等於 小於等於小於等於 ColdFusion isColdFusion is eqeq gtgt ltlt gtegte ltelte PHP isPHP is ==== >> << >=>= <=<=
  • 13. Convert ColdFusion to PHPConvert ColdFusion to PHP <cfset result = result + ii><cfset result = result + ii> ↓↓ $result = $result + $ii;$result = $result + $ii;
  • 14. Convert ColdFusion to PHPConvert ColdFusion to PHP 這樣也行這樣也行$result = $result + $ii;$result = $result + $ii; ↓↓ $result$result +=+= $ii;$ii;
  • 15. Convert ColdFusion to PHPConvert ColdFusion to PHP <cfoutput>Result : #result#</cfoutput><cfoutput>Result : #result#</cfoutput> ↓↓ echo "Result : "echo "Result : " .. $result;$result;
  • 16. Convert ColdFusion to PHPConvert ColdFusion to PHP OROR echo "Result : $result ";echo "Result : $result ";
  • 17. Convert ColdFusion to PHPConvert ColdFusion to PHP But you can’tBut you can’t echoecho ‘‘Result : $resultResult : $result ‘‘;;       ↓↓ ( Output Result )( Output Result ) Result : $resultResult : $result 不可以!不可以!不可以!生氣~ 筆!~~丟
  • 18. Convert ColdFusion to PHPConvert ColdFusion to PHP ColdFusionColdFusion :說:說 看看 ............ 這邊, 背的語法可以醬子寫!拎這邊, 背的語法可以醬子寫!拎 是要在那邊A你是要在那邊A你 ~~ AA ~~~~ AA ~~~A~~~A 到民國幾年摳到民國幾年摳 <cfoutput><cfoutput> 第一行第一行 <br><br> 第二行第二行 <br><br> 第三行第三行 <br><br> </cfoutput></cfoutput> 按 ................ 鍵盤,輸人不輸陣,輸陣歹看面
  • 19. Convert ColdFusion to PHPConvert ColdFusion to PHP PHPPHP :說:說 雖然雖然 OutputOutput 沒你沒你 ColdFusionColdFusion 方便,但我也是方便,但我也是 可以多行顯示的好 ?總比嗎可以多行顯示的好 ?總比嗎 OutputOutput 完後多一完後多一 堆不知那來的空白好多了!浪費網路資源的傢堆不知那來的空白好多了!浪費網路資源的傢 !伙!伙 echo “echo “ 第一行第一行 <br><br> 第二行第二行 <br><br> 第三行第三行 <br><br>
  • 22. Mail Server HowToMail Server HowTo MTA/MUA/MDA 傻傻分不清
  • 25. 懦夫救星懦夫救星 接著再來介紹接著再來介紹 PHPPHP 界中的懦夫救星之 子特效傻界中的懦夫救星之 子特效傻 藥藥 按三餐飯後服用保證智商變零,腦袋叭哩叭哩按三餐飯後服用保證智商變零,腦袋叭哩叭哩 看到阿爸叫阿母,見到阿母叫阿爸看到阿爸叫阿母,見到阿母叫阿爸 天天沒煩惱,快樂似神仙!天天沒煩惱,快樂似神仙! 服用後的症狀應該就和我寫這段話時的狀況差不多
  • 26. 懦夫救星懦夫救星 <? phpinfo(); ?><? phpinfo(); ?> GOGOGO~ 好累好累好累 ~~~
  • 27. PHP MailPHP Mail <?php<?php $to$to  == ‘ ‘australia.customer@104.com.twaustralia.customer@104.com.tw’’;; $subject$subject  == ’ ’ 這是主旨這是主旨‘‘ ;; $message$message  == ’ ’ 這是內容這是內容‘‘ ;; if ( mail($to,if ( mail($to,  $subject,$subject,  $message) ){$message) ){ echoecho ““Send Mail okSend Mail ok””;; };}; ?>?> Send Mail
  • 28. PHP mail() functionPHP mail() function 好好用好好用 bool mail (bool mail ( string $to,string $to, string $subject,string $subject, string $messagestring $message [[ , string $additional_headers, string $additional_headers [, string $additional_parameters][, string $additional_parameters] ]] )) 使用 mb_send_mail() 可能會更好
  • 30. 使用寫 方式寄送郵件檔使用寫 方式寄送郵件檔 <?<? $_mail_to = "chonpin.hsu@104.com.tw";$_mail_to = "chonpin.hsu@104.com.tw"; $_mail_subject = "php$_mail_subject = "php 寫 方式寄檔寫 方式寄檔 Mail";Mail"; $_mail_body = "$_mail_body = " 這是信件 容內這是信件 容內 ";"; $_str_mail =$_str_mail = "From: chonpin.hsu@104.com.tw" . chr(10) ."From: chonpin.hsu@104.com.tw" . chr(10) . "To: " . $_mail_to . chr(10) ."To: " . $_mail_to . chr(10) . "Date: " . date("y.m.d H:i:s") . chr(10) ."Date: " . date("y.m.d H:i:s") . chr(10) . "Subject: " . $_mail_subject . chr(10) . chr(10) ."Subject: " . $_mail_subject . chr(10) . chr(10) . $_mail_body . chr(10);$_mail_body . chr(10); $fp=fopen($fp=fopen('/opt/sendmail/oms03/send1/m_'.rand().'.hmail','w''/opt/sendmail/oms03/send1/m_'.rand().'.hmail','w');); fwrite(fwrite($fp, $_str_mail$fp, $_str_mail);); fclosefclose($fp($fp);); ?>?>
  • 33. File IOFile IO 三部曲三部曲 1.1.開檔開檔 2.2.讀讀 // 寫檔寫檔 3.3.關檔關檔
  • 34. fopen() functionfopen() function resource fopen (resource fopen ( string $filenamestring $filename or URLor URL,, string $modestring $mode [, bool $use_include_path [, resource $context]][, bool $use_include_path [, resource $context]] )) Example :Example : $fp=fopen('/opt/sendmail/oms03/send1/mail.hmail', 'wb‘);$fp=fopen('/opt/sendmail/oms03/send1/mail.hmail', 'wb‘); $fp=fopen('http://www.104.com.tw', 'wb‘);$fp=fopen('http://www.104.com.tw', 'wb‘);
  • 35. fopen() using modefopen() using mode mod e Description r 僅讀取 ( 案並需存在檔 ) r+ 讀或寫 ( 案並需存在,寫入為覆蓋模式檔 ) w 僅寫入 ( 案不存在時將自動建立 案檔 檔 ) w+ 讀或寫 ( 案不存在時將自動建立 案檔 檔 ) a 僅寫入的附加模式 ( 案不存在時將自動建立 案檔 檔 ) a+ 讀或寫的附加模式 ( 案不存在時將自動建立 案檔 檔 ) x 僅寫入的建立模式 ( 案存在時將回傳檔 false 值 ) x+ 讀或寫的建立模式 ( 案存在時將回傳檔 false 值 )
  • 36. fwrite() functionfwrite() function int fwrite (int fwrite ( resource $handle,resource $handle, string $stringstring $string [, int $length][, int $length] )) Example :Example : fwrite($fp, $_str_mail);fwrite($fp, $_str_mail);
  • 37. fread() functionfread() function string fread (string fread ( resource $handleresource $handle , int $length, int $length )) Example :Example : while ( !feof($fp) ) {while ( !feof($fp) ) { $tmp .= fgets($fp$tmp .= fgets($fp, 1024, 1024);); }} Max length : 8192
  • 38. fgets() functionfgets() function string fgets (string fgets ( resource $handleresource $handle , int $length, int $length )) Example :Example : while ( !feof($fp) ) {while ( !feof($fp) ) { $tmp .= fgets($fp$tmp .= fgets($fp, 1024, 1024);); }} fgets()
  • 39. fread()fread() 和和 fgets()fgets() 的差異的差異 某文字 內容:檔某文字 內容:檔 abcdefgabcdefg 123456789123456789 freadfread($fp, 10);($fp, 10); fgetsfgets($fp, 10)($fp, 10) abcdefgabcdefg 1212 abcdefgabcdefg
  • 40. fclose() functionfclose() function bool fclose ( resource $handle )bool fclose ( resource $handle ) Example :Example : fclose($fp);fclose($fp); 這個最簡單,醬子就好了
  • 42. WhatWhat’’s XMLs XML 可延伸標示可延伸標示 (( 記記 )) 語言語言 (( eXtensible Markup LanguageeXtensible Markup Language ,簡稱,簡稱 XMLXML )) XMLXML 是一種數據存儲格式。它沒有定義是一種數據存儲格式。它沒有定義 保存什 數據,也沒有定義數據的格式。麽保存什 數據,也沒有定義數據的格式。麽 XMLXML 只是定義了標記和這些標記的屬性。只是定義了標記和這些標記的屬性。
  • 43. WhatWhat’’s XMLs XML XMLXML 被廣泛用來作為跨平台之間互動數據的形被廣泛用來作為跨平台之間互動數據的形 式式 ,主要針對數據的內容,通過不同的格式化描述,主要針對數據的內容,通過不同的格式化描述 手段,可以完成最終的形式表達(生成對應的手段,可以完成最終的形式表達(生成對應的 HTMLHTML ,, PDFPDF 或者其他的 案格式)。檔或者其他的 案格式)。檔 XMLXML 設計用來傳送及攜帶資料資訊,不用來表設計用來傳送及攜帶資料資訊,不用來表 現現 或展示資料,或展示資料, HTMLHTML 語言則用來表現資料,所語言則用來表現資料,所 以以
  • 44. XMLXML 長這樣長這樣 <jobs><jobs> <job><job> <company><company> 骨哥高讚塔骨哥高讚塔 </company></company> <jobname><jobname> 大樓管理員大樓管理員 </jobname></jobname> </job></job> <job><job> <company><company> 啞虎動物園啞虎動物園 </company></company> <jobname><jobname> 售票員售票員 </jobname></jobname> </job></job> </jobs></jobs>
  • 45. XML ParseXML Parse <?<? $url =$url = 'http://www.104.com.tw/hotjob.'http://www.104.com.tw/hotjob.xmlxml';'; $fp = fopen($url, 'r');$fp = fopen($url, 'r'); $tmp = '';$tmp = ''; while (!feof($fp)) {while (!feof($fp)) { $tmp .= fgets($fp);$tmp .= fgets($fp); }} ?>?> 掯 ..... 我真是他 X 的天才,現學現賣! 爆了!屌
  • 46. XML ParseXML Parse 使用使用 File openFile open 來來 Parse XMLParse XML 也是種方也是種方 式式 先取得先取得 XMLXML 容後內容後內 再用再用 String functionString function 去做分析去做分析 聰明、利害、高啊聰明、利害、高啊 ~~~~~~~~ 只是只是 ....................................
  • 47. XML ParseXML Parse   我不知道要等到那一天才能  我不知道要等到那一天才能  得償所望 得償所望 ....   得得得兒  得得得兒 ........    得償所望   得償所望 ............
  • 48. 使用使用 DOMDOM 進行進行 XML ParseXML Parse <?php<?php $doc = new DOMDocument();$doc = new DOMDocument(); $doc->load( 'http://tw.news.yahoo.com/rss/feel_oddlyenough' );$doc->load( 'http://tw.news.yahoo.com/rss/feel_oddlyenough' ); $items$items = $doc->getElementsByTagName("item");= $doc->getElementsByTagName("item"); foreach (foreach ($items$items asas $item$item){){ $titles$titles == $item$item->getElementsByTagName("title");->getElementsByTagName("title"); $title$title == $titles$titles->item(0)->nodeValue;->item(0)->nodeValue; echoecho $title$title.<br>";.<br>"; }} ?>?> 簡單、清楚又有型簡單、清楚又有型
  • 49. 使用使用 SAXSAX 進行進行 XML ParseXML Parse SAXSAX 是輕量級的是輕量級的 XMLXML 解析器,擅長巨型解析器,擅長巨型 文件文件 !這是件好事嗯!這是件好事嗯 SAXSAX 的回調的回調 (callback)(callback) 是件非常麻煩的事是件非常麻煩的事 !麻煩聽起來就不是件好事噢!麻煩聽起來就不是件好事噢 Sample CodeSample Code 落落長落落長 Shit!!Shit!! 致命傷致命傷
  • 50. 使用正則表達式進行使用正則表達式進行 XML ParseXML Parse 資格不符資格不符 取消參賽權取消參賽權
  • 51. XML ParseXML Parse 冠軍是冠軍是 ........ DOMDOM SAXSAX 不用灰心,不用灰心, REXREX 還是愛你滴還是愛你滴
  • 53. 什麼是什麼是 Web ServicesWeb Services Web ServicesWeb Services 是一種服務元件,它透過是一種服務元件,它透過 WebWeb 通訊協定及資料格式的開放式標準通訊協定及資料格式的開放式標準 (( 如如 XMLXML 、、 HTTPHTTP 及及 SOAPSOAP 等等 )) 為其他應用程式提供服為其他應用程式提供服 務。務。
  • 54. 什麼是什麼是 Web ServicesWeb Services • 提供服務的元件提供服務的元件 • 以以 WebWeb 的開放標準為基礎的開放標準為基礎
  • 57. PHPPHP 如何呼叫如何呼叫 Web ServicesWeb Services $content='';$content=''; $search_wsdl="$search_wsdl="http://search.e104.com.tw/servicehttp://search.e104.com.tw/service s/IndexService?wsdls/IndexService?wsdl";"; $searchObj= array($searchObj= array( 'indexType' =>'pda.CustprofileOn','indexType' =>'pda.CustprofileOn', 'executeFrom' => 'PHP_TEST','executeFrom' => 'PHP_TEST', 'page' => '1', 'pageSize' => '10','page' => '1', 'pageSize' => '10', 'mainCondition' => '*‘'mainCondition' => '*‘ );); Search Web Services
  • 58. PHPPHP 如何呼叫如何呼叫 Web ServicesWeb Services $c = new SoapClient($search_wsdl);$c = new SoapClient($search_wsdl); try {try { $r = $c->search(array('config'=>$searchObj));$r = $c->search(array('config'=>$searchObj)); $content = $r->out;$content = $r->out; } catch (SoapFault $exception) {} catch (SoapFault $exception) { $content='$content=' 使用失敗使用失敗 ';'; }}
  • 59. PHPPHP 如何呼叫如何呼叫 Web ServicesWeb Services $doc = new DOMDocument();$doc = new DOMDocument(); $doc->$doc->loadXMLloadXML($content);($content); $items = $doc->getElementsByTagName("ITEM");$items = $doc->getElementsByTagName("ITEM"); foreach ($items as $item){foreach ($items as $item){ $titles = $item->getElementsByTagName("NAME");$titles = $item->getElementsByTagName("NAME"); $title = $titles->item(0)->nodeValue;$title = $titles->item(0)->nodeValue; echo $title."<br>";echo $title."<br>"; }} Result
  • 62. Q&A