Php: я могу добавить строки в текстовый файл, но не могу их удалить - PullRequest
0 голосов
/ 15 марта 2020

Я работаю над linux (распбиан). Код работает локально, но не на сервере.

Я не могу понять, в чем проблема в коде. Функция addLineToFile работает идеально, а deleteLineFromFile - нет.

Я вызываю функции с:

if (isset($_POST['delete'])){
    $valTemp = $array[$_POST['delete']];
    addLineToFile($directory."linkOffline.txt",$valTemp);
    deleteLineFromFile($directory."output.txt",$valTemp);
}

, где

$directory = "/home/pi/linkFinder/server/";

, затем

function addLineToFile($dirFile, $line){
    $myfile = fopen($dirFile, "a") or die("Unable to open file!");
    fwrite($myfile, "\n". $line);
    fclose($myfile);
}

function deleteLineFromFile($dirFile, $line){
    $contents = file_get_contents($dirFile);
    $contents = str_replace($line."\r\n", '', $contents);
    file_put_contents($dirFile, $contents);
}

Я попытался назначить все разрешения для текстовых файлов с помощью chmod 777.

Я также подумал, что могут быть некоторые проблемы с file_get_contents и file_put_contents. Поэтому я переписал эту функцию следующим образом, но она все еще не работает.

function fileGetContents2($url) { //alternativa a file_get_contents
    $file = fopen($url, 'r');
    $data = stream_get_contents($file);
    fclose($file);
    return $data;
 }


function deleteLineFromFile($dirFile, $line){
    $contents = fileGetContents2($dirFile);
    $contents = str_replace($line."\r\n", '', $contents);
    $myfile = fopen($dirFile, "w") or die("Unable to open file!");
    fwrite($myfile, $contents);
    fflush($myfile);
    fclose($myfile);
}

TXT-файлы находятся в папке / home / user / ... и генерируются сценарием python.

Заранее спасибо

...