Это мое первое сообщение о stackoverflow.Сортировка строки из .txt в таблице html
Я пытаюсь сделать небольшое веб-приложение для себя. Этот сайт будет для меня списком ссылок, где я могу размещать интересные ссылки, пока я нахожусь на своем рабочем месте.
У меня уже есть файл HTML с формой и таблицей. И у меня есть функция в php. Эта функция записывает ввод формы внутри файла .txt. И ввод показан в таблице.
Функция:
if(file_exists('links.txt')) {
readfile('links.txt');
}
else {
print '<tr><td><p>Your list is empty.</p></td><td><p>---</p></td></tr>';
}
Вторая функция:
//Get the user's comment.
$url = $_POST['url'];
$text = $_POST['text'];
$kategorie = $_POST['kategorie'];
//Append it to the comments file.
$f = fopen('links.txt', 'a');
fwrite($f, "<tr><td><a target='_blank' href='$url'>$text</a></td><td>$kategorie</td></tr>");
fclose($f);
header('location:index.php');
Моя проблема в том, что я не знаю, как я могу сортировать те Поста по своей категории. Я знаю, что в PHP вы можете сортировать массивы. Но я не знаю, как это реализовать в моей .txt «базе данных».
Может кто-нибудь помочь мне с некоторыми подсказками.
Извините за мой плохой английский, я из Германии.
Спасибо, Nerdkowski
Edit:
@Forien
По какой-то причине не работает для меня.
Вот мой function.php:
//Get the user's comment.
$url = $_POST['url'];
$text = $_POST['text'];
$kategorie = $_POST['kategorie'];
//Append it to the comments file.
$f = fopen('links.txt', 'a');
fwrite($f, "<tr><td><a target='_blank' href='$url'>$text</a></td><td>$kategorie</td></tr>\n");
fclose($f);
header('location:index.php');
$file = fopen('links.txt', 'a');
$fileArray = array();
// file to array and prepare for sorting
while (($line = fgets($file)) !== false) {
$pat = '~<td>([^<]*)</td>~Ui';
if (preg_match($pat,$line,$matches)) {
$rep = '<td>{{TMP}}</td>';
$line = $matches[1].preg_replace($pat,$rep,$line);
}
$fileArray[] = $line;
}
// do sorting
// revert changes
$fileArrayBack = array();
foreach ($fileArray as $line) {
$pat = '~^([^<]*)<tr>~Ui';
if (preg_match($pat,$line,$matches)) {
$rep = '<tr>';
$line = preg_replace($pat,$rep,$line);
$line = str_replace('{{TMP}}',$matches[1],$line);
}
$fileArrayBack[] = $line;
}
$fileArray = $fileArrayBack;
unset($fileArrayBack);
// enjoy sorted table;
Первая моя функция, которая сохраняет форму ввода в .txt, а затем ваша функция.
Edit:
Я судимый для сортировки $ fileArray, но по какой-то причине он не работает для меня.
Вот мой код:
//Get the user's comment.
$url = $_POST['url'];
$text = $_POST['text'];
$kategorie = $_POST['kategorie'];
//Append it to the comments file.
$f = fopen('links.txt', 'a');
fwrite($f, "fwrite($f, "<tr><td><a target='_blank' href='$url'>$text</a></td><td>$kategorie</td></tr>\n");\n");
fclose($f);
header('location:index.php');
$file = fopen('links.txt', 'a');
$fileArray = array();
// file to array and prepare for sorting
while (($line = fgets($file)) !== false) {
$pat = '~<td>([^<]*)</td>~Ui';
if (preg_match($pat,$line,$matches)) {
$rep = '<td>{{TMP}}</td>';
$line = $matches[1].preg_replace($pat,$rep,$line);
}
$fileArray[] = $line;
}
// do sorting
$fileArray = array("$line");
sort($fileArray);
// revert changes
$fileArrayBack = array();
foreach ($fileArray as $line) {
$pat = '~^([^<]*)<tr>~Ui';
if (preg_match($pat,$line,$matches)) {
$rep = '<tr>';
$line = preg_replace($pat,$rep,$line);
$line = str_replace('{{TMP}}',$matches[1],$line);
}
$fileArrayBack[] = $line;
}
$fileArray = $fileArrayBack;
unset($fileArrayBack);
// enjoy sorted table;
Когда я ударил сохранить на моей форме появляется пустая страница.
Является ли этот вопрос все еще активен? – Rizier123
Нет, я решил весь проект с sql DB. – Nerdkowski
Прохладный! (BTW: Вам не нужно просто принимать ответ, если он не сработал для вас, вам не обязательно его принимать! (Только принимайте ответы, как решила ваша проблема и помогла вам больше всего)) – Rizier123