Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Parsowanie bbcode z vbulletin?
ZLoM
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.04.2007

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


Witajcie, mam mały problemik, mam taki skrypt o to skrypt:

  1. <?php  
  2.     $forumid=3;
  3.    $howmany=5;
  4.      $query="SELECT threadid,title,postusername FROM thread WHERE forumid=$forumid ORDER BY threadid DESC LIMIT $howmany";
  5.      $list_t=mysql_query($query);
  6.  
  7.      while ($temat=mysql_fetch_array($list_t))
  8.      {
  9.         $psql = mysql_query("SELECT pagetext , dateline FROM post WHERE threadid=".$temat['threadid']." ORDER BY postid ASC LIMIT 1");
  10.         $post=mysql_fetch_array($psql);
  11.         $news['pagetext'] = $post['pagetext'];
  12.         $news['title'] = $temat['title'];
  13.         $news['threadid'] = $temat['threadid'];
  14.         $news['postusername'] = $temat['postusername'];
  15.         $news['date'] = date ("d.m.y H:i" ,$post['dateline']);
  16.        
  17.          print"
  18.          blabalbal
  19.  
  20.        ";
  21.  
  22.  
  23.     }
  24.    ?>


Jego zadaniem jest pobieranie nazwy, id,treści tematu itp. z wybranego działu na forum, wszystko jest ok, prócz tego iż skrypt nie "pobiera" bbcodów z vB, niestety nie mam bladego pojęcia jak mogę to poprawić, słyszałem coś o prasowaniu bbcodów z vB niestety nie wiem jak mam to zastosować w moim skrypcie
Go to the top of the page
+Quote Post
RafaelX
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

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


za duzo kombinowania (jeśli to nie jest strona vb) lepiej napisać prosty parser bbcode oparty na wyrażeniach regularnych
Go to the top of the page
+Quote Post
ZLoM
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.04.2007

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


Mógłbyś jakoś jaśniej albo jakiś przykład?
Dopiero raczkuje w tych sprawach ;d
Go to the top of the page
+Quote Post
RafaelX
post
Post #4





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

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


np takie cos:
  1. <?php
  2. $msg= 'jakis text';
  3. $msg = preg_replace("#(.*?)#si", '<span style="color: 1">2</span>', $msg);
  4. echo $msg;
  5. // wyswietli:
  6. // <span style="color:red">jakis text</span>
  7. ?>
Go to the top of the page
+Quote Post
ZLoM
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.04.2007

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


Niestety z tym chyba będzie więcej "zabawy", niby ktoś mi podał taki kod:
  1. <?php
  2. chdir('./forum');
  3.   require_once('./global.php');
  4.   require_once('./includes/class_bbcode.php');
  5.   chdir('./..');
  6.   $bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list());
  7. ?>


Niestety po jego użyciu pojawia się błąd

Kod
Unable to add cookies, header already sent.
File: /home/abcd/domains/strona.pl/public_html/newsy.php
Line: 1


Jakieś pomysły jak go poprawić czy coś aby zadziałało?

Ten post edytował ZLoM 18.03.2009, 21:25:32
Go to the top of the page
+Quote Post
RafaelX
post
Post #6





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

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


przd tym dodaj moze
  1. <?php
  2. ?>
Go to the top of the page
+Quote Post
ZLoM
post
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.04.2007

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


Niestety, bez zmian (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #8





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Później trzeba jeszcze ob_flush. Może masz pliki kodowane UTF-8, ale z BOMem?
Go to the top of the page
+Quote Post
Fifi209
post
Post #9





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Do wypowiedzi kolegi o buforowaniu (ob_start()) dodam jeszcze zmień kodowanie pliku na iso lub ascii
Go to the top of the page
+Quote Post
ZLoM
post
Post #10





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.04.2007

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


Winą tego błędu oczywiście była niechciana spacja.

Teraz niestety wywala mi inny błąd, niestety nie wiem dokładnie co on może oznaczać, oraz jak go naprawić?

Kod
Fatal error: Call to a member function query_read() on a non-object in /public_html/forum/includes/class_bbcode.php on line 581


Linia z numerem 581:
  1. <?php
  2. $smilies = $this->registry->db->query_read("
  3. ?>



Linie od 576 do 614 pliku class_bbcode:

  1. <?php
  2. // we have to get the smilies from the database
  3.            DEVDEBUG('querying for smilies');
  4.  
  5.            $this->registry->smiliecache = array();
  6.  
  7.            $smilies = $this->registry->db->query_read("
  8.                SELECT *, LENGTH(smilietext) AS smilielen
  9.                FROM " . TABLE_PREFIX . "smilie
  10.                ORDER BY smilielen DESC
  11.            ");
  12.            while ($smilie = $this->registry->db->fetch_array($smilies))
  13.            {
  14.                if (!$do_html)
  15.                {
  16.                    $find = htmlspecialchars_uni(trim($smilie['smilietext']));
  17.                }
  18.                else
  19.                {
  20.                    $find = trim($smilie['smilietext']);
  21.                }
  22.  
  23.                // if you change this HTML tag, make sure you change the smilie remover in code/php/html tag handlers!
  24.                if ($this->is_wysiwyg())
  25.                {
  26.                    $replace = "<img src=\"$smilie[smiliepath]\" border=\"0\" alt=\"\" title=\"" . htmlspecialchars_uni($smilie['title']) . "\" smilieid=\"$smilie[smilieid]\" class=\"inlineimg\" />";
  27.                }
  28.                else
  29.                {
  30.                    $replace = "<img src=\"$smilie[smiliepath]\" border=\"0\" alt=\"\" title=\"" . htmlspecialchars_uni($smilie['title']) . "\" class=\"inlineimg\" />";
  31.                }
  32.  
  33.                $sc["$find"] = $replace;
  34.  
  35.                $this->registry->smiliecache["$smilie[smilieid]"] = $smilie;
  36.            }
  37.        }
  38.  
  39.        return $sc;
  40.    }
  41. ?>


Ten post edytował ZLoM 19.03.2009, 22:13:27
Go to the top of the page
+Quote Post
b4x
post
Post #11





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


"Winą tego błędu oczywiście była niechciana spacja." - a może przez przypadek usunąłeś coś więcej niż spację? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

#edit spróbuj zamienić

$this->registry->db->query_read

na

$vbulletin->db->query_read

Ten post edytował b4x 19.03.2009, 22:18:37
Go to the top of the page
+Quote Post
ZLoM
post
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 2.04.2007

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


Cytat(b4x @ 19.03.2009, 22:15:51 ) *
"Winą tego błędu oczywiście była niechciana spacja." - a może przez przypadek usunąłeś coś więcej niż spację? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

#edit spróbuj zamienić

$this->registry->db->query_read

na

$vbulletin->db->query_read


Niczego prócz spacji nie usunąłem na 100%

Co do tego kodu, to niestety, bez zmian.
Wydaje mi się jednak że to ze skryptem który podałem w 1 poście jest nie tak ( może czegoś mi tam brakuje? ), a nie z plikiem class_bbcode, aczkolwiek mogę się mylić...

(IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)

.

Ten post edytował ZLoM 23.03.2009, 18:30:52
Go to the top of the page
+Quote Post
b4x
post
Post #13





Grupa: Zarejestrowani
Postów: 658
Pomógł: 95
Dołączył: 20.12.2005
Skąd: N54,35° E18,63° (Gdańsk)

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


Nie nudzi Ci się tak "podbijanie" codziennie tematu?

Ten post edytował b4x 26.03.2009, 12:09:49
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 26.12.2025 - 08:24