How to capture a line from a file and then overwrite it?

-1

I have to access a file by php, this file has a variable in the line x I want to get the contents of this variable, step to a condition, if different than expected I replace the value of this variable by php, without having access q the file manually.

In short, I need to access a. php file from a library via php code, check which variable value, if it is different from the expected value change its value, it will only be 2 values, production and test.

Example

linha 12 $varivel = 'teste'; // arquivo.php

// tenho o código que captura o valor da variavel
$oqueTemLinha12 = 'o que tem la';

if ($variavel != 'teste') {
// alterar para produção, e vice e versa, o problema não é a condição e sim como obter um valor de um arquivo e como troca-lo se preciso
}
    
asked by anonymous 25.07.2014 / 13:18

2 answers

1

Correct answer

<?php

    // transforma o conteudo do arquivo em array
    $arquivo = file('Library/config/PaymentConfig.php');

    // armazena o que contem a linha 11
    $conteudoLinha = $arquivo[10];

    // captura apenas o valor da variavel
    function getAmbiente($conteudoLinha){
        $removeCaracteres = array('$ambiente = ', "'", ';');
        return str_replace($removeCaracteres, '', urldecode($conteudoLinha));
    }

    // seta o que vai conter na linha 11
    $arquivoe[10] = '$ambiente = "teste";' . "\n";

    // recria o arquivo com a linha 11 alterada
    file_put_contents('Library/config/PaymentConfig.php', implode("", $arquivo));

?>
    
25.07.2014 / 15:47
0

You can rewrite part of the text of a particular file, without having to save every file, using fseek , but the number of bytes (sentence size) must be equal.

Using fseek to position the pointer to the position of the file, you should overwrite the text $varivel = 'teste'; with $varivel = 'certo'; or even $varivel = '' ; . Always keeping the 7 characters, counting the quotation marks until the semicolon.

    
25.07.2014 / 15:27