ilch Forum » Allgemein » HTML, PHP, SQL,... » ISO-8859-1 to ISO-8859-2!!!

Geschlossen
  1. #1
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Hi everyone. Im not from German and i don't speek your languege, but i use ilchclan 1.1

    I want have ISO-8859-1 for my script, but i dont know what should do.
    I edited index.htm in design folder, but its not work

    clip2net.com/clip/m0/1293480307-clip-22kb.png?nocache=1


    Please help me (for english).


    Zuletzt modifiziert von divx_divine am 27.12.2010 - 21:09:09
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Jan Hall Of Fame
    Registriert seit
    17.01.2007
    Beiträge
    3.646
    Beitragswertungen
    54 Beitragspunkte
    For what reason do you want to have a special encoding?
    I think you have to change it in your MySQL database as well.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    I'm form Poland, man.
    Ehh, i changed code in my site, but in news i haven't "polish symbols"

    img46.imageshack.us/img46/6670/beztytuuvmo.jpg

    gesperrtes Bild

    I do not know why the News section do not have these characters. I beg you, help me!
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    In the includes/class/design.php the charset is set with
        	header('Content-Type: text/html;charset=ISO-8859-1');
    you can change it there and in your designs index.htm, i think its better to use utf-8 instead of another iso charset.
    But as jankrug said to save other characters in your database you should change the charset there too.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Mairu

    In the includes/class/design.php the charset is set with
        	header('Content-Type: text/html;charset=ISO-8859-1');
    you can change it there and in your designs index.htm, i think its better to use utf-8 instead of another iso charset.
    But as jankrug said to save other characters in your database you should change the charset there too.


    In Iso-8859 haven't polish characters. :/
    I can change code, but i don't know why in news have not special characters :/
    Please, help me!
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mhh the bbcode function uses the php function htmlentities which converts special character to html entities, this function uses iso-8859-1 as standard charset.

    I dont know which bbcode you use so i cant go into detail, but you have to edit includes/func/bbcode.php or includes/class/bbcode.php and search for the htmlentities function call, and try to use utf-8 instead of iso.
    Its btw not the only occurrence of htmlentities in ilch, you can search it in other files too, like the includes/class/design.php.


    Zuletzt modifiziert von Mairu am 01.01.2011 - 14:34:26
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    <head>
    <title>{TITLE}</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="include/designs/ilchClan/style.css">

    </head>


    Head from designes/index.htm
    ..
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Mairu

    Mhh the bbcode function uses the php function htmlentities which converts special character to html entities, this function uses iso-8859-1 as standard charset.

    I dont know which bbcode you use so i cant go into detail, but you have to edit includes/func/bbcode.php or includes/class/bbcode.php and search for the htmlentities function call, and try to use utf-8 instead of iso.
    Its btw not the only occurrence of htmlentities in ilch, you can search it in other files too, like the includes/class/design.php.


    Zuletzt modifiziert von Mairu am 01.01.2011 - 14:34:26



    Sry, for doublepost.

    I cant find utf-8 or iso for bbcode.php.
    I dont know what shuold do.

    Look for code:


    <?php 
    #   Copyright by Manuel
    #   Support www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    function BBcode($s,$maxLength=40) {
      #$s = unescape($s);
    	
      $coTime = str_replace(' ', '', microtime());
    	preg_match_all('/\[code\](.+)\[\/code\]/Uis',$s,$result);
      
      $s = bbcode_code_start ($s, $coTime, $result);
      
      # bbcode einheitlicher machen zum bessern pruefen.
      $s = bbcode_simple_prev ($s);
      
      #$s = preg_replace ("/(\015\012|\015|\012)/", " \\1", $s);
      
      # autoumbruch nach x zeichen
      #$s = bbcode_autonewline($s, $coTime, $maxLength);
      
      $s = htmlentities($s);
      
      # speziell bilder
      $s = bbcode_images ($s);
      
      # speziell zitate ersetzten.
      $s = bbcode_quote ($s);
      
      # replace simple
    	$s = bbcode_simple ($s);
      
    	# smilies umwandeln
    	$s = bbcode_smiles ($s);
    	
      $s = preg_replace ("/\015\012|\015|\012/", "\n<br />", $s);
      
      # code zurueck ersetzten
      $s = bbcode_code_end ($s, $coTime, $result);
    	
    	return ($s);
    }
    
    # diese funktion ist etwas komplizierter. und zwar wird hier versucht
    # dem problem beizukommen das immer irgendwelche spassvoegel sehr lange
    # texte schreiben die dann das design verzerren. dagegen hilft nur der
    # automatische umbruch. ich habe mir dafuer ausgedacht es gibt
    # bestimmte zeichen ab dennen die kontrolle total aus ist (url, img)
    # und es gibt zeichen ab dennen die kontrolle wieder eingeschaltet wird
    # ausserdem gibt es zeichen ab dennen wieder von vorn angefangen wird
    # zu zahlen, wird der counter erreicht wird ein leerzeichen eingefueght.
    function bbcode_autonewline ($s, $coTime,$maxLength) {
      $neu_s = '';
      
      $ar_start = array (
        '[url=http://',
        '[img]'
      );
      
      $ar_ende = array (
        ']',
        '[/img]'
      );
      
      $ar_neu = array (
        ' ',
      );
      
      $ar_next = array (' ',"\n","\r",'[/url]','[b]','[/b]','[i]','[/i]','[u]','[/u]',$coTime,'[list]','[/list]','[*]');
      
      $count   = TRUE;
      $countgr = null;
      $counter = -1;
      
      $a = strlen ($s);
      for ($i=0;$i<$a;$i++) {
        # counter raus / rein
        if ($count == TRUE) {
          foreach ($ar_start as $sk => $sv) {
            if ($s{$i} == substr($sv, 0, 1) AND preg_match("/^".preg_quote($sv, '/')."/", substr($s, $i))) {
              $count   = FALSE;
              $countgr = $sk;
              $counter = 0;
              #echo '<h1>ON</h1>';
              break;
            }
          }
        } elseif ($count == FALSE AND $s{$i} == substr($ar_ende[$countgr], 0, 1) AND preg_match("/^".preg_quote($ar_ende[$countgr], '/')."/", substr($s, $i))) {
          #echo '<h1>||'. $s{$i} .'||<br>||'.substr($s, $i, 10).'||<br>';
          #echo 'OFF</h1>';
          $count   = TRUE;
          $counter = -2;
          $countgr = null;
        }
     
        if ($count == TRUE) {
          $counter++;
        
          # ar neu?
          foreach ($ar_neu as $v) {
            if ($count == TRUE AND $s{$i} == substr($v, 0, 1) AND preg_match ("/^".preg_quote($v)."/", substr($s, $i))) {
              $counter = -3;
              break;
            }
          }
          
          # springen
          foreach ($ar_next as $v) {
            if ($s{$i} == substr($v, 0, 1) AND preg_match("/^".preg_quote($v, '/')."/", substr($s, $i))) {
              $i = $i + strlen ($v) - 1;
              $springen = true;
              $valSprin = $v;
              break;
            }
          }
          if (isset($springen) AND $springen === true) {
            $neu_s .= $valSprin;
            $springen = false;
            $valSprin = null;
            continue;
          }
        
        
          if ($counter >= $maxLength) {
            $neu_s  .= ' ';
            $counter = 0;
          }
        }
        
        $neu_s .= $s{$i};
      }
      
      /*
      $s = str_replace('</a>', ' </a>', $s);
      $lines = explode(' ',$s);
      
    	$ntxt = '';
    	foreach ($lines as $v) {
    	  if ( strpos($v,$coTime) === FALSE AND strpos ($v, 'src="') === FALSE AND strpos ($v, 'href="') === FALSE AND strpos ($v, '</table>') === FALSE) {
    		  $ntxt .= chunk_split($v, $maxLength, ' ').' ';
        } else {
    		  $ntxt .= $v.' ';
    		}
    	}
    	$s = $ntxt;
      $s = str_replace(' </a>', '</a>', $s);
      */
      return($neu_s);
    }
    
    function bbcode_images ($s) {
      global $allgAr;
      
      preg_match_all('/\[img\](http|https):\/\/([^\ \?&=\#\"\n\r\t<>]+)\.(gif|jpeg|jpg|png)\[\/img\]/Ui',$s,$imgRs);
      
    	$max_breite = 0;
    	if (isset($allgAr['allg_bbcode_max_img_width'])) {
        $max_breite = $allgAr['allg_bbcode_max_img_width'];
    	}
      $endung = array (1 => 'gif', 2 => 'jpg', 3 => 'png');
      
      if ( isset ($imgRs[0][0]) ) {
        for($i=0;$i<count($imgRs[0]);$i++) {
      	  $imgstr = $imgRs[1][$i].'://'.$imgRs[2][$i].'.'.$imgRs[3][$i];
          $size   = @getimagesize($imgstr);
    			$breite = $neueBreite = $size[0];
          $hoehe  = $neueHoehe  = $size[1];
          $er     = '';
          if (isset($endung[$size[2]]) OR !is_array($size)) {
            $er = '<img style="border: none;" src="'.$imgstr.'" />';
            if ( $breite > $max_breite ) {
              $neueHoehe  = intval($hoehe*$max_breite/$breite);
              $neueBreite = $max_breite;
              $er = '<a href="'.$imgstr.'" target="_blank"><img height="'.$neueHoehe.'" width="'.$neueBreite.'" style="border: none;" src="'.$imgstr.'" /></a>';
            }
          } 
          $s = str_replace($imgRs[0][$i],$er,$s);
        }
      }
      return($s);
    }
    
    function bbcode_quote ($s) {
     	$tpl = new tpl ( 'zitatreplace.htm' );
    	$header1_quote = $tpl->get(0);
    	$header2_quote = $tpl->get(1);
    	$footer1_quote = $tpl->get(2);
    	unset($tpl);
      $i=0;
      while(strpos($s,"[/quote]")!==FALSE AND $i < 5 ) {
        $i++;
        $s = preg_replace("#\[quote\=([^\]]*)\](.*)\[\/quote\]#Uis",$header1_quote."geschrieben von \\1".$header2_quote."\\2".$footer1_quote, $s);
        $s = preg_replace("/\[quote\](.*)\[\/quote\]/Usi", $header1_quote.$header2_quote."\\1".$footer1_quote, $s );
      }
      return ($s);
    }
    
    function bbcode_simple_prev ($s) {
      $search = array (
        "/(^|[^=\]\>\"])http:\/\/(www\.)?([^\s\"\<\[]*)/i",
        "/\[url\]http:\/\/(www\.)?(.*?)\[\/url\]/si",
      );
      
    	$replace = array (
        "\\1[url]http://\\2\\3[/url]",
        "[url=http://\\1\\2]\\2[/url]",
    	);
    						
    	$s = preg_replace($search, $replace, $s);
      return ($s);
    }
    
    function bbcode_simple ($s) {
      $page = preg_quote(dirname(str_replace('www.','',$_SERVER["HTTP_HOST"]).$_SERVER["SCRIPT_NAME"]), '/');
      $search = array (
        "/\[b\](.*?)\[\/b\]/si",
        "/\[i\](.*?)\[\/i\]/si",
        "/\[u\](.*?)\[\/u\]/si",
        "/\[url=http:\/\/(www\.)?(".$page.")(.*?)](.*?)\[\/url\]/si",
        "/\[url=http:\/\/(www\.)?(.*?)\](.*?)\[\/url\]/si",
        "/\[list(=1)?\](.+)\[\/list\]/Usie",
        "/(script|about|applet|activex|chrome):/is",
      );
      
    	$replace = array (
        "<b>\\1</b>",
        "<i>\\1</i>",
        "<u>\\1</u>",
        "<a href=\"http://\\1\\2\\3\">\\4</a>",
        "<a href=\"http://\\1\\2\" target=\"_blank\">\\3</a>",    
        "bbcode_simple_list ('\\1', '\\2')",
        "\\1&#058;",
    	);
    						
    	$s = preg_replace($search, $replace, $s);
      return ($s);
    }
    
    function bbcode_simple_list ($w, $s) {
    #  $s = preg_replace("\015\012
      $s = preg_replace("/\[\*\]([^\[]+)/ies", "'<li>'.trim('\\1').'</li>'", trim($s));
      if ($w == '=1') {
        return ('<ol>'.trim($s).'</ol>');
      }
      
      return ('<ul>'.trim($s).'</ul>');
    }
    
    function bbcode_smiles ($s) {
      global $global_smiles_array;
      if (!isset($global_smiles_array)) {
        $global_smiles_array = array();
        $erg = db_query("SELECT ent, url, emo FROM `prefix_smilies`");
    	  while ($row = db_fetch_object($erg) ) {
    		  $global_smiles_array[$row->ent] = $row->emo.'#@#-_-_-#@#'.$row->url;
    	  }
      }
      foreach ($global_smiles_array as $k => $v) {
        list($emo, $url) = explode('#@#-_-_-#@#', $v);
        $s = str_replace($k,'<img src="include/images/smiles/'.$url.'" border="0" alt="'.$emo.'" title="'.$emo.'" />',$s);
      }
      return ($s);
    }
    
    function bbcode_code_start ($s, $coTime, $result) {
    	for ($i=0;$i<count($result[1]);$i++) 	{
    		if ($result[0][$i]) {
    		  $s = str_replace ($result[0][$i],'#'.$coTime.'#'.$i.'#'.$coTime.'#',$s);
    		}
    	}
      return ($s);
    }
    
    function bbcode_code_end ($s, $coTime, $result) {
    	$tpl = new tpl ( 'codereplace.htm' );
    	for ($i=0;$i<count($result[1]);$i++) {
    		if ($result[1][$i]) {
    			ob_start();
    			#$result[1][$i] = str_replace ('&lt;', '<', str_replace('&gt;', '>', $result[1][$i]));
          #$codereplace = highlight_string(trim($result[1][$i]), 1);
    			highlight_string(trim($result[1][$i]));
    			$codereplace = ob_get_contents();
    			ob_end_clean();
    			$newstring = $tpl->set_get ( 'CODEREPLACE', $codereplace, 0);
    			$s = str_replace('#'.$coTime.'#'.$i.'#'.$coTime.'#',$newstring,$s);
    		}
    	}
    	unset($tpl);
      return ($s);
    }
    ?>



    Zuletzt modifiziert von Mairu am 02.01.2011 - 00:15:57
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
      $s = htmlentities($s, ENT_COMPAT, 'UTF-8')
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von Mairu

      $s = htmlentities($s, ENT_COMPAT, 'UTF-8')





    I paste your code in 23 line and look for error:
    Parse error: syntax error, unexpected T_VARIABLE in C:\xampp\htdocs\0\include\includes\func\bbcode.php on line 26



    My 26 line in bbcode.php:
    $s = bbcode_images ($s);
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    dastiii Mitglied
    Registriert seit
    27.12.2005
    Beiträge
    2.354
    Beitragswertungen
    84 Beitragspunkte
      $s = htmlentities($s, ENT_COMPAT, 'UTF-8');


    he forgot the semicolon at the end of the line
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    ZitatZitat geschrieben von DaStIaC

      $s = htmlentities($s, ENT_COMPAT, 'UTF-8');


    he forgot the semicolon at the end of the line


    Wow! Finally, I have Polish characters! Just one more small request. Since all these changes at the top of the page encoding appeared to me to be an error:

    Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\0\include\includes\class\design.php:1) in C:\xampp\htdocs\0\include\includes\class\design.php on line 23


    23 line on design.php:
    header('Content-Type: text/html;charset=UTF-8');
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Its a problem of your editor you have now a not visible character at the beginning of your file, try to use another editor like pspad to edit your files. Perhaps you have to start from the unmodified ilch standard file.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    divx_divine Mitglied
    Registriert seit
    27.12.2010
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Design.php klebte eine normale Datei und korrigiert nur auf UTF-8, aber der Fehler immer noch nicht verschwinden.
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten