Text file(text.txt):
#Minecraft server properties
#Tue Sep 23 18:07:26 CEST 2014
generator-settings=
op-permission-level=4
allow-nether=true
level-name=world
enable-query=true
allow-flight=false
announce-player-achievements=true
server-port=25565
query.port=25565
level-type=DEFAULT
enable-rcon=false
force-gamemode=false
level-seed=
server-ip=
max-build-height=256
How to replace the value of some line, such as these:
server-port=25565
Replace with:
server-port=25585
But no to find 'server-port=25565' and replace with 'server-port=25585' It is found that the lines in which the server port and to allocate a value that needs to be replaced.
Example:
<?php
$myfile = fopen("text.txt", "r") or die("Unable to open file!");
...
fclose($myfile);
?>
EDIT: And when finded this and saved replace the text file.
Since your format looks suspiciously like a PHP configuration file (.ini)
, why not using the parse_ini_file function?
$ini = parse_ini_file("text.txt");
echo "<pre>".print_r($ini,TRUE)."</pre>";
or
echo $ini["server-port"];
Change it:
$ini["server-port"] = 25585;
Save again your .txt file with:
$f = fopen("text.txt","w");
foreach($ini as $k=>$v) {
fwrite($f,$k."=".$v.PHP_EOL);
}
fclose($f);
You may need to change your #
comments symbol though with ;
UPDATE
$lines = file("text.txt",FILE_IGNORE_NEW_LINES);
// modify
foreach($lines as &$line) {
$val = explode("=",$line);
if ($val[0]=="server-port") {
$val[1] = "25585";
$line = implode("=",$val);
}
}
unset($line);
// save again
$f = fopen("text.txt","w");
foreach($lines as $line) {
fwrite($f,$line.PHP_EOL);
}
fclose($f);