Как правильно использовать функцию PHP 'fgets'? - PullRequest
0 голосов
/ 28 января 2011

Я предполагаю, что я использую fgets() неправильно. Я пытаюсь открыть файл PHP и затем попытаться сопоставить строку в этом файле с переменной, которую я создаю. Если строка совпадает, то я хочу написать / вставить код PHP в файл прямо под этой строкой. Пример:

function remove_admin(){
    $findThis = '<tbody id="users" class="list:user user-list">';
    $handle = @fopen("../../fns-control/users.php", "r"); // Open file form read.

    if ($handle) {
        while (!feof($handle)) // Loop til end of file.
        {
            $buffer = fgets($handle, 479); // Read a line.
            if ($buffer == '<tbody id="users" class="list:user user-list">') // Check for string.
            {

Теперь я хочу записать код PHP в файл, начиная со строки 480. Как я могу это сделать?

Полезная информация может быть: IIS 6 и PHP 5.2.

1 Ответ

3 голосов
/ 28 января 2011

Попробуйте это:

<?php
function remove_admin(){
     $path = "../../fns-control/users.php";
     $findThis = '<tbody id="users" class="list:user user-list">';
     $phpCode = '<?php echo \'hello world\'; ?>';

     #Import file to string
     $f = file_get_contents($path);

     #Add in the PHP code
     $newfile = str_replace($findThis, $findThis . $phpCode, $f);

     #Overwrite the existing file
     $x = fopen($path, 'w');
     fwrite($x, $newfile);
     fclose($x);
 }
...