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:
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.
Mein anderer Ansatz ist folgendes Script:
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
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');
?>
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;
}
?>
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