如何编辑 ini 文件的内容



我希望能够使用 php 编辑服务器应用程序的配置文件。配置文件如下:

include=sc_serv_public.conf
streamid_2=2
streampath_2=/relay
streamrelayurl_2=http://<full_url_of_relay_including_port>
;allowrelay=0
;allowpublicrelay=0

我想编辑这一行:

streamrelayurl_2=http://<full_url_of_relay_including_port>

,然后保存文件。

我目前正在使用:

$data = file_get_contents("sc_serv.conf"); //read the file
$convert = explode("n", $data); //create array separate by new line

打开文件,但现在我不知道如何编辑它。

作为替代方案,您可以改用file()。这只是将其加载为数组形式,无需explode.然后,您只需循环元素,如果找到所需的针,则覆盖它,再次写入文件:

$data = file('sc_serv.conf', FILE_IGNORE_NEW_LINES); // load file into an array
$find = 'streamrelayurl_2='; // needle
$new_value = 'http://www.whateverurl.com'; // new value
foreach($data as &$line) {
    if(strpos($line, 'streamrelayurl_2=') !== false) { // if found
        $line = $find . $new_value; // overwrite
        break; // stop, no need to go further
    }
}
file_put_contents('sc_serv.conf', implode("n", $data)); // compound into string again and write
您可以使用

file()将文件内容读取到数组中,然后您可以使用strstr()函数foreach()搜索包含您的URL的行(在本例中位于var $id_change中)并更改值。然后,当您找到所需的内容时,您以break结束foreach()。并使用implode()将字符串保存在文件中,并使用file_put_content()将字符串保存到配置文件中。

请参阅代码:

<?php
$new_url = 'http://www.google.com';
$id_change = 'streamrelayurl_2';
$file = "sc_serv.conf";
$data = file($file); //read the file
foreach($data as $key => $value) {
  if(strstr($value, $id_change)) {
    $info = $id_change . '=' . $new_url . "n";
    $data[$key] = $info;
    break;  
  }     
}   
$data = implode("", $data);
file_put_contents($file, $data);
?>

输出:

include=sc_serv_public.conf
streamid_2=2
streampath_2=/relay
streamrelayurl_2=http://www.google.com
;allowrelay=0
;allowpublicrelay=0

相关内容

  • 没有找到相关文章