如何从文件中删除整行?

时间:2015-08-21 07:37:26

标签: php

这是我的代码

<?php

$configFileContents = file_get_contents('config.php');
if (!empty($configFileContents)) {
    if (strstr($configFileContents, 'define(\'APP_FTP_HOST\',')) {
        $configFileContents = preg_replace('/define\(\'APP_FTP_HOST\', .*\);/', '', $configFileContents);
    }
}
file_put_contents("config.php", $configFileContents);
?>

的config.php

<?php
define('APP_FTP_HOST', '1.2.3.4.5'); // Your Hostname
define('APP_FTP_PORT', '21'); // Your FTP Port
define('APP_FTP_BASE', 'xxxx');
define('APP_FTP_USER', 'xxxx'); // Your FTP User
define('APP_FTP_PASS', 'xxxx'); // Your FTP Password
define('APP_FTP_SSL', 0); //set 1 if you use FTP SSL
define('APP_FTP_USE_SFTP', 0);//set 1 if you use SFTP


?>

以上代码仅删除

define('APP_FTP_HOST', '1.2.3.4.5');

我需要从该文件中删除整行吗?

1 个答案:

答案 0 :(得分:0)

要删除的第一个匹配常量定义,然后匹配所有内容直到换行符(包括):

$configFileContents = preg_replace('/define\(\'APP_FTP_USER.*\R/', '', $configFileContents);

我发现您要删除APP_FTP_HOSTAPP_FTP_USER定义,因此这应该有效:

$configFileContents = file_get_contents('config.php');
$configFileContents = preg_replace('/define\(\'APP_FTP_HOST.*\R/', '', $file);
$configFileContents = preg_replace('/define\(\'APP_FTP_USER.*\R/', '', $file);
file_put_contents('config.php', $configFileContents);