• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

База в текстовом файле

  • Автор темы Dico
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

Dico

У меня есть база в текстовом файле.
Записана так:

1::текст::текст2::текст3::текст4
2::текст::текст2::текст3::текст4
3::текст::текст2::текст3::текст4

Мне нужно когда я нажимаю на кнопку обновить
происходило следующие:

Строка 3 перезаписывалась наверх, но не удаляла
строку1, а писала её выше.

Вот так:

3::текст::текст2::текст3::текст4
1::текст::текст2::текст3::текст4
2::текст::текст2::текст3::текст4

Этот текстовик пополняется.

Подскажие плиз.

ДАЙТЕ КОД!!!!!!!!!!!!!!!!!
 
J

Jkar

Что тебе ещё дать?

короче, читайешь file()'ом, а потом переставляешь как нужно.
 
K

kirkro

Вот приблизительный код:
Код:
<?php
$array=file('имя_файла');
$str=array_pop($array); // вырезаем последний элемент массива
array_unshift($array, $str); // вставляем его в начало
$fh=fopen('имя_файла', 'w');
foreach($array as $value)
{
 fputs($fh, $value);
}
fclose($fh);
?>
Вроде должно работать, хотя может есть и более оптимальный вариант
 
D

Dico

А если это не последняя строка как быть например:
Всего 10.
Надо вверх 6 строку? Как?
 
J

Jkar

Ну это практически тоже самое, что и у kirkro, только

Код:
$str = $array[5];
...
unset($array[5]);
 
D

Dico

Почему не хочет выполняться?

$id="10";

$array=($base_file);
$str = $array[$id];
unset($array[$id]); // вырезаем элемент массива
array_unshift($array, $str); // вставляем его в начало

$fh=fopen($base_file, 'w');

foreach($array as $value)
{
fputs($fh, $value);
}
fclose($fh);


Вроде всё правельно?
 
K

kirkro

а что значит строка $array=($base_file);?
может ты просто забыть написать $array=file($base_file);?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!