PIXNET Logo登入

Avril Note

跳到主文

電腦類筆記

部落格全站分類:不設分類

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 10月 22 週四 200911:55
  • SMARTY應用

PHP-SMARTY章節
使用無參數原生 PHP 函式
我們可以在樣版中使用許多原生的 PHP 函式 (但還是有例外) 來當做變數修飾函式,不過如果有些函式不需要參數時,我們可以用以下語法來呼叫:
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(76)

  • 個人分類:SMARTY
▲top
  • 10月 22 週四 200911:54
  • php使用mail函式相關亂碼問題

php使用mail函式相關亂碼問題 
$sub = "=?UTF-8?B?".base64_encode("信件標題")."?=";
$msg = "信件內容(支援html)";
$from="From:herbjoyce@gmail.com";
$from.="\nContent-Type:text/html;charset=utf-8";
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(193)

  • 個人分類:PHP-亂碼問題
▲top
  • 10月 22 週四 200911:53
  • PHP-利用GD函式庫,製作互動式圖片

 
[PHP] 利用GD函式庫,製作互動式圖片 
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(1,230)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:52
  • PHP-Excel檔案轉入的方式

 
[PHP] Excel檔案轉入的方式 
依然是專案管理系統的功能。因為之前Excel檔案的匯入是採用另存新檔後的csv匯入;因為以PHP來說,xls的Excel檔內含太多不可確定的格式,不如單純的逗號分隔檔案csv的資料來的純粹。不過站在使用者的角度,「另存新檔」本身就是一個多餘的動作,何況再轉存成csv檔後並不是直接按確定這麼簡單;因為Excel檔案格式的改變,所以會有M$貼心的提醒...總之最後導致整個匯入動作感覺很不友善。
儘管PTT PHP版一面倒的建議採用csv檔作資料的讀入處理,但是使用者才不管你這麼多勒!對使用者友善,就是對程式設計者的殘忍啊...然而,之所以會需要程式設計者,也是為了要對使用者更友善啊~所以,我找了一下網路上直接上傳Excel檔轉入資料的方法,目前找到二種試驗後都成功的方法:
第一種是利用PHP的COM()函數,呼叫PHP所在Server的M$ Office程式做處理。這個函數運用的感覺比較像是在寫bat檔,利用一連串指令在使用者不知情的狀況下完成想要達到的目的;當然,缺點就是這種方式只適用在M$ Windows的作業系統,而且Server上還必須要有M$ Office...
雖然說是直接上傳Excel檔轉入資料,但說穿了不過是利用COM()函數在使用者不知情的情況下另存成csv檔後,再作處理。以下是利用COM()函數另存新檔的程式碼:
$excel = new COM("excel.application") or die("Unable to instanciate excel");  //調用COM class,順便判斷是否能正常連結Excel應用程式
$excel->DisplayAlerts = 0;  //關閉開啟Excel時的警告
$strTemp = 'C:\\xxx\\xxx\\xxx\\csv\\'.$file_name;  //上傳成功檔案的絕對路徑
$excel->Workbooks->Open($strTemp);  //打開該檔案
$csvfile_name = substr($file_name, 0,strlen($file_name)-4).'.csv';  //利用原檔名將副檔名改寫成csv
$strTemp = 'C:\\xxx\\xxx\\xxx\\csv\\'.$csvfile_name;  //另存成csv檔後的絕對路徑
$excel->ActiveWorkbook->SaveAs($strTemp ,6);  //另存新檔,6代表csv逗號分隔檔案                     
$excel->Quit();  //退出Excel
//$excel->Release();  //釋放Excel所佔用的記憶體...吧?不過我的電腦必須註解掉這行才能動作,不知道為什麼
$excel = null;  //釋放Excel所佔用的記憶體...吧?其實我不太知道這跟上面有什麼不同
下來就是利用另存的csv檔對資料做處理囉!基本上作法沒有變,只是使用者可以省略自己另存的動作,而由Server代替轉存,使用者自然會覺得方便許多。可惜本公司的Server雖然是M$ Windows系統,但是並沒有安裝M$ Office;所以只能用第二種方法囉。
第二種方法是偉大的前輩事先做好的class:PHP-ExcelReader。PHP真不愧為網路程式設計的龍頭,許多功能其實前輩們都已經想好了!其實主要用的的檔案也只有二個:oleread.inc跟reader.php。而且因為已經封裝成class,使用方面也非常的簡單,以下式簡單的程式碼:
require_once '../Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();  //調用Spreadsheet_Excel_Reader class
$data->setOutputEncoding('utf-8');  //設定輸出的編碼,可直接選擇輸出為UTF8編碼
$data->read("../xxx/xxx/test.xls");  //檔案的路徑(可使用相對路徑)
error_reporting(E_ALL ^ E_NOTICE);  //錯誤顯示
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
    for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
        echo "\"".$data->sheets[0]['cells'][$i][$j]."\",";
    }
    echo "\n";
}
利用陣列的方式,擷取Excel檔裡面的資料;['numRows']列、['numCols']行、['cells']元素,搭配二維陣列取得。擷取出來的資料就可以直接對其作處理,非常容易使用!
關於Excel檔寫入也有另一個class:Spreadsheet_Excel_Writer。這個class需要pear的支援,所以使用前必須先安裝pear;這個部份我還沒有深入研究測試,就先行打住。另外還有一個class比較新,是支援M$ Office Excel 2007的格式:PHPExcel。這個class同時支援讀入跟寫出,不過目前只針對Excel 2007的版本作處理。目前我們公司仍以2003為主,所以這個版本也沒有深究。當然2007一定是未來的趨勢,所以以後應該還是有機會會接觸到吧。
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(1) 人氣(1,631)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:51
  • PHP-Excel檔案轉出的方式

 
