$name = addslashes(stripslashes($_POST['name']));//主要是反轉(zhuǎn)義用戶輸入的個(gè)別轉(zhuǎn)義字符,然后統(tǒng)一轉(zhuǎn)義;
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀,專業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都效果圖設(shè)計(jì)小微創(chuàng)業(yè)公司專業(yè)提供成都定制網(wǎng)頁設(shè)計(jì)營(yíng)銷網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁布局、功能開發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
$password = $_POST['pwd'];
$content = $name."\t".$password."\r\n";
$f = fopen('test.txt', 'a+');//我猜測(cè)你應(yīng)該是想累加存儲(chǔ),在文件的結(jié)尾插入,所以用了fopen和a+,
fwrite($f, $content);
fclose($f);
在提取post中的之前,嚴(yán)謹(jǐn)點(diǎn)可以加上空值判斷
假如你已經(jīng)定義了get請(qǐng)求方法
$r = get('網(wǎng)址');
file_put_contents('保存的文件名',$r);
構(gòu)造函數(shù):
function down_xls($data, $keynames, $name='dataxls') {
$xls[] = "htmlmeta http-equiv=content-type content=\"text/html; charset=UTF-8\"bodytable border='1'";
$xls[] = "trtdID/tdtd" . implode("/tdtd", array_values($keynames)) . '/td/tr';
foreach($data As $o) {
$line = array(++$index);
foreach($keynames AS $k=$v) {
$line[] = $o[$k];
}
$xls[] = 'trtd'. implode("/tdtd", $line) . '/td/tr';
}
$xls[] = '/table/body/html';
$xls = join("\r\n", $xls);
header('Content-Disposition: attachment; filename="'.$name.'.xls"');
die(mb_convert_encoding($xls,'UTF-8','UTF-8'));
}
函數(shù)引用:
if(strval($_GET['download'])){
$orders = DB::LimitQuery('order', array(
'condition' = $condition,
'order' = 'ORDER BY id DESC',
));
if (!$orders) die('沒有符合條件的記錄');
$name = 'order_'.date('Ymd');
$kn = array( //excel表列名與數(shù)據(jù)字段的對(duì)應(yīng)關(guān)系
'id' = '訂單號(hào)',
'price' = '訂單金額',
'card' = '代金券',
'create_time' = '下單時(shí)間',
'pay_time' = '付款時(shí)間',
);
foreach( $orders AS $one ){
$one['create_time'] =date("Y-m-d",$one['create_time']);
$one['pay_time']=date("Y-m-d",$one['pay_time']);
$eorders[] = $one;
}
down_xls($eorders, $kn, $name);
}
//記錄返回值
? ? $write_data_a = [
? ? ? ? 'html_url'? =? $getUrl,
? ? ? ? 'ip'? ? = $this-get_real_ip(),
? ? ? ? 'time'? =? date("Y-m-d H:i:s",time()),
? ? ? ? 'res'?? = $response
? ? ];
//轉(zhuǎn)化為JSON
? ? $write_data_a = json_encode($write_data_a) . '||' . "\n";
? ? $date = date("Y-m-d", time());
//項(xiàng)目路徑目錄,判斷是否存在,不存在則創(chuàng)建
? ? $lujing = "./360_mobile_res_sd";
? ? if(!is_dir($lujing)){
? ? ? ? mkdir(iconv("UTF-8", "GBK", $lujing),0777,true);
? ? }
//文件,判斷是否存在,不存在則創(chuàng)建
? ? $TxtFileName = "./360_mobile_res_sd/" . $date . "_2.txt";
? ? //以讀寫方式打?qū)懼付ㄎ募?,如果文件不存則創(chuàng)建
? ? if(file_exists($TxtFileName))
? ? {
//存在,追加寫入內(nèi)容
? ? ? ? file_put_contents($TxtFileName, $write_data_a, FILE_APPEND);
? ? }
? ? else
? ? {
//不存在,創(chuàng)建并寫入
? ? ? ? if( ($TxtRes=fopen ($TxtFileName,"w+")) === FALSE){
? ? ? ? ? ? exit();
? ? ? ? }
? ? ? ? if(!fwrite ($TxtRes,$write_data_a)){ //將信息寫入文件
? ? ? ? ? ? fclose($TxtRes);
? ? ? ? ? ? exit();
? ? ? ? }
? ? ? ? fclose ($TxtRes); //關(guān)閉指針
? ? }
把你要保存的數(shù)據(jù)序列化一下,保存到文本中,如果需要修改,則從文本中取出,在反序列化化,在修改后,在序列化一下,保存到文本中。
文本的讀寫 參考fopen 等函數(shù)
當(dāng)然是在服務(wù)器端,但不是保存在內(nèi)存中,而是保存在文件或數(shù)據(jù)庫中。
默認(rèn)情況下,php.ini
中設(shè)置的
SESSION
保存方式是
files(session.save_handler
=
files),即使用讀寫文件的方式保存
SESSION
數(shù)據(jù),而
SESSION
文件保存的目錄由
session.save_path
指定,文件名以
sess_
為前綴,后跟
SESSION
ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的數(shù)據(jù)即是序列化之后的
SESSION
數(shù)據(jù)了。
如果訪問量大,可能產(chǎn)生的
SESSION
文件會(huì)比較多,這時(shí)可以設(shè)置分級(jí)目錄進(jìn)行
SESSION
文件的保存,效率會(huì)提高很多,設(shè)置方法
為:session.save_path="N;/save_path",N
為分級(jí)的級(jí)數(shù),save_path
為開始目錄。
當(dāng)寫入
SESSION
數(shù)據(jù)的時(shí)候,PHP
會(huì)獲取到客戶端的
SESSION_ID,然后根據(jù)這個(gè)
SESSION
ID
到指定的
SESSION
文件保存目錄中找到相應(yīng)的
SESSION
文件,不存在則創(chuàng)建之,最后將數(shù)據(jù)序列化之后寫入文件。讀取
SESSION
數(shù)據(jù)是也是類似的操作流程,對(duì)讀出來的數(shù)據(jù)需要進(jìn)行解序列化,生成相應(yīng)的
SESSION
變量。