Autor Zpráva
Manny
Profil *
Zdravím, mám funkci napsanou na to, aby mi odstranila z řetězce diakritiku a mezery nahradila znakem "-". Problém je ale ten, ze napriklad ze slova "pratele" mi vyleze slovo "ptel"...

Funkce mi vypada nasledovne:
<?php
function prevod_nazvu($nazev)
 {
     $nazev=strtolower($nazev);
     $co=array('ě','š','č','ř','ž','ý','á','í','é','ó','ů','ú',' ','_'); 
     $za_co=array('e','s','c','r','z','y','a','i','e','o','u','u','-','-');   
     $nazev=str_replace($co,$za_co,$nazev); 
     $string = NULL;
     $pred = NULL;
     for($i=0;$i<strlen($nazev);$i++)
     {
         $znak = substr($nazev,$i,1);
         if($pred== $znak AND $znak == '-') 
         
         {}
         elseif((ord($znak) > 96 AND ord($znak)<123) OR (ord($znak)>47 AND ord($znak)<58) OR ord($znak)==45)
         {
           
             $string .= $znak;
             $pred = $znak;
         }
         $znak = NULL;
     }
     return $string;
 }
 ?> 



Předem děkuji za pomoc
ninja
Profil
Jake je vstupni kodovani cestiny?

Jinak:
function utf2ascii ($string) {
	$string=iconv('utf-8','windows-1250',$string);
	$win = "ěščřžýáíéťňďúůóöüäĚŠČŘŽÝÁÍÉŤŇĎÚŮÓÖÜËÄ\x97\x96\x91\x92\x84\x93\x94\xAB  \xBB";
	$ascii="escrzyaietnduuoouaESCRZYAIETNDUUOOUEAOUEA\x2D\x2D\x27\x27\x22  \x22\x22\x22\x22";
	$string = StrTr($string,$win,$ascii);
	return $string;
	}
Manny
Profil *
ninja
tak jsem zjistil, ze se mi ten text uklada do db špatně, ale z ní se mi vypisuje dobře.

Pokusím se to znázornit na příkladu:
- do databáze si uložím slovo "Přátelé"
- když se mrknu do phpmyadmina, co se mi do db uložilo, je tam tohle slovo: "Přátelé" a ve sloupci pro seo je slovo "ptel"
- když si chci vypsat, co mám v db uložené, vypíše se mi správně "Přátelé", ale uprava tohoto slova je "ptel"

Nevíte prosím jak to nějakým způsobem opravit?
ninja
Profil
Je potreba sjednotit kodavani (jazykovou sadu):
- vstupni text
- soubory PHP
- pripojeni k DB

Evidentne to ukladate jinak nez na to koukate.
Manny
Profil *
ninja
Upravil jsem pripojeni do databaze - mysql_query("SET CHARACTER SET utf8");

A uz se mi ten text zobrazuje spravne i s diakritikou, ale bohuzel porad se mi ten text nedari upravit pro SEO.... zkratka opet napr. misto slova Žurnál dostana "urnl" .. :(
Manny
Profil *
vyreseno

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: