kostenloser Webspace werbefrei: lima-city


Sonderzeichen von Input in HTML umwandeln

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    goldeneye

    Kostenloser Webspace von goldeneye

    goldeneye hat kostenlosen Webspace.

    Hey tag/leute">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 -_-)

    Mein anderer Ansatz ist folgendes Script:

    /**
         * @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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. d*****k

    Kann es sein, dass der String noch urlencoded ist, durch die Übertragung? Ich mache es bei meinem Gästebuch wie folgt:

    $text = htmlentities(utf8_decode($_POST['entry']), ENT_QUOTES);
    //$_POST['entry'] ist mein Input-Inhalt
    $text = str_replace('&amp;#','&#',$text);
    $text = str_replace("\r\n",'<br />',$text);
    $text = str_replace("\n",'<br />',$text);


    Der Formular-Tag sieht so aus: (wichtig hier eben das accept-charset)
    <form method="post" action="write-do.html" accept-charset="UTF-8">


    Ansonsten... keine Ahnung. :frown:

    Beitrag zuletzt geändert: 30.4.2011 23:22:32 von dermaik
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!