
http://plus-now.com/?p=428
最近找到一個不錯的套件PHPExcel,這個套件解決我資料匯出的問題,以往我在匯出資料都是採用CSV檔,此種方法最簡單,只要用”
逗號”隔開就可輕易的匯出檔案,但此種方法也有著很多的缺點,以下列舉幾個我比
較常發生的缺點:
avrilnote 發表在 痞客邦 留言(1) 人氣(5,204)
法一:
try {
|
2 |
$hostname = "localhost"; |
3 |
$dbname = "test"; |
4 |
$username = "root"; |
5 |
$pw = "taiwan"; |
6 |
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname","$username","$pw"); |
7 |
$dbh->query('SET NAMES "utf8"'); |
8 |
} catch (PDOException $e) { |
9 |
echo "Failed to get DB handle: " . $e->getMessage() . "\n"; |
10 |
exit; |
11 |
} |
12 |
$res = $dbh->query("select * from tt order by t_id desc limit 1 ")->fetch(); |
13 |
$res[t_id] = intval(doubleval(substr("$res[t_id]",1)))+1; |
14 |
|
15 |
//phpExcel開始 |
16 |
ini_set('memory_limit','1024M'); |
17 |
require_once('phpExcel/Classes/PHPExcel/IOFactory.php'); |
18 |
$Excel = PHPExcel_IOFactory::createReader('Excel5'); |
19 |
$Excel = PHPExcel_IOFactory::load('test.xls'); |
20 |
//$objWorksheet = $objPHPExcel->getActiveSheet(); |
21 |
$sheet = $Excel->getSheet(0); |
22 |
$array_out[] = null; |
23 |
foreach ($sheet->getRowIterator() as $row_key => $row){ |
24 |
$cellIterator = $row->getCellIterator(); |
25 |
$cellIterator->setIterateOnlyExistingCells(false); |
26 |
foreach ($cellIterator as $cell_key => $cell){ |
27 |
$array_out[$row_key][$cell_key] = $cell->getValue().''; |
28 |
} |
29 |
} |
30 |
$length = count($array_out)-1; |
31 |
for($i=1;$i<=50;$i++){ |
32 |
for($j=0;$j<=1;$j++){ |
33 |
if($j==0){ $a = $array_out[$i][0]; } |
34 |
if($j==1){ $b = $array_out[$i][1]; } |
35 |
} |
36 |
$ins = $dbh->query("insert into tt (t_id,t_name,t_phone) values ('t$res[t_id]','$a','$b')"); |
37 |
} |
avrilnote 發表在 痞客邦 留言(1) 人氣(3,309)
session.save_path |
/tmp
|
session檔案存放路徑 |
可任意修改 |
session.name |
PHPSESSID
|
session 的名稱(類似cookie的變數名稱) |
可任意修改 |
session.save_handler |
files
|
處理session存取的模式(預設:檔案) |
可任意修改 |
session.auto_start |
0
|
自動啟動(預設:關) |
可任意修改 |
session.gc_probability |
1
|
「垃圾收集」(garbage collection,資源回收筒)的處理機率
|
可任意修改 |
session.gc_maxlifetime |
1440
|
「垃圾收集」(garbage collection,資源回收筒)被處理前的存活週期(預設:1440「秒」) |
可任意修改 |
session.serialize_handler |
php
|
處理連續資料方式的模式,本功能只有 WDDX 模組或 PHP 內部使用。內定值為 php。 |
可任意修改 |
session.cookie_lifetime |
0
|
session使用cookie的存活週期;以「秒」為單位(預設:隨瀏覽器關閉即消失) |
可任意修改 |
session.cookie_path |
/
|
session使用cookie的路徑(預設:與domain相同或根路徑) |
可任意修改 |
session.cookie_domain |
|
session使用cookie的網域名稱 |
可任意修改 |
session.cookie_secure |
|
session使用cookie的安全性 |
可任意修改 |
session.use_cookies |
1
|
session使用cookie的功能(預設:啟用) |
可任意修改 |
session.use_only_cookies |
0
|
僅使用cookie方式來傳遞session,不可利用URLs方式(預設:關) |
可任意修改 |
session.referer_check |
|
session在重新整理時檢查session是否還存在 |
可任意修改 |
session.entropy_file |
|
特別設定 session 值的檔案 |
可任意修改 |
session.entropy_length |
0
|
特別設定 session 值的長度(預設:關) |
可任意修改 |
session.cache_limiter |
nocache
|
使用cache限制器(預設:不用要cache) |
可任意修改 |
session.cache_expire |
180
|
使用cache存活時間 |
可任意修改 |
session.use_trans_sid |
0
|
使用sid值(session id)傳送模式(基於安全,預設:關閉) |
須在php.ini
或ttp.conf修改 |
url_rewriter.tags |
a=href,
area=href,
frame=src,
input=src,
form=fakeentry
|
網址(url)重新導向的標籤(tag) |
可任意修改 |
如果要改變這些設定,可直接修改 php.ini
再重新啟動 Web Server,也可以利用 ini_set( )函數來設定,設定方式如下:
ini_set ("參數名稱",
"新的參數值");
|
|
使用Session時,不外乎三個程序:
第一:啟動session功能 ─ 使用 session_start( ) 函數
第二:註冊session變數 ─ 使用 session_register( )
函數
(或用$_SESSION、$HTTP_SESSION_VARS )
第三:清除session變數或檔案 ─ 使用 session_unregister( )或
session_destroy( )函數
當然,如果想知道session的狀況,例如:
取得 session 的id值(與session檔案名稱,就是sess_後面接的32字元) ─ 使用
session_id ( )函數
查看要傳遞的變數是否已被註冊 ─ 使用 session_is_registerd( ) 函數
|
avrilnote 發表在 痞客邦 留言(0) 人氣(174)
在PHP下,關於session的討論很多,其實在PHP4中還有幾個函數是我們平時沒有注意到的。
下面我把它們介紹給大家吧。
其中的session_set_save_handler()可真是個好東西。
//********************
session_unset (PHP4 >= 4.0b4)
avrilnote 發表在 痞客邦 留言(0) 人氣(1,131)
拋開cookie使用session
PHP中SESSION不能跨頁傳遞問題的解決辦法
在PHP中使用過SESSION的朋友可能會碰到這麼一個問題,SESSION變量不能跨頁傳遞。這令我苦惱了好些日子,最終通過查資料思考並解決了這個問題。我認為,出現這個問題的原因有以下幾點:
1、客戶端禁用了cookie
2、瀏覽器出現問題,暫時無法存取cookie
3、php.ini中的session.use_trans_sid = 0或者編譯時沒有打開--enable-trans-sid選項
avrilnote 發表在 痞客邦 留言(0) 人氣(5,769)