PHP 中的fgets() 函數(shù)可以實(shí)現(xiàn)

成都創(chuàng)新互聯(lián)成立10年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、申請(qǐng)域名、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開(kāi)快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
fgets() 函數(shù)從文件指針中讀取一行。
fgets(file,length)
參數(shù)說(shuō)明
file 必需。規(guī)定要讀取的文件。
length 可選。規(guī)定要讀取的字節(jié)數(shù)。默認(rèn)是 1024 字節(jié)。
詳細(xì)說(shuō)明
從 file 指向的文件中讀取一行并返回長(zhǎng)度最多為 length - 1 字節(jié)的字符串。碰到換行符(包括在返回值中)、EOF 或者已經(jīng)讀取了 length - 1 字節(jié)后停止(要看先碰到那一種情況)。如果沒(méi)有指定 length,則默認(rèn)為 1K,或者說(shuō) 1024 字節(jié)。
若失敗,則返回 false。
注釋:length 參數(shù)從 PHP 4.2.0 起成為可選項(xiàng),如果忽略,則行的長(zhǎng)度被假定為 1024 字節(jié)。從 PHP 4.3 開(kāi)始,忽略掉 length 將繼續(xù)從流中讀取數(shù)據(jù)直到行結(jié)束。如果文件中的大多數(shù)行都大于 8 KB,則在腳本中指定最大行的長(zhǎng)度在利用資源上更為有效。
從 PHP 4.3 開(kāi)始本函數(shù)可以安全用于二進(jìn)制文件。早期的版本則不行。
如果碰到 PHP 在讀取文件時(shí)不能識(shí)別 Macintosh 文件的行結(jié)束符,可以激活 auto_detect_line_endings 運(yùn)行時(shí)配置選項(xiàng)。
例如:
test.txt 文本內(nèi)容如下:
Hello, this is a test file.
There are three lines here.
This is the last line.
?php
//讀取一行
$file = fopen("test.txt","r");
echo fgets($file);
fclose($file);
?
輸出:
Hello, this is a test file.
?php
//循環(huán)讀取每一行
$file = fopen("test.txt","r");
while(! feof($file)) {
echo $str = fgets($file). "br /";
//這里可以逐行的寫(xiě)入數(shù)據(jù)庫(kù)中
//mysql_query("insert into table(id,contents) values(NULL,'".$str."')");
}
fclose($file);
?
輸出:
Hello, this is a test file.
There are three lines here.
This is the last line.
我先把我建立的數(shù)據(jù)發(fā)出來(lái)(只是為了測(cè)試,可能不是很?chē)?yán)謹(jǐn)):
首先是創(chuàng)建數(shù)據(jù)表(mysql中命令行):
create?table?fangjia(
id?int(4)?not?null?primary?key?auto_increment,
begin?date?not?null,
end?date?not?null);
然后是插入測(cè)試數(shù)據(jù):
mysql?insert?into?fangjia?(begin,end)?values?('2011-02-13','2011-02-18'),('2011
-02-22','2011-02-28'),('2011-03-12','2011-03-16');
目前數(shù)據(jù)表有的數(shù)據(jù)為:
mysql?select?*?from?fangjia;
+----+------------+------------+
|?id?|?begin??????|?end????????|
+----+------------+------------+
|??1?|?2011-02-13?|?2011-02-18?|
|??2?|?2011-02-22?|?2011-02-28?|
|??3?|?2011-03-12?|?2011-03-16?|
+----+------------+------------+
下面是php代碼:
header('Content-type:text/html;charset="utf-8"');
$con = mysql_connect('localhost','root','');//這里根據(jù)你自己的情況來(lái)寫(xiě)
mysql_select_db('test',$con);//這里根據(jù)你自己的情況來(lái)寫(xiě)
$queryBegin = "2011-02-16";//這是要查詢的開(kāi)始日期
$queryEnd = "2011-03-15";//這里是要查詢的結(jié)束日期
$ab = mysql_query("select?*?from?fangjia?where?begin?='{$queryEnd}'?and?end?='{$queryBegin}'");//只有數(shù)據(jù)庫(kù)中,begin字段的值?小于等于?開(kāi)始日期,并且end字段的值?大于等于?結(jié)束日期的時(shí)候,才是符合條件的
while($value=mysql_fetch_assoc($ab)){
$beginDate = strtotime($value['begin'])strtotime($queryBegin)???strtotime($value['begin'])?:strtotime($queryBegin);//轉(zhuǎn)化為時(shí)間戳來(lái)運(yùn)算,如果字段begin的日期大于開(kāi)始日期,那么計(jì)算時(shí)使用的開(kāi)始日期就是end字段的值,否則為開(kāi)始日期的值
$endDate = strtotime($value['end'])??strtotime($queryEnd)?????strtotime($value['end']) :strtotime($queryEnd);//原理同上
$day = (($endDate-$beginDate)/(3600*24))+1;//轉(zhuǎn)化為天數(shù)
echo?'id為'.$value['id'].'的人請(qǐng)了'.$day.'天假br';
};
//以上代碼的運(yùn)行結(jié)果為:
//id為1的人請(qǐng)了3天假
//id為2的人請(qǐng)了7天假
//id為3的人請(qǐng)了4天假
?php
function numsort($a, $b){
$arr_a = explode(",", $a);
$arr_b = explode(",", $b);
$j = (count($arr_a) count($arr_b))?count($arr_a):count($arr_b);
$res = "";
for($i=0;$i$j;$i++){
$res .= str_pad($arr_a[$i], 4, "0", STR_PAD_LEFT).":".str_pad($arr_b[$i], 4, "0", STR_PAD_LEFT).":;";
}
$res = str_replace("0000:0000:;","",$res);
return $res;
}
$a = ",13,18,17,";
$b = ",240,243,233,";
echo numsort($a, $b); //0013:0240:;0018:0243:;0017:0233:;
?
哇,這么復(fù)雜啊!不理解你的意思!”行的分隔符是空格,列的分隔符是重音號(hào)“你把存儲(chǔ)的數(shù)據(jù)搞的這么復(fù)雜。A空格B空格1`2`3`空格11`22`331`2`3`到底是列還是行?因?yàn)楹竺嬗锌崭瘢?1`22`33也一樣!俺你的規(guī)則應(yīng)該變成AB1`2`311`22`33這樣才對(duì)吧!不過(guò)數(shù)據(jù)最好是以最簡(jiǎn)單的方式存儲(chǔ),像你這樣的話,把數(shù)據(jù)搞的很復(fù)雜。以數(shù)組的方式存儲(chǔ)比較好。如果你這個(gè)數(shù)據(jù)比較長(zhǎng),要分成你所說(shuō)的數(shù)據(jù)的話,會(huì)造成錯(cuò)誤的,因?yàn)闆](méi)有特殊的標(biāo)識(shí)。因?yàn)槟闶嵌嘈卸嗔校⒉皇且恍幸涣械臄?shù)據(jù)。
php數(shù)組分組可以使用函數(shù)array_chunk,按照給定的規(guī)則進(jìn)行遍歷,如果數(shù)組的num值大于8,就整除8,獲取整除的數(shù)據(jù),然后按照整除數(shù)進(jìn)行分組分塊即可。
classid是不是?classid=xxx這樣的形式?
你所謂的網(wǎng)站欄目的ID號(hào)?
我的理解是這樣的,那么通過(guò)$_GET["classid"]可以獲得“網(wǎng)站欄目的ID”
假設(shè)你這個(gè)表是 table ,數(shù)據(jù)在 column 欄中
// 連接數(shù)據(jù)庫(kù)操作,設(shè)變量為$connect
$query = mysql_query("SELECT column FROM table", $connect);
$value = mysql_result($query);
$array = explode(",", $value);
$classid = $_GET["classid"];
if ( !in_array($classid, $array) ) {
exit("失敗");
} else {
//執(zhí)行的語(yǔ)句
}
如果我理解的正確..好吧,這玩意兒真不難。沒(méi)必要加這么多分
文章題目:php請(qǐng)假數(shù)據(jù)拆分的簡(jiǎn)單介紹
URL分享:http://chinadenli.net/article12/hpgjgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、Google、小程序開(kāi)發(fā)、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)