в отделе редактирования
для удаления пуктов меню
у каждого пукта меню
есть радиокнопка
выбираем нужное меню для удаления
отмечаем радиокнопку
и жмём форму
//путь до файла
$url="../bd/gb.txt";
//Получаем массив строк
$content = file($url);
//выводим пункты меню для вида и удаления
echo "<form name=\"delet_menu\" action=\"unlink_menu.php\" method=\"GET\">";
foreach($content as $values)
{
list($numer, $name_menu) = explode("::", $values);
echo "<input name='num' type='radio' value='$numer'>";
echo "$numer. $name_menu<br/>";
}
echo "<input type=\"submit\" value=\"удалить пункт меню\"><br/><br/>";
echo "</form>";
эта переменная прилетела
а как теперь удалить
имеено эту строку из файла
равную значению радиокнопки
8::гланая
3::первая
5::вторая
6::третья
1::четвёртая
$url="../bd/gb.txt";
////////////////////
//Удаление записи//
///////////////////
//echo $_GET['num'];
$content = file($url);
foreach($content as $values)
{
list($numer,$name_menu) = explode("::",$values);
f($numer == $_GET['num'])
{
//вот тут надо удалить строку именно где $numer == $_GET['num']
}
}
Спустя 1 час, 4 минуты (1.11.2010 - 22:16) SlavaFr написал(а):
при помощи array_search ищеш строчку в $content которая соответствует $values и потом записываеш содержание $content в файл без этой строчки
edit:
или так
edit:
или так
if($numer == $_GET['num']) {
file_put_contents($url,array_diff($content,$values));
}
Спустя 14 часов, 56 минут, 13 секунд (2.11.2010 - 13:12) mihai написал(а):
SlavaFr
Спасибо но это слишком замороченно
для удаления строки.
Может сам алгоритм изменить,
подскажите.
Спасибо но это слишком замороченно
для удаления строки.
Может сам алгоритм изменить,
подскажите.
Спустя 1 час, 29 минут, 46 секунд (2.11.2010 - 14:42) sergeiss написал(а):
Цитата (mihai @ 2.11.2010 - 14:12) |
Может сам алгоритм изменить, подскажите. |
Используй БД! Это будет самое правильное, как мне кажется, изменение алгоритма
Спустя 4 минуты, 41 секунда (2.11.2010 - 14:47) Guest написал(а):
да с БД каждый может
ты вот так попробуй
ты вот так попробуй
Спустя 6 минут, 43 секунды (2.11.2010 - 14:53) mihai написал(а):
Вот так вот работает
но почему то первый пункт меню
с индексом num=0
из массива data[0] вообще не удаляет
что за хрень
подскажите
но почему то первый пункт меню
с индексом num=0
из массива data[0] вообще не удаляет
что за хрень
подскажите
//путь до файла
$url="../bd/gb.txt";
////////////////////
//Удаление записи//
///////////////////
if($_GET['num'])
{
$data = file($url);
$data[$_GET['num']]="";
$f = fopen($url,"w");
for($i=0;$i<=sizeof($data);$i++)
{
fputs($f,$data[$i]);
}
fclose($f);
//Выводим сообщение
//echo "Запись удалена<br/>";
//echo "<a href=\"moder.php\">назад</a>";
}
//выводим пункты меню для вида и удаления
$data = file($url);
for($i=0;$i<=count($data)-1;$i++)
{
list($numer, $name_menu) = explode("::",$data[$i]);
echo $numer."-";
echo $name_menu."<br/>";
//Ссылка на удаление в ней передается переменная методом GET
echo "<a href=\"menu_neu.php?num=$i\">[Delete]</a><br/>";
}
Спустя 12 минут, 15 секунд (2.11.2010 - 15:06) SlavaFr написал(а):
Цитата (mihai @ 2.11.2010 - 10:12) |
Спасибо но это слишком замороченно для удаления строки. |
a в чем заморочка? в том чоб твой коментарий
Цитата (mihai @ 1.11.2010 - 18:12) |
//вот тут надо удалить строку именно где $numer == $_GET['num'] |
на
Цитата (SlavaFr @ 1.11.2010 - 19:16) |
file_put_contents($url,array_diff($content,$values)); |
заменить?
Спустя 1 час, 27 минут, 3 секунды (2.11.2010 - 16:33) sergeiss написал(а):
Цитата (Guest @ 2.11.2010 - 15:47) |
да с БД каждый может ты вот так попробуй |
mihai - а ты можешь объяснить, зачем тебе "вот так" извращаться? В чем тут глубинный смысл? Почему БД нельзя использовать?
Спустя 32 минуты, 41 секунда (2.11.2010 - 17:05) mihai написал(а):
SlavaFr
Честно говоря я тут не совсем понял.
ИЗ МАНУАЛА
Описание
array array_diff ( array array1, array array2 [, array ...] )
Пример 1. Пример использования array_diff()
$array1 = array ("a" => "green", "red", "blue", "red");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);
В результате выполнения этой программы переменная $result будет содержать array ("blue");.
То есть получется что он запишет
именно ту строку котрую нужно УДАЛИТЬ.
Честно говоря я тут не совсем понял.
ИЗ МАНУАЛА
Описание
array array_diff ( array array1, array array2 [, array ...] )
Пример 1. Пример использования array_diff()
$array1 = array ("a" => "green", "red", "blue", "red");
$array2 = array ("b" => "green", "yellow", "red");
$result = array_diff ($array1, $array2);
В результате выполнения этой программы переменная $result будет содержать array ("blue");.
То есть получется что он запишет
именно ту строку котрую нужно УДАЛИТЬ.
Спустя 2 минуты, 3 секунды (2.11.2010 - 17:07) mihai написал(а):
sergeiss
Смотрел "Белое солнце пустыни".
- Ты как желаешь умереть, сразу или помучиться.
- Нее.. я помучиться...
Смотрел "Белое солнце пустыни".
- Ты как желаешь умереть, сразу или помучиться.
- Нее.. я помучиться...