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 ] | |
|