[PHP] Excel檔案轉出的方式
 
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(5,511)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:50
  • php-匯出PDF

偶然在網路上看到介紹的文章:免費好用的 PDF Library 大蒐集。原本是想用來寫一個套印的小程式的,不過沒想到這玩意兒這麼難搞;因為中文編碼的關係。何況已經有人寫出類似的程式囉:藍色小舖PHP -> FPDF。還是稍微記錄一下使用的過程吧!
說到pdf檔產生,網路上似乎一面倒的推薦FPDF,其他pdf產生的class也幾乎是在它的基礎下衍生出來的~算是元老級的pdf class!另外對於中文的支援有提供chinese.zip、以及支援中文Unicode的chinese-unicode.zip;目前我試用中文Unicode的FPDF可以完整呈現!(未使用Unicode的FPDF不知道為什麼我的FoxitReader一片空白...)以下是範例的程式碼:
<?php
require('fpdf/chinese-unicode.php');  //include必要程式
$pdf=new PDF_Unicode();  //調用PDF_Unicode class
$pdf->Open();
$pdf->AddPage();
$pdf->AddUniCNShwFont('uni');
$pdf->SetFont('uni','',20);
 
$pdf->Write(10, "1234abcd學生名字\n伃綉堃亘");
$pdf->Ln();
$pdf->MultiCell (120, 10, "服\n務\n單\n位");
$pdf->Cell (240, 10, "本文用UTF8做為中文字編碼, 在這裡還是呼叫同樣的FPDF函數");
$pdf->Ln();
$pdf->Output();
?>
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(1,584)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:49
  • php-server參數介紹

