Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2012, 11:19   #1
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию Удоление строки из файла php

Здравствуйте!!! В php языке есть функция удоление строки из файла???
Или данная задача осуществляется только за счёт создания копии файла???
Если есть функция дайте её пожалуйста!
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 15.03.2012, 11:30   #2
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Код:
<?php
function del_line($id=false){
   if (!empty($id)){
	$id--;
	$file=file("file.txt"); 
        if(!empty($file[$id])) unset($file[$id]); else return false;
	$fp=fopen("file.txt","w"); 
	fputs($fp,implode("",$file)); 
	fclose($fp);
        return true;
    }
}
?>
Где id номер строки которую хотите удалить, а вообще гуглить такое сначала пробуйте

Последний раз редактировалось nec117; 15.03.2012 в 11:35. Причина: очепятка
nec117 вне форума Ответить с цитированием
Старый 15.03.2012, 14:35   #3
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Не нашёл здесь команды удаления строки!
Код:
<?php
function del_line($id=false){
   if (!empty($id)){
	$id--;
	$file=file("file.txt"); 
        if(!empty($file[$id])) unset($file[$id]); else return false;
	$fp=fopen("file.txt","w"); 
	fputs($fp,implode("",$file)); 
	fclose($fp);
        return true;
    }
}
?>
Вот мой код
Код:
<?php
// zapis v fail.

$file = fopen("file.txt","a+");
$vstavka  = $_GET["message"] ;


  
  
 
   if (isset($_GET["knopka"])){
    
	fputs  ($file, "$vstavka\r\n");
	
     fclose ($file);
     
  
  }
  $file_array =  file ("file.txt");
  $num_str =  count($file_array); 
   if ($num_str>20) {
echo "udalit pervuu stroku tolko ne znau kak?????????";// эту команду мне надо заменить на команду удаления!!!!
}
 
  include("vivod.php");

  
?>
Удаление происходит по средствам fputs ("",file) Это получается пустая запись в строку??? за счёт этого происходит удаление????
............Сила воли ключ идеальности...........

Последний раз редактировалось jasul; 15.03.2012 в 15:20.
jasul вне форума Ответить с цитированием
Старый 16.03.2012, 22:37   #4
ShnapS
Пользователь
 
Регистрация: 15.05.2008
Сообщений: 44
По умолчанию

PHP код:
$elements file('txt.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); # Сохраняем каждую строку файла как элемент массива.

echo '<pre>'print_r($elements); echo '</pre>'# Выведет весь массив на экран.

$i 4# Например 4 элемент массива будем удалять.

unset($elements[$i]); # Удаляем.

file_put_contents('txt.txt'implode("\n"$elements)); # Перезаписываем файл. 

Последний раз редактировалось ShnapS; 17.03.2012 в 17:06.
ShnapS вне форума Ответить с цитированием
Старый 16.03.2012, 22:56   #5
Endrels
 
Регистрация: 14.08.2010
Сообщений: 4
По умолчанию

<?php
$lines = file("text.txt");
$del = 5;
unset($lines[$del-1]);
file_put_contents("text.txt", implode($lines));
?>

Последний раз редактировалось Endrels; 16.03.2012 в 23:01.
Endrels вне форума Ответить с цитированием
Старый 17.03.2012, 11:49   #6
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Спасибо вам большое!!!! Два рабочих кода!!! Спс!
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Старый 17.03.2012, 16:50   #7
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Делаю как вы написали))) Но место того чтобы удалится только одной строки
удаляется весь текст в файле!!!!! вот код может чет не правильно делаю подскажите
Код:
$file_array = file ("file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$num_str = count($file_array);
$i = 2;
 if ($num_str > 5) {

 unset ($file_array[$i]);
file_put_contents("file.txt", implode("r\n",$file_array, FILE_APPEND | LOCK_EX));

 }


  include("vivod.php");
  
?>
............Сила воли ключ идеальности...........

Последний раз редактировалось jasul; 17.03.2012 в 17:01.
jasul вне форума Ответить с цитированием
Старый 17.03.2012, 17:15   #8
ShnapS
Пользователь
 
Регистрация: 15.05.2008
Сообщений: 44
По умолчанию

Цитата:
Сообщение от jasul Посмотреть сообщение
Делаю как вы написали))) Но место того чтобы удалится только одной строки
удаляется весь текст в файле!!!!! вот код может чет не правильно делаю подскажите
Код:
$file_array = file ("file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$num_str = count($file_array);
$i = 2;
 if ($num_str > 5) {

 unset ($file_array[$i]);
file_put_contents("file.txt", implode("r\n",$file_array, FILE_APPEND | LOCK_EX));

 }


  include("vivod.php");
  
?>
PHP код:
$file_array file ('file.txt'FILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES);
$num_str count($file_array);
$i 2;
if (
$num_str 5)
{
    unset (
$file_array[$i]);
    
file_put_contents('file.txt'implode("\r\n"$file_array));
}
include(
"vivod.php"); 
Попробуйте так, если не получится прикрепите свой txt файл к сообщению.
ShnapS вне форума Ответить с цитированием
Старый 18.03.2012, 09:47   #9
jasul
Падаван
Пользователь
 
Аватар для jasul
 
Регистрация: 23.09.2011
Сообщений: 98
По умолчанию

Спасибо все работает и объяснение было самым лучшем (в комментариях) !!!! Если Ищете как удалять строку пользуйтесь этим методом!!!!
............Сила воли ключ идеальности...........
jasul вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
загрузка файла php Никита45 PHP 3 23.06.2011 15:54
УДаление строки из файла методом создания временного файла. dykatob Общие вопросы C/C++ 3 28.05.2011 01:46
Подключение .php файла Linel PHP 3 15.01.2011 12:38
PHP строки Небесный PHP 6 21.10.2010 22:03
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27