Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Něco navíc v zeleném?
A proč ne...

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Klub PHP [ŽP: neomezená] (kategorie Programování) moderuje makovec.
Archiv
Diskuse o vybornem skriptovacim jazyku php. Dulezite odkazy, pred polozenim dotazu zkuste hledat odpoved zde:
  1. www.php.net - domovská stránka PHP
  2. www.kosek.cz - spousta tutorialu pro PHP v češtině
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
 Titulek, text příspěvku  
Opište pozpátku následující text bez prostředního znaku: fsdqjgt
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
knedle knedle online - Krabice živých 4.10.2007 10:11  2118
ja uz hledam pomoci mb_fci
  if (is_array($kde)) {
    $kde_hlavni = $kde[0];
    $kde = $kde_ascii = $kde[1];
  }
  $zacatek = mb_stripos($kde, $co);
  if ($zacatek === false) {
    // nic
  }
  else {
    //$konec = $zacatek + strlen($co);
    if (!empty($kde_hlavni)) {
      $kde = $kde_hlavni;
    }
    $nalezeny_string = mb_substr($kde, $zacatek, mb_strlen($co));
    $kde = str_replace($nalezeny_string, '<span class="b">'.$nalezeny_string.'</span>', $kde);
  }
  return $kde;


ale vysledek je uplne stejny jako predtim
ted si nejsem jist, zda muj str_replace je chybou - mb_str_replace neni - musel bych pres mb_ereg

nicmene dle vseho mam stale spatne to pocitani odkud zacit s vytahnutim retezce...
huh huh 4.10.2007 10:09  2117
Ale IMHO to má vracet ta rutina, co to hledání dělá
themajkl themajkl All those moments will be lost in time - like tears in rain. 4.10.2007 10:06  2116
huh [2115]: No, tak bych čekal, že mu poradíte, ať použije tohle....
huh huh 4.10.2007 10:04  2115
themajkl [2112]: jestli myslíš náhradu za stripos, tak ta existuje taky: mb_stripos
themajkl themajkl All those moments will be lost in time - like tears in rain. 4.10.2007 09:47  2114
No já to chápu tak, že vrátí kus řetězce dle zadaných hodnot, ne že HLEDÁ, jestli tam něco je nebo není.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 4.10.2007 09:38  2113
A co jineho by mela proboha delat?
themajkl themajkl All those moments will be lost in time - like tears in rain. 4.10.2007 09:32  2112
huh [2111]: Multibyte substr i hledá?
huh huh 4.10.2007 09:06  2111
A co má podle vás dvou to mb_substr asi dělat?
themajkl themajkl All those moments will be lost in time - like tears in rain. 4.10.2007 08:50  2110
knedleHlavně si myslím, že na to musí už existovat nějaká funkce, na vyhledávání pozice substringu v utf.
knedle knedle online - Krabice živých 4.10.2007 08:36  2109
jeste zpet memu problemuzda se mi ze celej "muj" princip s vyhledanim pozice v ascii a oznacenim v neascii je spatne

ani po nasazeni mb_funkci sem se totiz nedostal na kyzeny stav...
... ono je to furt jasne proc - bo v ascii jsou znaky jednobajtove a v originale pak nektere viceznakove

jakym stylem by se to dalo vyresit? jak posunout ten princip?
me uz jen napada spocitat pocet diakritickych znaku v casti pred vyhledavanym substringem a pak timto o tento pocet zvysit zacatek - ale to je dost sileny
knedle knedle online - Krabice živých 3.10.2007 23:55  2108
je mi jasne ci to je - diky za nakopnuti s MB funkcemi
etdirloth EtDirloth 3.10.2007 23:45  2107
knedle [2104]: no to bude tym utf a diakritikou, takze musis pouzivat multibyte string functions, tzn. mb_* funkcie (mb_stripos, mb_strlen, mb_substr, ...)

v pripade, ze nemas pristup ku konfiguracii php a nemas k dispozicii mb_* funkcie, mozes si popri vyhladani slova nechat vratit zo sqlservra aj prislusnu dlzku
bredy 3.10.2007 23:45  2106
knedleProtoze ty najdes pozici v ascii, ale to neni ta sama pozice jako v UTF-8. V UTF-8 ma cesky znak dva bajty (a nektere znaky jinych narodnich abeced klidne i tri nebo ctyry). Musis k vyriznuti nalezeneho retezce pouzit mb_funkce, ktere pracuji spravne vicebajtovymi znaky.
knedle knedle online - Krabice živých 3.10.2007 23:43  2105
v realu je to napr>
vyhledavano "stal"
orig: Kašpárek stále aktuální
ascii: Kasparek stale aktualni

vraceny vysledek: Kašpárek stále aktuální

potazmo mi to deformuje text, pokud na zacatku nebo na konci nahrazeneho textu mam znaky s diakritikou:
iš��álový palác - na konci
Poz��stalí po Amorovi
knedle knedle online - Krabice živých 3.10.2007 23:36  2104
dotaz na principmam vyhledavani v db, kodovani UTF

vyhledavam retezec jak v orig nazvu, tak v ascii nazvu (bo sem ten co nepise furt s diakritikou)

vyhledani neni problem,
zadavam do vyhledavani "kun"
a dastavam zpet dve hodnoty jednoho zaznamu:
orig: "Žluťoučký kůň"
a ascii "Zlutoucky kun"

v originalnum nazvu chci zvyraznit vyhledavany retezec - coz mi ale nejde:
aktualne mam neco takoveho:
  if (is_array($kde)) {
    $kde_hlavni = $kde[0];
    $kde = $kde_ascii = $kde[1];
  }
  $zacatek = stripos($kde, $co);
  if ($zacatek === false) {
    // nic
  }
  else {
    //$konec = $zacatek + strlen($co);
    if (!empty($kde_hlavni)) {
      $kde = $kde_hlavni;
    }
    $nalezeny_string = substr($kde, $zacatek, strlen($co));
    $kde = str_replace($nalezeny_string, '<span class="b">'.$nalezeny_string.'</span>', $kde);
  }
  return $kde;

coz funguje jen za predpokladu, ze se v originale nevyskytuje pred vyhledavanou hodnotou zadny znak s diakritikou (mozna neplati pro uplne vsechny) - ale pokud tam mam nejaky, je $zacatek spocitan spatne (brzo) a tak se mi oznaci blba cast retezce

muzete me nekdo nakopnout?

[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt