<?php
// Fehlermeldungen aktivieren
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
header('Content-Type: text/html; charset=utf-8');
// HTML-Struktur beginnen und Hintergrundfarbe setzen
echo '<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Übersetzungsseite</title>
<style>
body {
background-color: #B4CDCD;
}
</style>
</head>
<body>';
// Verbindungsinformationen (sollten in einer separaten Konfigurationsdatei sein)
$servername = "mysql33.1blu.de";
$username = "s344558_3490800";a
$password = "xxxxx";
$database = "db344558x3490800";
// Verbindung herstellen
$conn = new mysqli($servername, $username, $password, $database);
// Überprüfen der Verbindung
if ($conn->connect_error) {
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
$conn->set_charset("utf8mb4");
function strip_formatting($text) {
// Entfernt HTML-Tags und konvertiert HTML-Entities
$text = strip_tags($text);
$text = html_entity_decode($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');
// Entfernt mehrfache Leerzeichen
//$text = preg_replace('/\s+/', ' ', $text);
return trim($text);
}
function strip_formatting_keep_linebreaks($text) {
// Konvertiert Zeilenumbrüche in einen temporären Platzhalter
$text = str_replace(["\r\n", "\r", "\n"], "[[LINEBREAK]]", $text);
// Entfernt HTML-Tags und konvertiert HTML-Entities
$text = strip_tags($text);
$text = html_entity_decode($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');
// Entfernt mehrfache Leerzeichen, außer den Platzhaltern
$text = preg_replace('/\s+/', ' ', $text);
// Stellt Zeilenumbrüche wieder her
$text = str_replace("[[LINEBREAK]]", "\n", $text);
return trim($text);
}
function uebersetze($text, $conn, $von, $zu) {
// Formatierung entfernen, aber Zeilenumbrüche beibehalten
$text = strip_formatting_keep_linebreaks($text);
$sql = "SELECT $von, $zu FROM uebersetzungen";
$result = $conn->query($sql);
if (!$result) {
die("Fehler bei der Abfrage: " . $conn->error);
}
$uebersetzungen = [];
while ($row = $result->fetch_assoc()) {
$uebersetzungen[mb_strtolower($row[$von])] = $row[$zu];
}
// Teilt den Text in Zeilen
$lines = explode("\n", $text);
foreach ($lines as &$line) {
$words = preg_split('/\b/', $line);
foreach ($words as &$word) {
$lowercase_word = mb_strtolower($word);
if (isset($uebersetzungen[$lowercase_word])) {
$word = $uebersetzungen[$lowercase_word];
}
}
$line = implode('', $words);
}
return implode("\n", $lines);
}
// Verwendung
if (isset($_POST['eingabe'])) {
$eingabe = $_POST['eingabe'];
$uebersetzt = uebersetze($eingabe, $conn, 'englisch', 'deutsch');
// Hier können Sie die gewünschte Formatierung auf $uebersetzt anwenden
$formatierter_text = nl2br($uebersetzt);
echo $formatierter_text;
}
Es wird bei jeder Übersetzung LM angezeigt: