Textzeilen verschieben
Mit diesem PHP-Script können Textzeilen an eine andere Position verschoben werden.
Das ist nützlich wenn die Reihenfolge der Zeilen einer Datei geändert werden soll.
Demo
* Die Option zum löschen einer Zeile wurde in dieser Demo deaktiviert.
Quelltext: textzeilen_verschieben.php Ausblenden ❘ Kopieren ❘ Link ❘ Zeilen ❘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE html>
<html>
<head>
<title>Textzeilen verschieben oder löschen</title>
<style>
body, a {
font-family: Verdana, Arial, Sans-Serif;
font-size: 1rem;
}
a:link, a:visited {
color: #4D95CC;
text-decoration: None;
font-weight: Bold;
}
a:hover {
color: #EE0000;
}
table {
width: 100%;
}
th, td {
padding: 5px;
}
th.optionen {
width: 6%;
white-space: Nowrap;
}
</style>
</head>
<body>
<table>
<?php
/* Textzeilen verschieben oder löschen */
// Name der Datei
$datei = "daten.txt";
// Daten aus der Datei lesen
$daten = file($datei, FILE_SKIP_EMPTY_LINES );
$to = -1;
// Textzeile verschieben
if (isset($_GET["move"])) {
if (is_numeric($_GET["move"]) &&
is_numeric($_GET["to"])) {
if ($_GET["move"] <= count($daten) &&
$_GET["to"] <= count($daten) &&
$_GET["move"] > -1 &&
$_GET["to"] > -1 ) {
$move = $_GET["move"];
$to = $_GET["to"];
// Daten kopieren
$daten_kopie = $daten;
// Ausgewählter Datensatz entfernen
unset($daten_kopie[$move]);
// Datensatz an neuer Position einfügen
array_splice($daten_kopie, $to, 0, $daten[$move]);
// Daten kopieren
$daten = $daten_kopie;
// Daten in die Datei schreiben
file_put_contents($datei, implode("", $daten));
}
}
}
// Textzeile löschen
if (isset($_GET["delete"])) {
// array_splice($daten, $_GET["delete"], 1);
// Daten in die Datei schreiben
// file_put_contents($datei, implode("", $daten));
}
// Daten ausgeben
foreach ($daten as $key => $element) {
print '<tr';
// Hintergrundfarbe
if ($key == $to) {
print ' style="background-color: #C9E0EF;">';
}
else {
print ' style="background-color: #' . ($key % 2 ? 'FFFFFF' : 'E8F1F9') . ';">';
}
print '<td> ' . $element . '</td>' .
'<th class="optionen">';
// Link zum löschen
print ' <a href="?delete=' . $key . '" title="Löschen">ⵝ</a> ';
// Links zum verschieben
if ($key > 0) {
print ' <a href="?move=' . $key . '&to=' . ($key -1) . '" title="Aufwärts">▲</a> ';
}
else {
print ' ▲';
}
if ($key < count($daten) -1) {
print ' <a href="?move=' . $key . '&to=' . ($key +1) . '" title="Abwärts">▼</a> ';
}
else {
print ' ▼';
}
print '</th></tr>';
}
?>
</table>
</body>
</html>
➤ Um Textzeilen zu löschen, müssen im Quelltext in den Zeilen: 82 und 85 die Kommentarzeichen // entfernt werden!
In diesem Beispiel werden die Daten aus der Datei: "daten.txt" geholt und wieder dorthin zurück geschrieben. Jede Zeile muss mit einem Zeilenumbruch abgeschlossen sein.
1
2
3
4
5
6
7
8
9
Hans Estadt
Tom.A. Hawk
Manni Puliert
Kathi Gorie
Bill Igware
Theo Retisch
Vitali Sierend
Rosi Nenkuchen
Klaus Trophobie