fwrite добавляет пустую строку в текстовый файл

У меня проблема с fwrite, Вот что я делаю. Я получаю данные из текстового файла, который я печатаю в таблицу. После того, как я распечатал эти значения, пользователь сможет выбрать данные, которые следует удалить (я делаю это с помощью ключа). Поэтому, когда он / она нажимает кнопку «Удалить», файл сообщит, какой ключ необходимо удалить. Все это работает. Я обновляю массив, удаляя ключ, и это тоже работает. Но как только данные должны быть перезаписаны в текстовый файл, файл добавляет еще один пробел, что приводит к ошибке «неопределенное смещение» массива. Поэтому я должен избавиться от этой пустой строки. Это мой код
:

 <?php

// Opening the required file
include("deletefunc.php");

$obj = new deletefunc();
$result = $obj->getMeData();
// Get posted value (The key that has to be deleted from the array)
$deleteKey = $_POST['rowNumber'];

$updateArray = array();

for($i=0; $i<count($result); $i++){
if($i==$deleteKey){

}
else{
$updateArray[$i] = $result[$i];
}
}
var_dump($updateArray);

// Deleting data form textfile (Replacing)
$filename="phones.txt";
$file = fopen($filename,"w");
foreach($updateArray as $row){
fwrite($file, $row);
}

?>

1

Решение

Это мое предположение:

Ваша проблема связана с тем, что ваш элемент (кроме последнего) заканчивается символом EndOfLine …
Поэтому, когда вы удаляете элемент посередине, нет проблем, но если вы удалите последний, предыдущий имеет символ EndOfLine, и, следовательно, у вас есть пустая строка в вашем файле.

Поэтому в основном вы должны добавить символ EndOfLine при записи в файл, а не хранить их в своих элементах.

Для этого вы должны использовать PHP_EOL предопределенная константа, которая является символом конца строки для адаптированной к платформе.

И если кому-то интересно посмотреть на этот вопрос, fwrite() Функция php НЕ добавляет символы EOL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]