Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Autor | Správa |
---|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | 56 |
cawte pomozete mi ..potreboval by som dve veci....zistit poradie zadaneho slova v nejakom texte a potom nahradit slovo (nejakym inym) ktore sa nachadza v inom texte na rovnakej pozicii...hm? nemam sajnu ake funkcie pouzit ...
//zmeneny nazov temy (stenley)
|
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
Tak som sa nudil ak chces taketo moje krvopotne riesenie s mojimi oblubenymi funkciami explode() a implode() ktore pouzivam vsade kde sa da tak tu je riesenie:
Kód: <?php $slovo = "slovo"; $text = "toto je text a v nom slovo"; $text2 = "Toto je text v ktorom je nahradne slovo"; $pole = explode( " ", $text ); if( in_array( $slovo, $pole ) ) { $pole_prevratene = array_flip( $pole ); $pozicia = $pole_prevratene[$slovo]; $pole2 = explode( " ", $text2 ); $pole[$pozicia] = $pole2[$pozicia]; $vysledny_text = implode( " ", $pole ); echo $vysledny_text; }else{ echo "Taketo slovo sa v texte nenachadza"; } ?>
Ale urcite je zbytocne zdlhave .
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
co znamena rovnaka pozicia - pocet znakov alebo pocet slov od zaciatku? ak sa bude v texte dane slovo opakovat viackrat, co s tym?
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
DeeJay3 píše: zistit poradie zadaneho slova...nahradit slovo...rovnakej pozicii
A kedze poradie slova tak asi pocet slov od zaciatku .
A na to ze v tom texte moze byt viac tych slov som nemyslel . Ten script nahradi vzdy posledne. Ale aspon mas aku-taku metodu tak si to skus nejak upravit s pomocou ciklu.
edit// ...teda pokial chces nahradzat vsetky slova alebo ako to chces to nevieme.
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
1daemon1 píše: Tak som sa nudil ak chces taketo moje krvopotne riesenie s mojimi oblubenymi funkciami explode() a implode() ktore pouzivam vsade kde sa da tak tu je riesenie: Kód: <?php $slovo = "slovo"; $text = "toto je text a v nom slovo"; $text2 = "Toto je text v ktorom je nahradne slovo"; $pole = explode( " ", $text ); if( in_array( $slovo, $pole ) ) { $pole_prevratene = array_flip( $pole ); $pozicia = $pole_prevratene[$slovo]; $pole2 = explode( " ", $text2 ); $pole[$pozicia] = $pole2[$pozicia]; $vysledny_text = implode( " ", $pole ); echo $vysledny_text; }else{ echo "Taketo slovo sa v texte nenachadza"; } ?> Ale urcite je zbytocne zdlhave . mohol by si mi pomocou tvojho krvopotne neskutocneho kodu rozparsovat napriklad Citácia: toto,je.text "a v[nom]" slovo ???
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | 56 |
vies chcem to pouzit pre vyhladavanie....prehladavam dve stlpce text s diakritikou aj bez a kedze chcem pri hladani vypisat text s diakritikou a vyznacit slovo mozny vysledok tak potrebujem zistit poziciu slova v texte bez diakritiky a potom ho zvyraznit v tom texte s diakritikou
Kód: str_replace ($keyword, "<span style=\"background-color:yellow\">{$keyword}</span>",$zaznam['popis']);
$keyword je slovo ktore zadas do vyhladavania takto ho vyznacim v texte ktory je s diakritikou a potom ces ten tvoj script zvyraznim slovo ktore naslo ako mozny vysledok v tom texte bez diakritiky...idem to skusit...
|
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
coldak:
1. myslel som to tak ze je zbytocne dlhy, mozno budu nato lepsie funkcie .
2. pomohol som ako som vedel. ak sa mu to bude hodit, pouzije to, ak nie, napise ze to je nanic a niekto da lepsie riesenie. som zvedavy ake. a hlavne som zvedavy ako chces v hantakom texte pocitat poradie slov . Ak bude chciet, upravi si to a napriklad najprv poodstranuje z textu urzite znaky (bodka, ciarka,...) tak aby ostali slova. chcel som ho aspon nakopnut.
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
DeeJay3 píše: vies chcem to pouzit pre vyhladavanie....prehladavam dve stlpce text s diakritikou aj bez a kedze chcem pri hladani vypisat text s diakritikou a vyznacit slovo mozny vysledok tak potrebujem zistit poziciu slova v texte bez diakritiky a potom ho zvyraznit v tom texte s diakritikou Kód: str_replace ($keyword, "<span style="background-color:yellow">{$keyword}</span>",$zaznam['popis']); $keyword je slovo ktore zadas do vyhladavania takto ho vyznacim v texte ktory je s diakritikou a potom ces ten tvoj script zvyraznim slovo ktore naslo ako mozny vysledok v tom texte bez diakritiky...idem to skusit...
v tom pripade myslim ze staci pouzit preg_replace
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | 56 |
funguje to pekne len..hmm..nevedel by si spravit aby to nahradilo kazde slovo?...upravil som si ju takto...
Kód: function show_name($text,$text2,$keyword){ $pole = explode( " ", $text ); $pole_prevratene = array_flip( $pole ); $pozicia = $pole_prevratene[$keyword]; $pole2 = explode( " ", $text2 ); $vysledny_text = implode( " ", $pole2 ); $vysledny_text = str_replace ($pole2[$pozicia], "<span style=\"background-color:yellow\">{$pole2[$pozicia]}</span>",$vysledny_text); $vysledny_text = str_replace ($keyword, "<span style=\"background-color:yellow\">{$keyword}</span>",$vysledny_text); return $vysledny_text; }
$text -> text s diakritikou
$text2 -> text bez diakritiky
$keyword -> hladane slovo bez diakritiky
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | 56 |
stenley píše: v tom pripade myslim ze staci pouzit preg_replace
preco stacilo by?
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
vyhladavas napr. slovo myska, prekonvertujes si ho na "m[yý][sš]k[aáä]" (pripadne pouzijes prepinace) a pouzijes ako pattern... otazna je vsak rychlost oproti vyssie uvedenemu rieseniu...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
Ak tam chces vymenit vsetky slova staci dat ciklus:
Kód: <?php $slovo = "slovo"; $text = "toto je text a v nom slovo a dalsie slovo"; $text2 = "Toto je text v ktorom je nahradne slovo a bla bla bla bla bla"; $pole = explode( " ", $text ); if( !in_array( $slovo, $pole ) ){ echo "Taketo slovo sa v texte nenachadza"; } else { while( in_array( $slovo, $pole ) ) { $pole_prevratene = array_flip( $pole ); $pozicia = $pole_prevratene[$slovo]; $pole2 = explode( " ", $text2 ); $pole[$pozicia] = $pole2[$pozicia]; $vysledny_text = implode( " ", $pole ); } echo $vysledny_text; } ?> Ak chces aby ten script fungoval aj pri takom texte ako napisal coldak: coldak píše: toto,je.text "a v[nom]" slovo Tak najprv pomocou trebars preg_replace() vymen v $text a $text2 vsetky znaky ako je bodka, ciarka, uvodzovky, vykricnik, zatvorky, atd... za medzery a potom odstran nadbytocne medzery nejak takto: Kód: $text = preg_replace('/\s\s+/', ' ', $text_bez_znaciek_s_nadbitocnymi_medzerami); $text2 = preg_replace('/\s\s+/', ' ', $text2_bez_znaciek_s_nadbitocnymi_medzerami);
|
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | 56 |
waw super toto som cel len neviem preco ked si to upravim podla seba tak to nerobi to co ma :/..kukni na to...toto mi nahradi to slovo
Kód: $text = "Toto je text a v nom slovo a dalsie slovo a v nom este dalsie slovo"; $text2 = "toto je text a v ňom slovo a ďalšie slovo a v ňom ešte ďalšie slovo"; $pole = explode( " ", $text );
while( in_array( $keyword, $pole ) ) { $pole_prevratene = array_flip( $pole ); $pozicia = $pole_prevratene[$keyword]; $pole2 = explode( " ", $text2 ); $pole[$pozicia] = '<span style="background:yellow">'.$pole2[$pozicia].'</span>'; $vysledny_text = implode( " ", $pole ); } echo $vysledny_text;
toto mi nahradi pozicie v texte bez diakritiky ale ja potrebujem v tom s diakritikou...
potrebujem nahradit slova na poziciach v texte 2 kde sa v texte 1 nachadza hladane slovo...toto co si napisal funguje super len to neviem dobre upravit :/
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
nezabudaj, ze tento pripad neriesi diakritiku a velkost pismen, cize ak da niekto vyhladat napriklad "Slovo", tak ti "slovo" v texte nezvyrazni...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 28.02.09 Prihlásený: 19.02.18 Príspevky: 241 Témy: 56 | 56 |
potrebujem to preto ze ludia do vyhladavania nedavaju velmi slova s diakritikou takze vecsina ludi zadava do vyhladavania napriklad "suciastka" namiesto "súčiastka" kedze texty mam ulozene v dvoch verziach tak aj slovo "súčiastka " aj slovo "suciastka" najde ja len potrebujem zvyraznit slovo ktore je na danej pozicii v texte bez diakritiky aby ho zvyraznilo v texte s diakritikou ktory bude vypisovat
len keby som to este vedel opravit stale sa mi to akoby zacykli sa mi zda
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
ake kodovanie pouzivas? kebyze pouzivas utf8, tak by som to spravil nejak takto:
Kód: <?php $search = "nÍeČo"; $text = "nieco aj niEČooo aj niecóo mozno";
$convtbl = array( 'a' => '[aáäAÁ]', 'b' => '[bB]', 'c' => '[cčCČ]', 'd' => '[dďDĎ]', 'e' => '[eéEÉ]', 'f' => '[fF]', 'g' => '[gG]', 'h' => '[hH]', 'i' => '[iíIÍ]', 'j' => '[jJ]', 'k' => '[kK]', 'l' => '[lľĺLĽĹ]', 'm' => '[mM]', 'n' => '[nN]', 'o' => '[oóôOÓ]', 'p' => '[pP]', 'q' => '[qQ]', 'r' => '[rŕRŔ]', 's' => '[sšSŠ]', 't' => '[tťTŤ]', 'u' => '[uúUÚ]', 'v' => '[vV]', 'w' => '[wW]', 'x' => '[xX]', 'y' => '[yýYÝ]', 'z' => '[zžZŽ]' );
//odstranenie diakritiky s vyuzitim $convtbl foreach($convtbl as $key => $value) { $value = substr($value, 2, -1); while(mb_strlen($value)) { $tmp[mb_substr($value, 0, 1, "utf-8")] = $key; $value = mb_substr($value, 1, mb_strlen($value), "utf-8"); } }
$search = str_replace(array_keys($tmp), array_values($tmp), $search); $search = str_replace(array_keys($convtbl), array_values($convtbl), $search);
echo mb_ereg_replace($search, "<b>\\0</b>", $text); ?>
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Stránka: 1 z 1
| [ Príspevkov: 16 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 2 | 442 | 25.01.2010 9:53 achbo | | v Audio programy | 14 | 2497 | 11.06.2008 22:41 OmeGa | | v PHP, ASP | 10 | 558 | 19.05.2008 8:25 p360t | | v Grafické programy | 5 | 740 | 12.08.2009 23:31 yossarian | | v HTML, XHTML, XML, CSS | 3 | 571 | 29.07.2009 14:22 myxall | | v PHP, ASP | 3 | 376 | 10.07.2010 23:58 php30 | | v JavaScript, VBScript, Ajax | 5 | 1056 | 17.04.2008 19:00 pa3ck | | v PHP, ASP | 8 | 697 | 08.12.2007 19:33 jaji | | v PHP, ASP | 12 | 802 | 08.03.2008 1:57 kmsa | | v Ostatné | 1 | 314 | 26.03.2014 18:15 BX | | v Operačné systémy Microsoft | 0 | 271 | 22.07.2012 21:15 samson3333 | | v Video programy | 0 | 325 | 03.01.2014 15:09 Peeppo | | v Ostatné programy | 3 | 778 | 20.05.2007 11:08 ONder | | v Ostatné | 19 | 802 | 19.11.2011 22:50 Hawkie | | [ Choď na stránku: 1, 2 ] v PC zostavy | 58 | 2097 | 08.04.2017 22:37 Miso122 | | v Audio programy | 1 | 465 | 02.10.2012 12:18 shiro |
|