php
  • mysql
  • 2016-04-03 92 views 0 likes 
    0

    所以,我發現這個代碼,它可以讓被寫入特定行PHP file_put_content覆蓋

    function SetSiteName(){ 
         global $session, $database, $form; 
        $filepathname = "include/classes/constants.php"; 
        $target = 'sitename'; 
        $newline = 'define("sitename", "Testing.");'; 
    
        $stats = file($filepathname, FILE_IGNORE_NEW_LINES); 
        $offset = array_search($target,$stats) +32; 
        array_splice($stats, $offset, 0, $newline); 
        file_put_contents($filepathname, join("\n", $stats)); 
        header("Location: ".$session->referrer); 
        } 
    

    但它不會覆蓋什麼在該行預計要到下一行,並把數據..我想使它覆蓋目前在該行上的內容?

    有什麼想法?

    回答

    0

    您可以用此代碼覆蓋文件的一行。

    $filename = "file.txt"; 
    $content = file_get_contents($filename); 
    $lines_array = explode(PHP_EOL, $content); 
    
    //overwrite the line that you want. 
    $lines_array[5] = "New text at line 6!"; 
    
    file_put_contents($filename, implode(PHP_EOL, $lines_array)); 
    
    +0

    似乎不適合我嗎?它只是在它之後添加一條新線。 – user3618613

    相關問題