2012年9月27日 星期四

PHP 也可以寫排程

一般我們在寫網頁腳本相關的程式時,都會因為HTTP 給我們一種,連線完取得資料後「即斷線」的觀念,因此很直覺的就認為 PHP 不可能來做一些排程的工作。

錯~

在參考了 Allen J 大的「用 PHP 寫的排程 (ignore_user_abort)」這篇之後,我對PHP所能處理的事只僅限於一般HTTP所能處理的觀念就此改觀了。

底下將為您介紹透過 ignore_user_abort 來寫排程,並且避開 PHP 的垃圾處理機制的缺點。


2012年9月15日 星期六

PHP的中文字串長度


先前在計設資料庫程式的時候,為了防止一般使用者能隨意填值到資料庫
(嚴重的話,將引發 XSS 或 SQL Injection 的問題)

所以很"搞剛"(台) 的為每個欄位做了驗證函式。

例如:資料庫中的會員姓名,一般限制使用者最多只能填20個字

「日本人也只有五個字,設限20個字很多了吧!」
「......」
「 什麼?英文名字?放心啦!這網站是在台灣使用的!就強迫他用中文名字好啦」 = =+


PHP + MySQL 的亂碼解決方法


首先,先來瞭解一下,為什麼會有亂碼!

網頁檔案本身的編碼,以及 HTML 檔案 Metadata 定義的編碼不同:

由於大部分的HTML網頁檔案本身都是由 Dreamweaver、Eclipse、甚至於是微軟的記事本等軟體所產生出來的。其所使用的編碼有可能預設為 big5、utf-8 或其它不同的編碼。假如這個HTML網頁檔案本身是big5,且在HTML的HEAD語法中又將編碼設定為:

<meta http-equiv="Content-type" content="text/html; charset=utf-8">

那麼,當瀏覽器(IE、Firefox、Chrome....)在開啟這個HTML網頁時,第一印象就根據這個meta中所描述的utf-8編碼來顯示這個網頁。

當瀏覽器以utf-8的編碼來讀取big5的檔案編碼時,恭喜您,一堆亂碼將出現在您眼前


PHP 的樣版引擎?


前幾天無意間在書局看到了一本「Smarty」的書籍!

主要說明如何讓PHP也能寫出一個MVC的程式來,好讓網頁設計師及程式設計師彼此之間有更好的溝通。

主要的做法是先開一個主要的 main.php 檔 (此部分由程式設計師維護)
<?php
    $num1 = 3;
    $num2 = 6;
    $num3 = $num1 + $num2;

    include("index.htm");
?>