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.phpKopierenAusblendenZeilen

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($dateiFILE_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"> -&&
      
$_GET["to"> -) {
   
$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$to0$daten[$move]);

   
// Daten kopieren
   
$daten $daten_kopie;

   
// Daten in die Datei schreiben
   
file_put_contents($dateiimplode(""$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 'FFFFFF' 'E8F1F9') . ';">';
  }
  print 
'<td> ' $element '</td>.
   
'<th class="optionen">';

 
// Link zum löschen
 
print <a href="?delete=' $key '" title="Löschen">&#11613;</a>&nbsp;';

 
// Links zum verschieben
 
if ($key > 0) {
  print 
<a href="?move=' $key '&amp;to=' . ($key -1) . '" title="Aufwärts">&#9650;</a> ';
 }
 else {
  print 
&#9650;';
 }

 if (
$key < count($daten) -1) {
  print 
<a href="?move=' $key '&amp;to=' . ($key +1) . '" title="Abwärts">&#9660;</a> ';
 }
 else {
  print 
&#9660;';
 }

 print 
'</th></tr>';
}
?>

</table>

</body>
</html>

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
Kathi Gorie
Vitali Sierend
Bill Igware
Hans Estadt
Manni Puliert
Tom.A. Hawk
Rosi Nenkuchen
Theo Retisch
Klaus Trophobie

Siehe auch: PHP - Element aus einem Array löschen