开发者

How to replace one line in php?

开发者 https://www.devze.com 2023-03-16 01:03 出处:网络
I have test.txt file, like this, AA=1 BB=2 CC=3 Now I wanna find \"BB=\" a开发者_开发知识库nd replace it as BB=5, like this,

I have test.txt file, like this,

AA=1
BB=2
CC=3

Now I wanna find "BB=" a开发者_开发知识库nd replace it as BB=5, like this,

AA=1
BB=5
CC=3

How do I do this?

Thanks.


<?php

    $file = "data.txt";
    $fp = fopen($file, "r");
    while(!feof($fp)) {
    $data = fgets($fp, 1024);

    // You have the data in $data, you can write replace logic 
    Replace Logic function
    $data will store the final value

    // Write back the data to the same file 
     $Handle = fopen($File, 'w');
     fwrite($Handle, $data); 


    echo "$data <br>";
    }
    fclose($fp);

?>

The above peace of code will give you data from the file and helps you to write the data back to the file.


Assuming that your file is structured like an INI file (i.e. key=value), you could use parse_ini_file and do something like this:

<?php

$filename = 'file.txt';

// Parse the file assuming it's structured as an INI file.
// http://php.net/manual/en/function.parse-ini-file.php
$data = parse_ini_file($filename);

// Array of values to replace.
$replace_with = array(
  'BB' => 5
);

// Open the file for writing.
$fh = fopen($filename, 'w');

// Loop through the data.
foreach ( $data as $key => $value )
{
  // If a value exists that should replace the current one, use it.
  if ( ! empty($replace_with[$key]) )
    $value = $replace_with[$key];

  // Write to the file.
  fwrite($fh, "{$key}={$value}" . PHP_EOL);
}

// Close the file handle.
fclose($fh);


The simplest way (if you are talking about a small file as above), would be something like:

    // Read the file in as an array of lines
    $fileData = file('test.txt');

    $newArray = array();
    foreach($fileData as $line) {
      // find the line that starts with BB= and change it to BB=5
      if (substr($line, 0, 3) == 'BB=')) {
        $line = 'BB=5';
      }
      $newArray[] = $line;
    }

    // Overwrite test.txt
    $fp = fopen('test.txt', 'w');
    fwrite($fp, implode("\n",$newArray));
    fclose($fp);

(something like that)


You can use Pear package for find & replace text in a file .

For more information read

http://www.codediesel.com/php/search-replace-in-files-using-php/
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号