Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ringkaskan dua kaedah untuk mengubah suai kandungan fail ini dalam PHP

Ringkaskan dua kaedah untuk mengubah suai kandungan fail ini dalam PHP

PHPz
PHPzasal
2023-04-03 17:55:142079semak imbas

Baru-baru ini, saya menghadapi masalah dan perlu mengubah suai kandungan beberapa fail INI menggunakan PHP Namun, saya mencari banyak maklumat di Internet pada mulanya, tetapi tidak dapat mencari penyelesaian yang baik. Selepas beberapa percubaan, saya meringkaskan beberapa kaedah yang lebih baik, dengan harapan dapat membantu pembangun PHP yang perlu mengubah suai kandungan fail INI.

Fail INI ialah fail konfigurasi yang biasa digunakan dalam kebanyakan perisian. Dalam keadaan biasa, fail INI bukanlah format arus perdana, tetapi kaedah konfigurasinya sangat berguna, jadi ramai pembangun akan menggunakan fail INI untuk melaksanakan beberapa konfigurasi asas apabila menggunakan perisian. Fail INI juga digunakan di beberapa tempat dalam pembangunan tapak web, seperti fail PHP.ini Dengan mengubah suai beberapa parameter dalam fail ini, anda boleh mengubah suai beberapa pilihan konfigurasi masa jalan PHP. Jadi, mari kita lihat cara mengubah suai kandungan fail INI melalui PHP.

Kaedah 1: Gunakan fungsi fopen untuk membuka fail untuk pengubahsuaian

Kaedah ini agak primitif Anda perlu mendapatkan pemegang fail, dan kemudian tulis kandungan yang diubah suai pada fail melalui fungsi fwrite Akhirnya Kemudian tutup pemegang fail.

Sebagai contoh, jika kita ingin mengubah suai parameter max_execution_time dalam fail PHP.ini, kita boleh menulis seperti ini:

$file = fopen('/path/to/php.ini', 'r+') or die('open file failed');

while (($line = fgets($file)) !== false)
{
    if (strpos($line, 'max_execution_time') === 0)
    {
        $line = 'max_execution_time = 300'."\r\n";
    }
    $new_content .= $line;
}

fseek($file, 0); // 将文件指针指向文件头
fwrite($file, $new_content);
fclose($file);

Walaupun kaedah ini mudah dikendalikan, ia tidak sesuai untuk saiz dan kandungan fail , mungkin lebih berbahaya, kerana kita perlu membaca keseluruhan fail dan menulis kandungan yang diubah suai pada fail itu sekaligus. Jika fail terlalu besar, ia mungkin menyebabkan beberapa masalah seperti memori PHP yang tidak mencukupi atau tamat masa. Pada masa ini, kita boleh menggunakan cara yang lebih baik untuk menanganinya.

Kaedah 2: Gunakan fungsi parse_ini_file dan parse_ini_string

Kaedah ini agak mudah kita boleh memuatkan terus fail INI ke dalam tatasusunan melalui fungsi parse_ini_file, dan kemudian mengubah suai parameter dalam tatasusunan. , dan kemudian gunakan fungsi parse_ini_string untuk menukar tatasusunan kepada rentetan format INI, dan akhirnya tulis rentetan pada fail.

Sebagai contoh, jika kita ingin mengubah suai parameter max_execution_time dalam fail PHP.ini, kita boleh menulis seperti ini:

$config = parse_ini_file('/path/to/php.ini');
$config['max_execution_time'] = 300;
$new_content = '';
foreach ($config as $key => $value)
{
    $new_content .= $key.' = '.$value."\r\n";
}

file_put_contents('/path/to/php.ini', $new_content);

Untuk fail besar, anda juga boleh beroperasi seperti di atas, jadi Tidak perlu membaca keseluruhan fail ke dalam ingatan.

Tentukan fail INI tertentu

Kedua-dua kaedah di atas menggunakan fail INI lalai sistem secara lalai Jika anda perlu menentukan fail INI tertentu, anda boleh menggunakan fungsi ini_set untuk mengubah suainya .

Contohnya:

ini_set('memory_limit', '-1'); // 指定自定义的INI文件

Ringkasan

Mengubah suai fail INI merupakan masalah yang tidak dapat dielakkan dalam pembangunan PHP Melalui dua kaedah di atas, ia boleh diselesaikan dengan mudah pengubahsuaian fail INI operasi. Walau bagaimanapun, perlu diingat bahawa jika fail INI yang akan diubah suai adalah besar, kaedah kedua harus digunakan untuk mengurangkan penggunaan memori. Pada masa yang sama, kami juga boleh menentukan fail INI tertentu untuk beroperasi melalui fungsi ini_set.

Atas ialah kandungan terperinci Ringkaskan dua kaedah untuk mengubah suai kandungan fail ini dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn