erste push
This commit is contained in:
8
.htaccess
Normal file
8
.htaccess
Normal file
@@ -0,0 +1,8 @@
|
||||
#ErrorDocument 404 https://codemich.de/404.php
|
||||
|
||||
#Alternate default index pages
|
||||
DirectoryIndex index.php
|
||||
|
||||
RewriteEngine On
|
||||
RewriteCond %{SERVER_PORT} !^443$
|
||||
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
|
||||
126
add.php
Normal file
126
add.php
Normal file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
// Formularverarbeitung und Daten speichern
|
||||
if (isset($_POST['save'])) {
|
||||
$errors = [];
|
||||
|
||||
// Validierung der Eingabefelder
|
||||
if (empty($_POST['id'])) {
|
||||
$errors[] = 'ID ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['name'])) {
|
||||
$errors[] = 'Name ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['wissenschaftlicher_name'])) {
|
||||
$errors[] = 'Wissenschaftlicher Name ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['beschreibung'])) {
|
||||
$errors[] = 'Beschreibung ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['lebensraum'])) {
|
||||
$errors[] = 'Lebensraum ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['nahrung'])) {
|
||||
$errors[] = 'Nahrung ist erforderlich.';
|
||||
}
|
||||
|
||||
if (!empty($errors)) {
|
||||
foreach ($errors as $error) {
|
||||
echo "<p style='color:red;'>{$error}</p>";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
// Eingabedaten bereinigen
|
||||
$input = array(
|
||||
'id' => htmlspecialchars($_POST['id'], ENT_QUOTES, 'UTF-8'),
|
||||
'name' => htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'),
|
||||
'wissenschaftlicher_name' => htmlspecialchars($_POST['wissenschaftlicher_name'], ENT_QUOTES, 'UTF-8'),
|
||||
'beschreibung' => htmlspecialchars($_POST['beschreibung'], ENT_QUOTES, 'UTF-8'),
|
||||
'lebensraum' => htmlspecialchars($_POST['lebensraum'], ENT_QUOTES, 'UTF-8'),
|
||||
'nahrung' => htmlspecialchars($_POST['nahrung'], ENT_QUOTES, 'UTF-8')
|
||||
);
|
||||
|
||||
// JSON-Datei öffnen
|
||||
$data = file_get_contents('tiere.json');
|
||||
$data = json_decode($data, true);
|
||||
|
||||
if ($data === null) {
|
||||
$data = [];
|
||||
}
|
||||
|
||||
// Neue Daten hinzufügen
|
||||
$data[] = $input;
|
||||
|
||||
// JSON-Datei speichern
|
||||
$data = json_encode($data, JSON_PRETTY_PRINT);
|
||||
if (file_put_contents('tiere.json', $data) === false) {
|
||||
echo "<p style='color:red;'>Fehler beim Speichern der Daten.</p>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Umleitung
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tiere in unserem Kleingarten</title>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1 class="page-header text-center">Tiere in unserem Kleingarten</h1>
|
||||
<div class="row">
|
||||
<div class="col-1"></div>
|
||||
<div class="col-8"><a href="index.php" class="btn btn-primary">Zurück</a>
|
||||
<form method="POST">
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="id" name="id" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="name" name="name" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Wissenschaftlicher Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="wissenschaftlicher_name" name="wissenschaftlicher_name" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Beschreibung</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="beschreibung" name="beschreibung" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Lebensraum</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="lebensraum" name="lebensraum" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Nahrung</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="nahrung" name="nahrung" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<input type="submit" name="save" value="Speichern" class="btn btn-primary" required>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-5"></div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
css/style.css
Normal file
4
css/style.css
Normal file
@@ -0,0 +1,4 @@
|
||||
.btn-primary2 {
|
||||
background-color: #ac2222;
|
||||
color: white;
|
||||
}
|
||||
29
delete.php
Normal file
29
delete.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
// ID aus der URL holen
|
||||
$index = $_GET['index'];
|
||||
|
||||
// Daten aus der JSON-Datei lesen
|
||||
$data = file_get_contents('tiere.json');
|
||||
|
||||
// JSON-Daten als Array dekodieren
|
||||
$data = json_decode($data, true); // true, um das JSON als assoziatives Array zu dekodieren
|
||||
|
||||
// Prüfen, ob der Index gültig ist
|
||||
if (isset($data[$index])) {
|
||||
// Zeile mit dem angegebenen Index entfernen
|
||||
unset($data[$index]);
|
||||
|
||||
// Das Array neu indizieren, um die Lücken nach dem Löschen zu schließen
|
||||
$data = array_values($data);
|
||||
|
||||
// Die Daten wieder als JSON kodieren
|
||||
$data = json_encode($data, JSON_PRETTY_PRINT);
|
||||
|
||||
// Die JSON-Daten in die Datei zurückschreiben
|
||||
file_put_contents('tiere.json', $data);
|
||||
}
|
||||
|
||||
// Umleitung zur Hauptseite
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
?>
|
||||
136
edit.php
Normal file
136
edit.php
Normal file
@@ -0,0 +1,136 @@
|
||||
<?php
|
||||
// ID aus der URL holen und validieren
|
||||
if (!isset($_GET['index']) || !is_numeric($_GET['index'])) {
|
||||
echo "<p style='color:red;'>Ungültiger Index.</p>";
|
||||
exit;
|
||||
}
|
||||
$index = (int) $_GET['index'];
|
||||
|
||||
// JSON-Daten holen
|
||||
$data = file_get_contents('tiere.json');
|
||||
$data_array = json_decode($data, true); // true für assoziatives Array
|
||||
|
||||
// Fehlerbehandlung, falls das JSON ungültig ist oder der Index nicht existiert
|
||||
if ($data_array === null || !isset($data_array[$index])) {
|
||||
echo "<p style='color:red;'>Daten konnten nicht geladen werden oder der Index ist ungültig.</p>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Daten dem ausgewählten Index zuweisen
|
||||
$row = $data_array[$index];
|
||||
|
||||
if (isset($_POST['save'])) {
|
||||
$errors = [];
|
||||
|
||||
// Eingabedaten validieren
|
||||
if (empty($_POST['id'])) {
|
||||
$errors[] = 'ID ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['name'])) {
|
||||
$errors[] = 'Name ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['wissenschaftlicher_name'])) {
|
||||
$errors[] = 'Wissenschaftlicher Name ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['beschreibung'])) {
|
||||
$errors[] = 'Beschreibung ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['lebensraum'])) {
|
||||
$errors[] = 'Lebensraum ist erforderlich.';
|
||||
}
|
||||
if (empty($_POST['nahrung'])) {
|
||||
$errors[] = 'Nahrung ist erforderlich.';
|
||||
}
|
||||
|
||||
// Fehler anzeigen, falls vorhanden
|
||||
if (!empty($errors)) {
|
||||
foreach ($errors as $error) {
|
||||
echo "<p style='color:red;'>{$error}</p>";
|
||||
}
|
||||
} else {
|
||||
// Eingaben bereinigen, um Sicherheit zu gewährleisten
|
||||
$input = array(
|
||||
'id' => htmlspecialchars($_POST['id'], ENT_QUOTES, 'UTF-8'),
|
||||
'name' => htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'),
|
||||
'wissenschaftlicher_name' => htmlspecialchars($_POST['wissenschaftlicher_name'], ENT_QUOTES, 'UTF-8'),
|
||||
'beschreibung' => htmlspecialchars($_POST['beschreibung'], ENT_QUOTES, 'UTF-8'),
|
||||
'lebensraum' => htmlspecialchars($_POST['lebensraum'], ENT_QUOTES, 'UTF-8'),
|
||||
'nahrung' => htmlspecialchars($_POST['nahrung'], ENT_QUOTES, 'UTF-8')
|
||||
);
|
||||
|
||||
// Ausgewählten Index aktualisieren
|
||||
$data_array[$index] = $input;
|
||||
|
||||
// JSON-Daten zurückschreiben
|
||||
$data = json_encode($data_array, JSON_PRETTY_PRINT);
|
||||
if (file_put_contents('tiere.json', $data) === false) {
|
||||
echo "<p style='color:red;'>Fehler beim Speichern der Daten.</p>";
|
||||
exit;
|
||||
}
|
||||
|
||||
// Umleitung zur Hauptseite
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tiere in unserem Kleingarten</title>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1 class="page-header text-center">Tiere in unserem Kleingarten</h1>
|
||||
<div class="row">
|
||||
<div class="col-1"></div>
|
||||
<div class="col-8"><a href="index.php" class="btn btn-primary">Zurück</a>
|
||||
<form method="POST">
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">ID</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="id" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="name" name="name" value="<?php echo htmlspecialchars($row['name'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Wissenschaftlicher Name</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="wissenschaftlicher_name" name="wissenschaftlicher_name" value="<?php echo htmlspecialchars($row['wissenschaftlicher_name'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Beschreibung</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="beschreibung" name="beschreibung" value="<?php echo htmlspecialchars($row['beschreibung'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Lebensraum</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="lebensraum" name="lebensraum" value="<?php echo htmlspecialchars($row['lebensraum'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label class="col-sm-2 col-form-label">Nahrung</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" class="form-control" id="nahrung" name="nahrung" value="<?php echo htmlspecialchars($row['nahrung'], ENT_QUOTES, 'UTF-8'); ?>">
|
||||
</div>
|
||||
</div>
|
||||
<input type="submit" name="save" value="Speichern" class="btn btn-primary2">
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-5"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
62
index.php
Normal file
62
index.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tiere in unserem Kleingarten</title>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
|
||||
|
||||
<style>
|
||||
.btn {margin-top: 7px;}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1 class="page-header text-center">Tiere in unserem Kleingarten</h1>
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<a href="add.php" class="btn btn-primary">Hinzufügen</a>
|
||||
<!-- Button zum Wiederherstellen der JSON-Datei -->
|
||||
<a href="recover.php" class="btn btn-danger">JSON wiederherstellen</a>
|
||||
<table class="table table-bordered table-striped" style="margin-top:20px;">
|
||||
<thead>
|
||||
<th>ID</th>
|
||||
<th>Name</th>
|
||||
<th>Wissenschaftlicher Name</th>
|
||||
<th>Beschreibung</th>
|
||||
<th>Lebensraum</th>
|
||||
<th>Nahrung</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
// JSON-Daten holen
|
||||
$data = file_get_contents('tiere.json');
|
||||
//Decode in php Array
|
||||
$data = json_decode($data);
|
||||
|
||||
$index = 0;
|
||||
foreach($data as $row){
|
||||
echo "
|
||||
<tr>
|
||||
<td>".$row->id."</td>
|
||||
<td>".$row->name."</td>
|
||||
<td>".$row->wissenschaftlicher_name."</td>
|
||||
<td>".$row->beschreibung."</td>
|
||||
<td>".$row->lebensraum."</td>
|
||||
<td>".$row->nahrung."</td>
|
||||
<td>
|
||||
<a href='edit.php?index=".$index."' class='btn btn-success btn-sm'>Bearbeiten</a>
|
||||
<a href='delete.php?index=".$index."' class='btn btn-danger btn-sm'>Löschen</a>
|
||||
</td>
|
||||
</tr>
|
||||
";
|
||||
|
||||
$index++;
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
94
recover.php
Normal file
94
recover.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>JSON Wiederherstellung</title>
|
||||
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
|
||||
<style>
|
||||
* { margin: 15px;
|
||||
padding: 15px
|
||||
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Wiederherstellen</h1>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
// Pfad zur JSON-Datei
|
||||
$json_file = 'tiere.json';
|
||||
|
||||
// Ursprünglicher JSON-Inhalt
|
||||
$original_data = [
|
||||
[
|
||||
"id" => "0",
|
||||
"name" => "Feldhase",
|
||||
"wissenschaftlicher_name" => "Lepus europaeus",
|
||||
"beschreibung" => "Der Feldhase ist ein großes, schlankes Säugetier mit langen Ohren und kräftigen Hinterbeinen. Er ist oft in offenen Landschaften und Gärten zu finden.",
|
||||
"lebensraum" => "Wiesen, Felder, Gärten",
|
||||
"nahrung" => "Gräser, Kräuter, Gemüse"
|
||||
],
|
||||
[
|
||||
"id" => "1",
|
||||
"name" => "Feldwespe",
|
||||
"wissenschaftlicher_name" => "Polistes dominula",
|
||||
"beschreibung" => "Die Feldwespe ist eine kleine Wespenart mit gelb-schwarzer Zeichnung. Sie baut ihre Nester aus Papiermasse an geschützten Stellen wie unter Dächern oder in Gebüschen.",
|
||||
"lebensraum" => "Gärten, Wiesen, Hecken",
|
||||
"nahrung" => "Insekten, Nektar"
|
||||
],
|
||||
[
|
||||
"id" => "2",
|
||||
"name" => "Balkenschröter",
|
||||
"wissenschaftlicher_name" => "Dorcus parallelipipedus",
|
||||
"beschreibung" => "Der Balkenschröter ist ein mittelgroßer Käfer mit einer flachen, schwarzen Körperform. Er ist oft in Laubwäldern zu finden und ernährt sich von totem Holz.",
|
||||
"lebensraum" => "Wälder, Gärten, alte Bäume",
|
||||
"nahrung" => "Totes Holz, Baumsaft"
|
||||
],
|
||||
[
|
||||
"id" => "3",
|
||||
"name" => "Amsel",
|
||||
"wissenschaftlicher_name" => "Turdus merula",
|
||||
"beschreibung" => "Die Amsel ist ein bekannter Singvogel mit einem charakteristischen schwarzen Gefieder beim Männchen und braunem Gefieder beim Weibchen. Sie ist häufig in Gärten und Parks anzutreffen.",
|
||||
"lebensraum" => "Gärten, Wälder, Parks",
|
||||
"nahrung" => "Würmer, Insekten, Beeren"
|
||||
],
|
||||
[
|
||||
"id" => "4",
|
||||
"name" => "Grünspecht",
|
||||
"wissenschaftlicher_name" => "Picus viridis",
|
||||
"beschreibung" => "Der Grünspecht ist ein großer Spechtvogel mit grünem Gefieder und einem roten Scheitel. Er ist bekannt für seine Vorliebe, Ameisen aus dem Boden zu picken.",
|
||||
"lebensraum" => "Wälder, Gärten, Obstgärten",
|
||||
"nahrung" => "Ameisen, Insekten, Larven"
|
||||
],
|
||||
[
|
||||
"id" => "5",
|
||||
"name" => "Buntspecht",
|
||||
"wissenschaftlicher_name" => "Dendrocopos major",
|
||||
"beschreibung" => "Der Buntspecht ist ein mittelgroßer Spechtvogel mit markantem schwarz-weißem Gefieder und roten Federn am Bauch. Er ist in Wäldern und Gärten weit verbreitet.",
|
||||
"lebensraum" => "Wälder, Gärten, Parks",
|
||||
"nahrung" => "Insekten, Larven, Baumsäfte"
|
||||
]
|
||||
];
|
||||
|
||||
// Kodieren des ursprünglichen Inhalts als JSON
|
||||
$json_data = json_encode($original_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
|
||||
|
||||
// Schreiben der Daten in die Datei
|
||||
if (file_put_contents($json_file, $json_data) === false) {
|
||||
echo "Fehler beim Wiederherstellen der JSON-Datei.";
|
||||
} else {
|
||||
echo "JSON-Datei wurde erfolgreich wiederhergestellt.";
|
||||
}
|
||||
|
||||
// Umleitung zurück zur Index-Seite
|
||||
echo '<script type="text/javascript">
|
||||
setTimeout(function(){
|
||||
window.location.href="index.php";
|
||||
}, 1000);
|
||||
</script>';
|
||||
exit;
|
||||
?>
|
||||
50
tiere.json
Normal file
50
tiere.json
Normal file
@@ -0,0 +1,50 @@
|
||||
[
|
||||
{
|
||||
"id": "0",
|
||||
"name": "Feldhase",
|
||||
"wissenschaftlicher_name": "Lepus europaeus",
|
||||
"beschreibung": "Der Feldhase ist ein großes, schlankes Säugetier mit langen Ohren und kräftigen Hinterbeinen. Er ist oft in offenen Landschaften und Gärten zu finden.",
|
||||
"lebensraum": "Wiesen, Felder, Gärten",
|
||||
"nahrung": "Gräser, Kräuter, Gemüse"
|
||||
},
|
||||
{
|
||||
"id": "1",
|
||||
"name": "Feldwespe",
|
||||
"wissenschaftlicher_name": "Polistes dominula",
|
||||
"beschreibung": "Die Feldwespe ist eine kleine Wespenart mit gelb-schwarzer Zeichnung. Sie baut ihre Nester aus Papiermasse an geschützten Stellen wie unter Dächern oder in Gebüschen.",
|
||||
"lebensraum": "Gärten, Wiesen, Hecken",
|
||||
"nahrung": "Insekten, Nektar"
|
||||
},
|
||||
{
|
||||
"id": "2",
|
||||
"name": "Balkenschröter",
|
||||
"wissenschaftlicher_name": "Dorcus parallelipipedus",
|
||||
"beschreibung": "Der Balkenschröter ist ein mittelgroßer Käfer mit einer flachen, schwarzen Körperform. Er ist oft in Laubwäldern zu finden und ernährt sich von totem Holz.",
|
||||
"lebensraum": "Wälder, Gärten, alte Bäume",
|
||||
"nahrung": "Totes Holz, Baumsaft"
|
||||
},
|
||||
{
|
||||
"id": "3",
|
||||
"name": "Amsel",
|
||||
"wissenschaftlicher_name": "Turdus merula",
|
||||
"beschreibung": "Die Amsel ist ein bekannter Singvogel mit einem charakteristischen schwarzen Gefieder beim Männchen und braunem Gefieder beim Weibchen. Sie ist häufig in Gärten und Parks anzutreffen.",
|
||||
"lebensraum": "Gärten, Wälder, Parks",
|
||||
"nahrung": "Würmer, Insekten, Beeren"
|
||||
},
|
||||
{
|
||||
"id": "4",
|
||||
"name": "Grünspecht",
|
||||
"wissenschaftlicher_name": "Picus viridis",
|
||||
"beschreibung": "Der Grünspecht ist ein großer Spechtvogel mit grünem Gefieder und einem roten Scheitel. Er ist bekannt für seine Vorliebe, Ameisen aus dem Boden zu picken.",
|
||||
"lebensraum": "Wälder, Gärten, Obstgärten",
|
||||
"nahrung": "Ameisen, Insekten, Larven"
|
||||
},
|
||||
{
|
||||
"id": "5",
|
||||
"name": "Buntspecht",
|
||||
"wissenschaftlicher_name": "Dendrocopos major",
|
||||
"beschreibung": "Der Buntspecht ist ein mittelgroßer Spechtvogel mit markantem schwarz-weißem Gefieder und roten Federn am Bauch. Er ist in Wäldern und Gärten weit verbreitet.",
|
||||
"lebensraum": "Wälder, Gärten, Parks",
|
||||
"nahrung": "Insekten, Larven, Baumsäfte"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user