<?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:

Schreibe einen Kommentar