Antworten auf deine Fragen:
Neues Thema erstellen

Sonderzeichen von Input in HTML umwandeln

onemillion

Nicht mehr ganz neu hier

Hey Leute.
Seid langem schlage ich mich mit diesem Problem herum. Nun Wollte ich erfragen, ob jemand von euch eine Generallösung gefunden hat.
Wie im Title erwähnt möchte ich einfach nach einer Eingabe per PHP die Sonderzeichen in HTML- Umlaute umwandeln.
Natürlich habe ich bereits htmlentities versucht, aber hierbei erhalte ich nicht den gewünschten Effekt , was echt deprimierend ist (Stundenlang schlag ich mich mit solch einem Müll herum ohne dabei ergebnisse zu erhalten -_-)

bei htmlentities versuche ich grundsätzlich:
PHP:
<?php
$str = htmlentities($string, ENT_QUOTES, 'UTF-8');
?>
wobei dies leider einen leeren String zurückgibt -_-
Bei der ISO-8859-15 habe ich mehr erfolgt, dafür werden ja hierbei leider nur ein sehr kleiner Teil von Sonderzeichen umgewandelt.
PHP:
<?php
$str = htmlentities($string, ENT_QUOTES, 'ISO-8859-15);
?>

Mein anderer Ansatz ist folgendes Script:
PHP:
<?php
    /**
     * @abstract formt normalen Text & Sonderzeichen in Html um
     * 
     * @param string
     * @return string
     */
    public function htmlMy($str)
    {
        $count    = 1;
        $out    = '';
        $temp    = array();

        for ($i = 0, $s = strlen($str); $i < $s; $i++)
        {
            $ordinal = ord($str[$i]);

            if ($ordinal < 128)
            {
                if (count($temp) == 1)
                {
                    $out  .= '&#'.array_shift($temp).';';
                    $count = 1;
                }

                $out .= $str[$i];
            }
            else
            {
                if (count($temp) == 0)
                {
                    $count = ($ordinal < 224) ? 2 : 3;
                }

                $temp[] = $ordinal;

                if (count($temp) == $count)
                {
                    $number = ($count == 3) ? (($temp['0'] % 16) * 4096) + (($temp['1'] % 64) * 64) + ($temp['2'] % 64) : (($temp['0'] % 32) * 64) + ($temp['1'] % 64);

                    $out .= '&#'.$number.';';
                    $count = 1;
                    $temp = array();
                }
            }
        }

        return $out;
    }
?>
Diese führt auf einigen meiner Server zu einer Umwandlung der eingaben, aber auf meinem XAMPP zu einer Veränderung in Asiatische Schriftzeichen -_-

Kennt jemand dieses Problem und hat dafür eine Lösung?
Vielleicht jemand eine idee, warum htmlentities bei mir nicht funktioniert???

Hoffe auf Hilfe ;)
Daniel
 

AW: Sonderzeichen von Input in HTML umwandeln

Hmm versuch doch mal vielleicht hast damit mehr erfolg
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.993
Beiträge
1.540.266
Mitglieder
68.217
Neuestes Mitglied
lokitaks
Oben