Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zaznaczenie wyszukiwanej frazy, "Pokolorowanie" wyników wyszukiwania
wojciech.zeler
post 26.04.2008, 10:06:56
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.03.2008

Ostrzeżenie: (0%)
-----


Załóżmy, że na stronce (w jej kodzie) mam następującą frazę:
<a href="link.htm">link</a>

Teraz mam zamiar przerobić to tak:
<a href="link.htm"><span style="color:red">link</span></a>

I teraz 2 pytanka:
1. Jak zrobić, żeby w tagi brane było tylko to co nie znajduje się w innym tagu, np.
<a href="<span style="color:red">link</span>.htm"><span style="color:red">link</span></a>
(tego pogrubionego nie powinno tam być, bo psuje mi linka)

2. Żeby przy kolorowaniu frazy "link" kolorowane były wszelkie mutacje, np. "LINK", "LiNk", "Link" itd.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
webdice
post 26.04.2008, 10:10:15
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




http://forumphp.nq.pl/index.php?showtopic=92430&hl=

Przerób sobie trochę i będziesz miał.
Go to the top of the page
+Quote Post
wojciech.zeler
post 26.04.2008, 10:56:56
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.03.2008

Ostrzeżenie: (0%)
-----


Działa. Dzięki. Tylko teraz sprawa druga - wielkość liter. Link != link sadsmiley02.gif
Go to the top of the page
+Quote Post
Sabistik
post 26.04.2008, 11:14:38
Post #4


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dodać odpowiedni modyfikator?
Go to the top of the page
+Quote Post
wojciech.zeler
post 27.04.2008, 06:54:45
Post #5





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 30.03.2008

Ostrzeżenie: (0%)
-----


Znalazłem coś takiego:
http://www.webdeveloper.com/forum/showthread.php?t=54223

Cytat(zebdaag)
<?php

/****************************************
Highlighting Function
****************************************/
function highlight_words( $text, $keywords )
{
foreach(
$keywords as $word )
{
$text = preg_replace( "/$word/i", '<span style="color:red;font-weight:bold;">' . $word . '</span>', $text );
}
return(
$text );
}
/****************************************
Text String
****************************************/
$text = 'The big red fox jumped over the fence.<br>
Kijk maar hier heb je een enter'
;
/****************************************
Array Of Keywords
****************************************/
$keywords[] = $keyW; //tutaj trzeba wklepać do tablicy $keywords podmienianie słówka

/****************************************
Do It
****************************************/
echo( highlight_words( $text, $keywords ) );
echo
"<a href='highlight.php?keyW=enter'>enter</a></p>";
echo
"<a href='highlight.php?keyW=kijk'>kijk</a></p>";
?>

Problem rozwiązany.



Edit:

Po małym tuningu i braku umiejętności zastąpienia wszystkiego jedną funkcją preg_replace napisałem coś takiego:
  1. <?php
  2. function highlight_words($text, $keywords)
  3. {
  4. $wynik = '';
  5. $ciag = '';
  6. $tag = false;
  7. for($t=0; $t
  8. {
  9. if($text[$t]=='<' && $text[$t+1]!=' ')
  10. {
  11. foreach($keywords as $word)
  12. {  
  13.  $nowe_slowo = '#';
  14.  $stronka = '';
  15.  for($i=0; $i
  16.  {
  17.  $nowe_slowo .= '('.strtolower($word[$i]).'|'.strtoupper($word[$i]).')'; 
  18. $stronka .= ''.($i+1);
  19.  }
  20.  $nowe_slowo .='#';
  21. $ciag = preg_replace($nowe_slowo, ''.$stronka.'',$ciag);
  22. }
  23.  
  24. $tag = true;
  25. $wynik .= $ciag;
  26. $wynik .='<';
  27. $ciag = '';
  28.  
  29. }elseif($text[$t]=='>')
  30. {
  31. $tag = false;
  32. $wynik .='>';
  33. }elseif($tag == false)
  34. {
  35. $ciag .= $text[$t];
  36. }elseif($tag == true)
  37. {
  38. $wynik .= $text[$t];
  39. }
  40. }
  41.  
  42. return $wynik;
  43. }
  44. ?>


function highlight_words($text, $keywords) <-- $text to duży, podmieniany string, a $keywords to tablica z szukanymi.
Nie ma znaczenie wielkość liter, a tagi html są opuszczane

Ten post edytował Sabistik 27.04.2008, 09:54:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:39