$_SERVER參數
服務器變量 $_SERVER 詳解:
1、$_SESSION['PHP_SELF'] -- 獲取當前正在執行腳本的文件名
2、$_SERVER['SERVER_PROTOCOL'] -- 請求頁面時通信協議的名稱和版本。例如,“HTTP/1.0”。
3、$_SERVER['REQUEST_TIME'] -- 請求開始時的時間戳。從 PHP 5.1.0 起有效。和time函數效果一樣。
4、$_SERVER['argv'] -- 傳遞給該腳本的參數。我試了下,get方法可以得到$_SERVER['argv'][0];post方法無法給他賦值。
5、$_SERVER['SERVER_NAME'] -- 返回當前主機名。
6、$_SERVER['SERVER_SOFTWARE'] -- 服務器標識的字串,在響應請求時的頭信息中給出。 如Microsoft-IIS/6.0
7、$_SERVER['REQUEST_METHOD'] -- 訪問頁面時的請求方法。例如:“GET”、“HEAD”,“POST”,“PUT”。
8、$_SERVER['QUERY_STRING'] -- 查詢(query)的字符串(URL 中第一個問號 ? 之後的內容)。
9、$_SERVER['DOCUMENT_ROOT'] -- 當前運行腳本所在的文檔根目錄。在服務器配置文件中定義。 如E:\server
10、$_SERVER['HTTP_ACCEPT'] -- 當前請求的 Accept: 頭信息的內容。
11、$_SERVER['HTTP_ACCEPT_CHARSET'] -- 當前請求的 Accept-Charset: 頭信息的內容。例如:“iso-8859-1,*,utf-8”。
12、$_SERVER['HTTP_ACCEPT_ENCODING'] -- 當前請求的 Accept-Encoding: 頭信息的內容。例如:“gzip”。
13、$_SERVER['HTTP_ACCEPT_LANGUAGE'] -- 當前請求的 Accept-Language: 頭信息的內容。例如:“en”。
14、$_SERVER['HTTP_CONNECTION'] -- 當前請求的 Connection: 頭信息的內容。例如:“Keep-Alive”。
15、$_SERVER['HTTP_HOST'] -- 當前請求的 Host: 頭信息的內容。
16、$_SERVER['HTTP_REFERER'] -- 鏈接到當前頁面的前一頁面的 URL 地址。
17、$_SERVER['HTTP_USER_AGENT'] -- 返回用戶使用的瀏覽器信息。也可以使用 get_browser() 得到此信息。
18、$_SERVER['HTTPS'] -- 如果通過https訪問,則被設為一個非空的值,否則返回off.
19、$_SERVER['REMOTE_ADDR'] -- 正在瀏覽當前頁面用戶的 IP 地址。
20、$_SERVER['REMOTE_HOST'] -- 正在瀏覽當前頁面用戶的主機名。反向域名解析基於該用戶的 REMOTE_ADDR。如本地測試返回127.0.0.1
21、$_SERVER['REMOTE_PORT'] -- 用戶連接到服務器時所使用的端口。我在本機測試沒通過,不知道什麼原因。
22、$_SERVER['SCRIPT_FILENAME'] -- 當前執行腳本的絕對路徑名。如返回E:\server\index.php
23、$_SERVER['SERVER_ADMIN'] -- 該值指明了 Apache 服務器配置文件中的 SERVER_ADMIN 參數。如果腳本運行在一個虛擬主機上,則該值是那個虛擬主機的值
24、$_SERVER['SERVER_PORT'] -- 服務器所使用的端口。默認為“80”。如果使用 SSL 安全連接,則這個值為用戶設置的 HTTP 端口。
25、$_SERVER['SERVER_SIGNATURE'] -- 包含服務器版本和虛擬主機名的字符串。
26、$_SERVER['PATH_TRANSLATED'] --當前腳本所在文件系統(不是文檔根目錄)的基本路徑。這是在服務器進行虛擬到真實路徑的映像後的結果。 Apache 2 用 戶可以使用httpd.conf 中的 AcceptPathInfo On 來定義 PATH_INFO。
27、$_SERVER['SCRIPT_NAME'] -- 包含當前腳本的路徑。這在頁面需要指向自己時非常有用。__FILE__ 包含當前文件的絕對路徑和文件名(例如包含文件)。
28、$_SERVER['REQUEST_URI'] -- 訪問此頁面所需的 URI。例如,“/index.html”。
29、$_SERVER['PHP_AUTH_DIGEST'] -- 當作為 Apache 模塊運行時,進行 HTTP Digest 認證的過程中,此變量被設置成客戶端發送的“Authorization”HTTP 頭內容(以便作進一步的認證操作)。
30、$_SERVER['PHP_AUTH_USER']-- 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的用戶名。
31、$_SERVER['PHP_AUTH_PW'] -- 當 PHP 運行在 Apache 或 IIS(PHP 5 是 ISAPI)模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是用戶輸入的密碼。
32、$_SERVER['AUTH_TYPE']--當 PHP 運行在 Apache 模塊方式下,並且正在使用 HTTP 認證功能,這個變量便是認證的類型。
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(540)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:48
  • 用PHP把字串等距切開

