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

Modrá je dobrá
zelená je lepší

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: udvvavj
[ 1845 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
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?
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 29.9.2007 19:01  2103
No, ja mezitim zjistil, ze to tak jednoduchy nebude, protoze (aspon podle toho, co jsem nasel) treba IE vubec neposila, ze akceptuje text/html, jenom na zaver posle, ze akceptuje */*. Coz znamena, ze to budu muset resit nikoliv preferencema mime typu, ale browser sniffingem, coz mi prijde podstatne mene elegantni, ale zase snazsi na nakonfigurovani, protoze na tohle se ukazky po webu vali, takze by to melo bejt v pohode.
mach 29.9.2007 17:02  2102
Kdokoliv: No, tech moznosti pro mod_rewrite je opravdu tuna:

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

A rychly vyhledani "accept" a "mime" napovida, ze to fakt pujde. Nikdy sem to ale nedelal. Tipoval bych, ze to pujde napsat na par radku, ale alespon mne by trvalo desne dlouho to odladit.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 29.9.2007 16:37  2101
mach: Aha, no pokud by to cele slo resit jenom konfiguraci Apache bez zasahu PHP, tak tim jenom lepe. Ja bohuzel nikdy Apache nekonfiguroval, takze neznam jeho moznosti.

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

(c) 2001-2011 Lopuch.cz   
Kontakt