• 技术文章 >后端开发 >php教程

    Learning PHP -数据的储存与检索

    2016-06-13 11:32:06原创395

    Learning PHP -数据的存储与检索
    存储数据有两种基本方法:保存到普通文件,或者保存到数据库中。
    数据写入:

    数据读出:

    选择文件模式:
    当打开一个文件的时候,有以下三种选择。

    函数fopen()支持以上三种方式的组合。

    根据服务器设置不同,可以通过如下三种方式得到文档根目录:

    对于表单数据,第一个风格是首选的。
    打开文件fopen(path,mode)
    写文件:fwrite($fp, &outputstring)
    关闭文件:fclose($fp)
    fopen()函数的文件模式

    以只读模式打开文件:fopen()
    知道何时读完文件:feof()
    每次读取一行数据:fgets()fgetss()fgetcsv()
    读取整个文件:readfile()fpassthru()file()

    读取一个字符:fgetc()
    while(!feof($fp)){     $char = fgetc($fp);     if(!feof($fp)){          echo ($char == "\n "? "
    ": $char); }}

    读取任意长度:fread()
    读取一个文件的最后一种方法是使用fread()函数从文件中读取任意长度的字节。
    查看文件是否存在:file_exists()
    确定文件大小:filesize()
    删除一个文件:unlink()(PHP中没有名为delete的函数)
    在文件中定位:rewind()fseek()ftell()
    rewind()函数可以将指针复位到文件的开始。
    ftell()函数可以以字节为单位报告文件指针当前在文件中的位置。
    调用fseek()函数可以将文件指针fp从whence位置移动offset个字节。
    rewind()函数等价于调用一个具有零偏移量的fseek()函数。
    文件的锁定:
    为了避免多个方法同时操作一个文件,可以使用文件锁定的方法。
    文件锁定是通过flock()函数来实现的。
    如果打算使用flock()函数,必须将其添加到所有使用文件的脚本中;否则,就没有任何意义。
    flock()的操作值


    数据库管理系统


    vieworders.php
    Bob's Auto Parts - Customer Orders
    
    Bob's Auto PartsCustomer OrdersNo orders pending.Please try again later.

    ";exit;}while (!feof($fp)){$order = fgets($fp,999);echo $order."
    ";}?>

    proccessorder.php
    Bob's Auto Parts-Order Results
    

    Bob's Auto Parts

    Order Results

    Order processed at ".date('H:i, jS F Y')."

    ";echo "

    Your order is as follows:

    ";$totalqty = 0;$totalqty = $tireqty + $oilqty + $sparkqty;echo "Items ordered: ".$totalqty."
    ";if($totalqty == 0){ echo "You did not order anything on the previous page!
    ";}else{if($tireqty > 0){ echo $tireqty." tires
    "; }if($oilqty > 0){ echo $oilqty." bottles of oil
    "; }if($sparkqty > 0){ echo $sparkqty." spark plugs
    "; }}$totalamount = 0.00;define("TIREPRICE", 100);define("OILPRICE", 10);define("SPARKPRICE", 4);$totalamount = $tireqty * TIREPRICE+ $oilqty * OILPRICE+ $sparkqty * SPARKPRICE;$totalamount=number_format($totalamount, 2, '.', ' ');echo "

    Total of order is $.$totalamount.

    ";echo "

    Address to ship to is ".$address."

    ";$outputstring = $date."\t".$tireqty." tires \t".$oilqty." oil\t".$sparkqty." spark plugs\t\$".$totalamount."\t".$address."\n";@ $fp= fopen("$DOCUMENT_ROOT/orders/orders.txt", 'ab');flock($fp, LOCK_EX);if(!$fp){echo "

    Your orde could not be processed at this time. Please try again later.

    ";exit;}fwrite($fp, $outputstring, strlen($outputstring));flock($fp, LOCK_UN);fclose($fp);echo "

    Order written.

    ";?>

    参考资料:
    PHP&MySQL.Web







    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp gt lt echo DOCUMENT
    上一篇:使用【ThinkPHP】开发的请问? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 手写PHP API框架(二)之Composer的安装使用• 手写PHP API框架(一)之PSR规范• 聊聊php怎么让Swoole/Pool进程池实现Redis持久连接• PHP原生类的总结分享• 聊聊PHP escapeshellarg函数使用的中文问题
    1/1

    PHP中文网