用PHP把字串等距切開
2009年04月09日週四12:48
© 風痕影,採用「創用 CC 姓名標示-非商業性-禁止改作 2.5 台灣 授權條款」授權。
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(545)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:46
  • php-HTML過濾函式

HTML過濾函式
許多惡意語法都是建立在HTML上,PHP本身有提供轉換HTML碼的函數:htmlspecialchars()與htmlentities();其中htmlspecialchars()只會轉換HTML相關碼:
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(721)

  • 個人分類:php函式
▲top
  • 10月 22 週四 200911:45
  • 編碼問題----UTF-8轉BIG5

編碼問題----UTF-8轉BIG5
在Big5轉換成UTF-8方面,完全沒有問題;不過在UTF-8轉換成Big5方面,可就出現問題啦!因為UTF-8編碼對應的字遠比Big5編碼多,所以在一些特殊中文字的轉換上,如:堃、犇等字,iconv()函數就會出現錯誤啦!本來一直都沒有發現到這方面的問題,不過最近在公司專案管理系統上的Excel表轉出時,遇到有對方公司有「犇」這個字,讓iconv()函數發生錯誤而導致轉出的Excel檔案整個損壞的情況發生...Excel在正常輸入時是對應UTF-8編碼的,不過在轉出檔案時必須改為Big5編碼,不然UTF-8編碼的中文字會變成亂碼~無法自動判斷真是傷腦筋耶!
後來上網找了很久,都沒有令人滿意的答案;大家在轉出Excel檔時,幾乎都還是利用iconv()函數先轉成Big5編碼再轉出。後來我發現到另外一個函數:mb_convert_encoding(),似乎也是在處理編碼轉換的函數。試用之後雖然不存在的字還是不會自己生出來(如:堃、犇這些Big5編碼本來就沒有的字),但是轉不出來的字它會以「?」顯示,不會發生錯誤訊息,自然也就能正確的開啟轉出的Excel檔囉!雖然這並不是治本的方法,不過算是有稍微解決一些問題啦!
(繼續閱讀...)
文章標籤

avrilnote 發表在 痞客邦 留言(0) 人氣(7,635)

  • 個人分類:MYSQL
▲top
«1...3456»

個人資訊

avrilnote
暱稱:
avrilnote
分類:
不設分類
好友:
累積中
地區:

熱門文章

  • (29,704)細說HTML元素的ID和Name屬性的區別
  • (5,769)PHP中SESSION不能跨頁傳遞問題的解決辦法
  • (7,635)編碼問題----UTF-8轉BIG5
  • (3,687)抓取或備份整個網站-HTTrack
  • (439)smarty應用
  • (144)系統分析與設計說明文字
  • (5,203)利用PHPExcel匯出xlsx及xls檔設定說明

文章分類

  • javascript (1)
  • php-session (1)
  • php-上傳檔案 (1)
  • JQuery (0)
  • html編輯器 (1)
  • test (0)
  • php正規式 (0)
  • 圖型驗證碼 (0)
  • php函式-路徑類 (1)
  • 系統分析與設計 (1)
  • PHP-縮圖 (1)
  • 列印 (3)
  • 軟體介紹 (1)
  • PHP安全性 (1)
  • SMARTY (3)
  • PHP-亂碼問題 (1)
  • php函式 (11)
  • CSS (6)
  • MYSQL (5)
  • PHP設定 (2)
  • PHP (5)
  • JS (3)
  • W3C (1)
  • HTML (3)
  • AJAX (1)
  • 未分類文章 (1)

最新文章

  • 一系列server路徑
  • javacipt-另開視窗語法
  • php檔案上傳
  • 利用PHPExcel匯出xlsx及xls檔設定說明
  • phpexcel-將excel新增入mysql
  • css基本設定
  • 使用Javascript控制IE列印格式
  • 全選核取方塊-js
  • InnoDB 轉換步驟
  • mysql中文亂碼的原因

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: