Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kasowanie elementu stringa pomiedzy dwiema stalymi
Forum PHP.pl > Forum > PHP
esos
wpadlem na pomysl, zeby wyciagac sobie posty z forum na strone www. po odprawieniu wstepnych rytualow i zlozeniu przepisowej ofiary z kabla lpt, nie uzyskalem jakos przychylnosci wielkiego Pehapusa.. pojawil sie problem:

jak wiadomo, phpbb uzywa bbcode. wszystko by bylo dobrze, gdyby bb ograniczal sie do prostych tagow jak np:

Kod
[img]adres-obrazka[/img]


obecnie pojawiaja sie interesujace dodatki, typu:

Kod
[img:6e5ba966e1]adres obrazka[/img:6e5ba966e1]


z pierwszym czlonem bbcodu poradzilem sobie dosc mlotkologicznie: kilka str_replace i udalo mi sie zrobic tradycyjne img src z dziwnym numerkiem w funkcji alta winksmiley.jpg

Kod
//zapytanie o sama tresc
   $zapytanie5="  SELECT post_id, post_text FROM `phpbb_posts_text` WHERE post_id = '$numer_postu'";
    $sukces5=mysql_query($zapytanie5);
      while($rekord5 = mysql_fetch_array($sukces5))
    {
//lamanie, tagi
$tekst=strip_tags(nl2br($rekord5['post_text']))."<br />";

//dymanie url`a
$tekst=str_replace("[URL=","<br />adres do odwiedzenia:<br /><br />",$tekst);
$tekst=str_replace("[/URL]","<br /><br />",$tekst);

//pierwszy czlon img - syf idzie w alta
$tekst=str_replace("[img:","<br /><br /><img alt=",$tekst);

//dorzuc podppis na fotce
$tekst=str_replace("]http://"," src='zdjecie.php?pht=http://",$tekst);

//zamkniecie taga grafiki
$tekst=str_replace(".jpg",".jpg'><br /><br />",$tekst);
$tekst=str_replace(".jpeg",".jpeg'><br /><br />",$tekst);
$tekst=str_replace(".gif",".gif'><br /><br />",$tekst);

//O TYM MAGICZNYM MIEJSCU BEDZIE W POSCIE NIECO NIZEJ

//posprzatanie niedomknietych syfow po bbcode
//$tekst=str_replace("]","<br />",$tekst);

echo $tekst;


tam, gdzie w kodzie macie 'magiczne miejsce', chcialbym wykosic resztki typu: "[/img:6e5ba966e1]". probowalem wyzezowac cos w wyrazeniach regularnych, jednak przekroczylo to moje mozliwosci intelektualne. moze ktos mnie nakieruje na funkcje ktora zadziala na zasadzie:
"wywal ze stringa wszystko pomiedzy zadeklarowanymi znakami z nimi samymi wlacznie, ale reszty nie tykaj"?
tiraeth
Jeżeli w skrypcie stosujesz wiele zapytań to nie jest to potrzebne, bo to poniższe powinno działać:
  1. <?php
  2. define('ILOSC_POSTOW', 10);
  3.  
  4. $sql = "SELECT p.post_time as time, p.post_id, p.poster_id as poster_id, u.username
     as poster, t.post_text as text, t.post_subject as title 
  5. FROM phpbb_posts p, phpbb_posts_table t, phpbb_users u 
  6. WHERE u.user_id = p.poster_id AND t.post_id = p.post_id
  7. ORDER BY p.post_time DESC 
  8. LIMIT " . ILOSC_POSTOW;
  9.  
  10. $result = mysql_query($sql) or die(mysql_error());
  11.  
  12. while($row = mysql_fetch_array($result)) {
  13.  
  14. print_r($row);
  15. }
  16. ?>


Co do wyrażeń regularnych:
esos
ehhhhhh.. a do wykoszenia resztek phpbb..

Cytat
triphere
17-Dec-2005 06:13
to remove Bulletin Board Code (remove bbcode)

$body = preg_replace("[\[(.*?)\]]", "", $body);

ta-daaaaaaaaaaam biggrin.gif
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.