[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 28.02.09
Prihlásený: 16.12.15
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)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188

Tak som sa nudil ak chces taketo moje krvopotne riesenie s mojimi oblubenymi funkciami explode() a implode() ktore pouzivam vsade kde sa da :lol: 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 ;) .


Offline

Správca fóra
Správca fóra
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

co znamena rovnaka pozicia - pocet znakov alebo pocet slov od zaciatku? ak sa bude v texte dane slovo opakovat viackrat, co s tym?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188

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.


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2
NapísalOffline : 26.07.2010 23:53 | Zvyraznenie vyhladavaneho slova v texte

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 :lol: 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
???


Offline

Užívateľ
Užívateľ
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.07.2010 0:03 | Zvyraznenie vyhladavaneho slova v texte

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


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188

coldak:

1. myslel som to tak ze je zbytocne dlhy, mozno budu nato lepsie funkcie :roll: .
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 :roll: . 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.


Offline

Správca fóra
Správca fóra
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.07.2010 12:24 | Zvyraznenie vyhladavaneho slova v texte

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


Offline

Užívateľ
Užívateľ
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.07.2010 12:38 | Zvyraznenie vyhladavaneho slova v texte

stenley píše:
v tom pripade myslim ze staci pouzit preg_replace

preco stacilo by?


Offline

Správca fóra
Správca fóra
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188

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);


Offline

Užívateľ
Užívateľ
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.07.2010 15:15 | Zvyraznenie vyhladavaneho slova v texte

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 :/


Offline

Správca fóra
Správca fóra
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

nezabudaj, ze tento pripad neriesi diakritiku a velkost pismen, cize ak da niekto vyhladat napriklad "Slovo", tak ti "slovo" v texte nezvyrazni...


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 28.02.09
Prihlásený: 16.12.15
Príspevky: 241
Témy: 56 | 56
Napísal autor témyOffline : 27.07.2010 16:54 | Zvyraznenie vyhladavaneho slova v texte

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


Offline

Správca fóra
Správca fóra
Zvyraznenie vyhladavaneho slova v texte

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

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);
?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
 [ Príspevkov: 16 ] 


Zvyraznenie vyhladavaneho slova v texte



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Zvyraznenie textu

v PHP, ASP

2

242

25.01.2010 9:53

achbo

V tomto fóre nie sú ďalšie neprečítané témy.

Zvyraznenie hlbok(basov)

v Audio programy

14

2110

11.06.2008 22:41

OmeGa

V tomto fóre nie sú ďalšie neprečítané témy.

Zvýraznenie menu bez include

v PHP, ASP

10

326

19.05.2008 8:25

p360t

V tomto fóre nie sú ďalšie neprečítané témy.

CSS Menu - zvyraznenie aktivneho odkazu

v HTML, XHTML, XML, CSS

3

391

29.07.2009 14:22

myxall

V tomto fóre nie sú ďalšie neprečítané témy.

Zvyraznenie menu na aktivnej stranke

v PHP, ASP

3

207

10.07.2010 23:58

php30

V tomto fóre nie sú ďalšie neprečítané témy.

Zvyraznenie obrysov na čiernobielom obrázku.

v Grafické programy

5

506

12.08.2009 23:31

yossarian

V tomto fóre nie sú ďalšie neprečítané témy.

slovo v texte

v PHP, ASP

12

491

08.03.2008 1:57

kmsa

V tomto fóre nie sú ďalšie neprečítané témy.

Vyhľadávanie v texte

v JavaScript, VBScript, Ajax

5

786

17.04.2008 19:00

pa3ck

V tomto fóre nie sú ďalšie neprečítané témy.

odsek v texte

v PHP, ASP

8

477

08.12.2007 19:33

jaji

V tomto fóre nie sú ďalšie neprečítané témy.

FTP v sublime texte

v Ostatné

1

84

26.03.2014 18:15

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Veľké medzeri v texte

v Operačné systémy Microsoft

0

85

22.07.2012 21:15

samson3333

V tomto fóre nie sú ďalšie neprečítané témy.

Zvyraznenie jednej farby v SONY Vegas Pro 11

v Video programy

0

68

03.01.2014 15:09

Peeppo

V tomto fóre nie sú ďalšie neprečítané témy.

Excel - vzorec na poziciu v texte

v Ostatné programy

3

531

20.05.2007 11:08

ONder

V tomto fóre nie sú ďalšie neprečítané témy.

Kľúčové slová

v Ostatné

19

465

19.11.2011 22:50

Hawkie

V tomto fóre nie sú ďalšie neprečítané témy.

Herný PC za 1000€ (zostava v texte)

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PC zostavy

58

1354

08.04.2017 22:37

Miso122

V tomto fóre nie sú ďalšie neprečítané témy.

hudba a slova

v Video programy

5

372

19.10.2009 15:21

ejo



© 2005 - 2017 PCforum, edited by JanoF