首頁  >  問答  >  主體

echo fseek($fp,10);輸出怎麼變成0了

echo fseek($fp,10);

益伦益伦2494 天前1625

全部回覆(5)我來回復

  • 卿立平

    卿立平2018-01-28 21:30:33

    可以查一下php7手冊,fseek函數是指標向後移動指定位元組的函數。但是這個指針移動是有一點的要求的,有三種結果:1、是在設定位置(文件的開頭)向後加要指定的位元組;2、是在設定位置(文件的開頭)向文件尾加要指定的位元組,3、設定的位置(檔案指標的定前位置)等於要增加的位元組數。
    此函數的回傳值是:增加成功則回傳 0;否則回傳 -1。
    而此時我們用fseek($fp,10) ,此時的理解應該是指標回到檔案開頭,然後再向後移動了10個位元組。
    我們來測試一下,我有一個文件叫“mylove.txt”,內容如下:“我們要牢記人民對美好生活的嚮往就是我們的奮鬥目標,堅持以人民為中心的發展思想,努力抓好保障及改善民生各項工作,不斷增強人民的獲得感、幸福感、安全感,不斷推進全體人民共同富裕。記者見面時的講話,擲地有聲。 ”

    執行程式:

    <?php

    $fp = fopen('D:\phpStudy\PHPTutorial\WWW\demo\mylove.txt' , 'r+ ');

    // 讀取10個字元

    echo fread($fp, 10); //透過fread讀取檔案時,當檔案指標讀取完指定長度字串時,指標會停留在指定長度的位置。 ';

    echo fread($fp,10); // 此時讀取完之後,指標就停在第10個位元組。 '<br/>';

    echo fseek($fp,20); //檔案指標從檔案頭向後移動20個字元。但此時的指標位置應處於第20個字元位置。時應該人第20個字節字元處向後讀取10個位元組的長度,所以輸出的應該是「生活的嚮往」

    echo '<br/>';

    ?>

     

    程式輸出的結果是:

    我們要牢記

    我們要牢記

    0

    生活的嚮往

    結合這個案例,應該就可以更好的理解fseek ()函數了。

    回覆
    2
  • 卿立平

    卿立平2018-01-28 21:18:53

    可以查一下php7手冊,fseek函數是指標向後移動指定位元組的函數。但是這個指標移動是有一點的要求的,有三種結果:1、是在設定位置向後加要指定的位元組;2、是在設定位置向文件尾加要指定的字節,3、設定的位置等於要增加的位元組數。
    此函數的回傳值是:增加成功則回傳 0;否則回傳 -1。

    回覆
    0
  • 小崔

    小崔2017-12-05 16:32:47

    fseek()函數讀取成功回傳0,否則回傳-1。案例中fseek()讀取到了資料

    回覆
    0
  • 小崔

    小崔2017-12-03 16:44:22

    同問

    回覆
    0
  • myfey

    myfey2017-11-27 13:59:22

    第10個檔案位置應該是0吧

    回覆
    0
  • 取消回覆