Autor | Zpráva | ||
---|---|---|---|
vospunt Profil |
#1 · Zasláno: 3. 11. 2009, 21:40:20
jak mám při nahrazovaní at už str_replace nebo strtr ignorovat velikost pismen ...
nadefinoval jsem si funkci na zvyrazneny vyhledanych slov a kdyz vyhledam napr "a" tak mi to zvyrazni jen mala "a" když zadám "A" tak velká "A" ale jak mám udělat aby zvýraznil "a" i "A" použití na slova např. Karel Gott je ve výpise zadam vyhledat karel gott normalne mi to z DB vypíše ale zvýrazní mi to jen "arel ott" |
||
AM_ Profil |
#2 · Zasláno: 3. 11. 2009, 21:42:53
str_replace->stri_replace
u strtr nevím |
||
vospunt Profil |
#3 · Zasláno: 3. 11. 2009, 21:45:39
stri_replace neexistuje jako funkce mozna ji mas v PHP nadefinovanou ale me nefaka ...
|
||
AM_ Profil |
#4 · Zasláno: 3. 11. 2009, 21:47:40
jo, promin, str_ireplace. A taky je soucasti az od PHP5
|
||
Shulík Profil |
#5 · Zasláno: 3. 11. 2009, 21:48:17
|
||
vospunt Profil |
#6 · Zasláno: 3. 11. 2009, 21:48:40
jo jestli se chce podívat a vyzkoušet to moje zvýraznění je to na Giga-Music.net
|
||
vospunt Profil |
#7 · Zasláno: 3. 11. 2009, 22:04:40
jo funguje taky díky jen ještě dvě otázky kolikrát str_ireplace projde řetězec a nahrazuje ty věci co mu zadám ....
a když zadám "a" tak se podívejte vyhledani_a nahrazuju vyhledane slovo za <span class=zvyraznit>$hledane_slovo</span> a tady bych potreboval poradit jak bych mohl funkci upravit aby mi to pak zachovalo velká malá pismena ... treba spocitat kde se slovo nachazi a podivat se co je to za pisma bo ja nwm $slovo = vyhledae slovo $text je text kde se ma zvyraznit to slovo function zvyraznit($slovo,$text) { $a = array ("%20",":"," ","'",'"',"!","¨","=",",",".","-","_","*","(",")","#","&","@","{","}","<",">","´","ˇ","/","|","\\","%"); $b = "|"; $var = str_replace($a,$b,$slovo); $slovo2 = explode("|",$var); $pocet_slov = count($slovo2); $slovo22 = array(); $text22 = array(); for ($x=0;$x<$pocet_slov;$x++) { if ($slovo2[$x] != $slovo2[$x-1] and $slovo2[$x] != "") { $slovo22[$x] = $slovo2[$x]; $text22[$x] = "<span class=\"zvyraznit\">".$slovo22[$x]."</span>"; } } $nahradit = array_combine($slovo22,$text22); // $text = strtr($text,$nahradit); $text = str_ireplace($slovo22,$text22,$text); return $text; } |
||
AM_ Profil |
#8 · Zasláno: 3. 11. 2009, 22:10:38
Možná přijde i kouzelník:
$zvyraznit=preg_replace('~(?!<[^\s])(('.implode(')|(', $pole_slov_k_zvyrazneni).'))(?![^\s])~i', '<b>\\2</b>', $puvodni_text); snad mám ten regulár správně, ale mělo by to fungovat. |
||
vospunt Profil |
#9 · Zasláno: 3. 11. 2009, 22:17:16
to nejde vůbec teda aspon me ... a regulary neumím tak se snažím to udělat takto :D ale pokud by někdo mel funkci byl bych velice vděčný
|
||
Majkl578 Profil |
#10 · Zasláno: 4. 11. 2009, 13:25:07
Toto by nešlo? :)
$input = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis molestie dui. Sed ac magna non velit consequat euismod quis nec diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer augue diam, pellentesque quis consectetur id, faucibus eget nunc. '; $find = array('ipsum', 'quis', 'sed ac'); array_walk($find, create_function('&$value, $key', '$value = preg_quote($value, \'~\');')); echo preg_replace('~('.implode('|', $find).')~i', '<b>\\1</b>', $input); |
||
vospunt Profil |
#11 · Zasláno: 4. 11. 2009, 22:03:09
Majkl578:
To funguje dobře jen by chtělo ošetřit aby $input neboli vstupni text prosel jen jednou ... pri kazdem nahrazeni slova jede skrtipt ozdzacatku textu ... dělá to problém když to nahrazuju span, <b>\\1</b> jsem nahradil za <span class="zvyraznit">\\1</span> lze to teda ošetřit ? |
||
Majkl578 Profil |
#12 · Zasláno: 4. 11. 2009, 22:15:20 · Upravil/a: Majkl578
vospunt:
?? U mě je výstup toto (což jsem si myslel, že je požadavek): Lorem <span class="zvyraznit">ipsum</span> dolor sit amet, consectetur adipiscing elit. Phasellus <span class="zvyraznit">quis</span> molestie dui. <span class="zvyraznit">Sed ac</span> magna non velit consequat euismod <span class="zvyraznit">quis</span> nec diam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Integer augue diam, pellentesque <span class="zvyraznit">quis</span> consectetur id, faucibus eget nunc. Pokud to není to co požaduješ, zkus to popsat lépe (jsem dneska už trochu zničený...). |
||
vospunt Profil |
#13 · Zasláno: 4. 11. 2009, 22:18:29
Majkl578:
to já taky :D ale podívej se na stránku hned tam tu funkci aplikuju a uvidis www.giga-music.net/vyhledani/mp3-A/00-4/ |
||
Majkl578 Profil |
#14 · Zasláno: 4. 11. 2009, 22:26:00
To je ale špatné chování. Vypadá to jako kdyby jsi to použil v nějakém cyklu. Mohu vidět použití v kontextu?
|
||
vospunt Profil |
#15 · Zasláno: 4. 11. 2009, 22:30:18
mám to v cyklu WHILE
if (get_pos($page2,"2") != "") { $keywords = get_pos($page2,"2"); } else { $keywords = keywrds2($_POST[klicova_slova]); } $keywords_ = keywrds($keywords); while ($zobraz = mysql_fetch_assoc($sql)) { echo "<a class=h2 title='".odstran_uvozovky($zobraz[interpret])." - ".odstran_uvozovky($zobraz[song])."' href='".url_down("mp3",$zobraz[ID],$zobraz[interpret],$zobraz[song])."' >".zvyraznit($keywords_,$zobraz[interpret])." - ".zvyraznit($keywords_,$zobraz[song])."</a>"; echo je($zobraz[ID],$kde_hledat,$zobraz[id_klipu],"klip"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_klipu_yt],"klip_yt"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_textu],"text"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_preklad],"preklad"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_tabulatury],"tabulatura"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_cd],"cd"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_diskografie],"diskografie"); echo je($zobraz[ID],$kde_hledat,$zobraz[id_clanku],"clanek"); echo edit_delete($zobraz[user],$kde_hledat,$zobraz[ID]); $nastaveni_prehravac = "skryty"; $md5_url = md5($zobraz[URL]); echo "<div id=odsazeni_left_top>"; echo "<a href='javascript:Show(\"prehrat_".$md5_url."\");Hide(\"odkaz_".$md5_url."\");' id=odkaz_".$md5_url." class=zobrazit_prehravac>Zobrazit přehrávač</a><br>"; prehravac_mp3($zobraz[URL]); echo "Server: <a href='".url_down("mp3",$zobraz[ID],$zobraz[interpret],$zobraz[song])."' class=url>".nazev_adresy($zobraz[URL])."</a>"; echo "<br>Klíčová slova: <a href=".HOME."vyhledani/mp3-".keywrds2(seo_adresa($zobraz[interpret]))."/00-1/>".zvyraznit($keywords_,$zobraz[interpret])."</a>, <a href=".HOME."vyhledani/mp3-".keywrds2(seo_adresa($zobraz[song]))."/00-1/>".zvyraznit($keywords_,$zobraz[song])."</a>"; $keyw_pole = explode(",",$zobraz[keywords]); for($p=0;$p<count($keyw_pole);++$p) { echo ", <a href='".HOME."vyhledani/mp3-".keywrds2(seo_adresa($keyw_pole[$p]))."/00-1/'>".zvyraznit($keywords_,$keyw_pole[$p])."</a>"; } echo "<br>Od <b>".datumcas2web($zobraz[datum])."</b>, staženo <b>".$zobraz[stazeno]." x</b>, Vložil <b>".user_by_id("nick",$zobraz[user])."</b>"; if ($_SESSION[prava] != "") { echo " <a class=img href='".HOME."vzkaznik/write/".user_by_id("nick",$zobraz[user])."-".$zobraz[interpret]."-".$zobraz[song]."/'><img src='".IMG_ICO."obalka.gif'></a>"; } echo "<br>Hudební žánr: <b>".styl($zobraz[styl])."</b>"; if ($zobraz[komentare] == "1") { echo " <a onclick=\"javascript:Show('koment_".$zobraz[ID]."')\">Komentářů: <b>".komentaru("mp3",$zobraz[ID])."</b></a>"; } echo "<br><a href='".HOME."nefunkcni/mp3/".$zobraz[ID]."/".$a."' class=img><img src=".ICO."nefunkcni.png border=0> Nahlásit jako nefunkční</a>"; echo "</div><br>"; } tohle doufam staci ... ale podle me to nema vliv |
||
Majkl578 Profil |
#16 · Zasláno: 4. 11. 2009, 22:41:23
[#15] vospunt
Ke kvalitě kódu se raději vyjadřovat nebudu. Z tohohle moc nevykoukám. Nicméně, řeknu to teoreticky. Text se prochází jednou pokud je na něj daný regulár volán pouze jednou. Pokud by tam bylo něco, kde by to procházelo víckrát, např. v nějakém cyklu, který prodlužuje řetězec, tak by to byl problém, regulár by se volal dvakrát a tudíž i dvakrát nahrazoval (což se u tebe evidentně někde děje, na lokálním pc se mi problém nepovedlo reprodukovat). |
||
vospunt Profil |
#17 · Zasláno: 4. 11. 2009, 22:47:44
Majkl578:
jestli máš ICQ (moje 346364766 ) tak bysme se domluvili tam poslal bych ti celej soubor tento cyklus je jen na vypsani odkazů na MP3 soubory |
||
vospunt Profil |
#18 · Zasláno: 5. 11. 2009, 19:06:08
dobrý už mi to jede a jde do toho i zahrnout nějak i diakritika ... vyjádřil jsem se ted špatně spíš jsem myslel mám text:
Koblížc! - Popelář a zadám vyhledání písmene a tak aby se zvýraznilo i to á |
||
Časová prodleva: 14 let
|
0