一個很好的 parse CSV file 的 class
http://code.google.com/p/parsecsv-for-php/
PHP MySQL Shopping Cart Tutorial
一個學習 php 的好 sample code
http://www.phpwebcommerce.com/index.php
最近在研究 design pattern,
因為對 php 最熟, 理解比較容易,這個 site 有 詳盡的例子
http://www.phppatterns.com/docs/?idx=blogs
一理通, 百理明, design pattern 對 java , c# 也是 一樣的吧.
一些簡單的步驟即可。
$raw_text = file_get_contents( "http://www.google.com"); $utf8_text = iconv( $encoding, "utf-8", $raw_text ); $utf8_text = html_entity_decode( $utf8_text, ENT_QUOTES, "UTF-8" );
在 oReilly 的書上看到一個例子, 幾個 function retrieve URL 很有用。
-
function getURL ($pURL) {
-
$_data = null;
-
if ($_http = fopen ($pURL, "r")) {
-
-
while ( !feof ($_http)) {
-
$_data .=fgets ($_http, 1024);
-
-
}
-
fclose ($_http);
-
}
-
return ($_data);
-
}
-
function cleanString ($pString) {
-
$_data = str_replace ( array( chr(10), chr(13), chr(9)), chr(32), $pString);
-
while ( strpos( $_data, str_repeat( chr(32), 2), 0) != false) {
-
$_data = str_replace ( str_repeat(chr(32),2), chr(32), $_data);
-
}
-
return trim($_data);
-
}
-
function getBlock ($pStart, $pStop, $pSource, $pPrefix = true) {
-
$_data = null;
-
$_start = strpos(strtolower($pSource), strtolower($pStart),0);
-
$_start = ( $pPrefix ==false) ? $_start + strlen($pStart):$_start;
-
$_stop = strpos ( strtolower ($pSource), strtolower ($pStop), $_start);
-
if ($_start > strlen($pelement) && $_stop >$_start ) {
-
$_data = trim( substr( $pSource, $_start, $_stop - $_start ));
-
}
-
return ($_data);
-
}
-
-
function getElement($pElement, $pSource) {
-
$_data = null;
-
$pElement = strtolower($pElement);
-
$_start=strpos(strtolower($pSource), chr(60) . $pElement, 0);
-
$_start=strpos($pSource, chr(62), $_start ) +1;
-
$_stop = strpos ( strtolower($pSource), "<!–" . $pElement . chr(62), $_start );
-
if ($_start–>strlen($pElement) && $_stop > $_start) {
-
$_data = trim (substr($pSource, $_start, $_stop - $_start));
-
-
}
-
return ($_data);
-
}
工作需要把一個 folder 裡的 text file 轉成 html
這個網站有sample code, 只要寫個function read directory,
把 filename 放到 array 裡即可。
做 backend DB 常常要處理 single quote, double quote 在 sql 裡的問題,
尤其是php 不知server 是否 開啟了 get_magic_quotes_gpc() 設定,
所以用addslashes並不是好方法.
在網上找到這個處理方法, 很不錯,或者用 str_replace把
single quote, double quote 變成 htmlentities。
if(!get_magic_quotes_gpc())
{
$_GET = array_map('mysql_real_escape_string', $_GET);
$_POST = array_map('mysql_real_escape_string', $_POST);
$_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}else
{
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
$_GET = array_map('mysql_real_escape_string', $_GET);
$_POST = array_map('mysql_real_escape_string', $_POST);
$_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
用 PHP 內置 function filegetcsv 去 parse CSV file, 常有 big5, utf8 亂碼問題。
最後還是用原始方法, 逐行 read, 再用 explode 變成2d array. 才解決到問題。
$dataArr = file(data.txt); for ($i=0;$i<count($dataArr);$i++){ $line = explode("~", $dataArr[$i]); foreach($line as $value) { $finalData[$i][] = $value; } }