Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Удаляем строку из файла
 
 автор: hawk   (09.08.2006 в 18:41)   письмо автору
 
 

Вобщем, такая проблемка, есть код, для удаления строки из файла.


<?php
if ($do == "del")
{
$file file("base.php");
print 
"<form action=$PHP_SELF?do=del&done method=post>Логин: <select name=uid>";
for (
$i=0$i<sizeof($file); $i++)
{
        list (
$kl$st$dg$dt)=explode("^^",$file[$i]);
        print 
"<option value=$i>".$kl."</option>";
}
print 
"</select><br><br><input type=submit value=Удалить style=\"background-color:  Gainsboro; border-width: 1px; font-weight: bolder; border-color: black\"></form>";
if (isset(
$done) and !empty($uid))
        {
                
$file=file("base.php");
                list (
$ee$rr$tt$yy)=explode("^^"$file[$uid]);
                for(
$i=0;$i<sizeof($file);$i++)
                if(
$i==$uid) unset($file[$uid]);
                
$fp=fopen("base.php","w");
                
fputs($fp,implode("",$file));
                
fclose($fp);
                print 
"<hr width=70% size=2 color=black>Пользователь <b>".$ee."</b> успешно удален.<br><a href=$PHP_SELF>назад</a>";
        }
}
?>


Он работает, удаляет любую строку.. кроме первой.
А вот как удалить и 1ю строку?
Данные в файле хранятся в таком виде:

$nk."^^".$status."^^".$dog."^^".$date."\n";

   
 
 автор: hawk   (09.08.2006 в 20:39)   письмо автору
 
   для: hawk   (09.08.2006 в 18:41)
 

всем СПАСИБО за ответы ! Пойду спрошу в другом месте

   
 
 автор: Trianon   (09.08.2006 в 20:49)   письмо автору
 
   для: hawk   (09.08.2006 в 20:39)
 

Наверное дело в том что строки нумеруются с нуля.
Но Вы, конечно, спросите.

   
 
 автор: hawk   (09.08.2006 в 20:53)   письмо автору
 
   для: Trianon   (09.08.2006 в 20:49)
 

Строки нумеруются с нуля. это правда. но я это учел.

   
 
 автор: ec_stasis   (09.08.2006 в 21:37)   письмо автору
 
   для: hawk   (09.08.2006 в 18:41)
 

Инетересно, зачем этот цикл:

<?
...
 for(
$i=0;$i<sizeof($file);$i++)
                if(
$i==$uid) unset($file[$uid]); 

если изначально известен номер удаляемой строки???

Этого достаточно...

<?
unset($file[$uid]); 

   
 
 автор: ec_stasis   (09.08.2006 в 21:45)   письмо автору
 
   для: hawk   (09.08.2006 в 18:41)
 


<?
...
if (isset(
$done) and !empty($uid)) 

Проблема в том, что когда $uid равен 0, то !empty($uid) возвращает false, т.е. переменная считается пустой.

<?
...
if (isset(
$done) and (!empty($uid) || $uid === '0' )) 

   
 
 автор: hawk   (09.08.2006 в 22:12)   письмо автору
 
   для: ec_stasis   (09.08.2006 в 21:45)
 

Благодарю.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования