Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrazenia regularne i bbcode
Forum PHP.pl > Forum > Przedszkole
yavaho
Jak wyciac tagi bbcode z tekstu tak jak w ponizszym poleceniu wycinam tagi html?
  1. <?php
  2. $string = eregi_replace(&#092;"<[^>.]*>\",\"\",$string);
  3. $string = eregi_replace(&#092;"</[^>.]*>\",\"\",$string);
  4. ?>
Nie umniem w funkci eregi_replace umiescic znakow typu: "[" i "]"
bregovic
Proonuję looknąć sobie na funkcję napisana przez bzikosa: http://forum.php.pl/index.php?showtopic=13425
yavaho
Chodzilo mi o cos prostego aby tylko oczyscic tekst z tagow BBcode
Narazie zrobilem cos takiego
  1. <?php
  2. $string = preg_replace('#[.+?]#', '', $string);
  3. ?>
FiDO
To sie wylozy na niektorych przykladach.
Lepiej bedzie tak:
  1. <?php
  2.  
  3. $string = preg_replace('#[(.+)](.+)[/1]#Us', '2', $string);
  4.  
  5. ?>

Przynajmniej usuwane sa tylko bbcode ktore maja pare (jest tag zamykajacy i otwierajacy), no chyba ze tak nie chcesz.
yavaho
FiDO twoje wyrazenie wycina te proste tagi BBcode np:
Kod
[B]pogrubiony[/B]
Chyba tam jest sprawdzenie czy poczatkowy tag == tagowi koncowemu. Bo nie wycina tagow tego typu:
Kod
[COLOR=red]czerwony[/COLOR]

Ale teraz widze ze to jeszcze nie wszystko. Jeszcze mi zostaly tagi emoticonów :) Chyba okreslenie tagi tu nie pasuje ale chodzi mi o emoticony zapisane w ten sposob: :smile: :sad: :wry: :angry: z nimi to chyba nie bedzie tak prosto :/
hwao
str_replace" title="Zobacz w manualu PHP" target="_manual() ....

----

eh...

  1. <?php
  2.  
  3. $arrSmile = array( ':cos:' => 'zamien na to', ':cos2' => 'zamienia na to tongue.gif' );
  4.  
  5. echo strtr( ':cos: lol :cos2:', $arrSmile );
  6.  
  7.  
  8. ?>
FiDO
Cytat(yavaho @ 2004-11-10 16:04:36)
Ale teraz widze ze to jeszcze nie wszystko. Jeszcze mi zostaly tagi emoticonów :) Chyba okreslenie tagi tu nie pasuje ale chodzi mi o emoticony zapisane w ten sposob: :smile: :sad: :wry: :angry: z nimi to chyba nie bedzie tak prosto :/

No fakt.. zapomnialem ze moga byc atrybuty.
  1. <?php
  2. $string = preg_replace('#[(.+)(?:=[^]])?](.+)[/1]#Us', '2', $string);
  3. ?>


Apropo emotkow to jest to prostsze niz myslisz.. I nie trzeba do tego regexpow.
Jak masz tablice wszystkich dozwolonych emotkow w formie:
  1. <?php
  2. $emotki = array(':wink:', ':angry:', ':sad:');
  3. ?>

i tak dalej.. to robisz to za pomoca str_replace" title="Zobacz w manualu PHP" target="_manual, jako pierwszy parametr podajesz ta tablice, reszta standardowo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.