Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

Klasa BB codeMoja Pierwsza ^^

PHP

  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 18.10.2011 16:44

Postanowiłem zacząć pisać obiektowo i jako moją pierwszą ( naprawdę pierwszą ) pace zrobiłem bb code, Nie jest to nic niesamowitego.


class bb_code{
var $_bbcode;
function bb_code(){
$this->_bbcode=Array();
}
function dodaj_bb($html, $bb){
if(!empty($html))
$this->_bbcode[$bb] = $html;
}
function zamien($bb_code_return){
foreach ($this->_bbcode as $bb_=>$html_)
$bb_code_return = str_replace($bb_, $html_, $bb_code_return);
return $bb_code_return;
}
}


Jak dodać znacznik bb code?
$bb_code = new bb_code();
$bb_code -> dodaj_bb('<i>', '[i]');
$bb_code -> dodaj_bb('</i>', '[/i]');


Jak wyświetlić poprawnie ?

$bb_code = new bb_code();
$bb_code -> dodaj_bb('<i>', '[i]');
$bb_code -> dodaj_bb('</i>', '[/i]');
$text = '[i] asd sadsadsa [/i]';
print_r($bb_code -> zamien($text));

Lub oczywiście zamiast print można zapisać do zmiennej , niekoniecznie musi to też być print może to być echo :)

Co zmienić, co poprawić :) i czy wogóle jest to dobrze napisane ^^

Użytkownik Gh0st edytował ten post 18.10.2011 16:48

  • +
  • -
  • 1

#2 nns

    Życzliwy

  • Użytkownik

Reputacja: 16
Początkujący

  • Postów:33
  • GG:
  • Lokalizacja:****
Offline

Napisano 18.10.2011 20:15

Jak na początek to nie jest źle,
dodaj sprawdzanie czy ilosc odtartych znaczników jest równa ilości zamkniętych np
czy ilosc [aas] odpowiada ilosc [/aas], jeśli nie to zeby nie zamieniał tego znacznika

A i czy zamiast var nie powinno być private??

Użytkownik nns edytował ten post 18.10.2011 20:19

  • +
  • -
  • 1

#3 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 19.10.2011 06:19

Zmieniłem na Private :)
A teraz pobawie się z tym sprawdzaniem ^^
  • +
  • -
  • 0

#4 Fili:P

    Godlike

  • Power User

Reputacja: 754
Guru

  • Postów:1 679
  • Imię:Darek
  • Lokalizacja:Warszawa
Offline

Napisano 23.10.2011 09:24

Ale dlaczego nazwałeś to bbcode, a nie np. gh0stCode ? ^^
  • +
  • -
  • 0

#5 Kukol

    Zaawansowany

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:113
  • Lokalizacja:Katowice
Offline

Napisano 16.11.2011 00:48

Witaj! Korzystam z tej funkcji, ale mam pytanie:

To co sobie tam wpisze leci do bazy danych (Np. Tworzę newsa to ten tekst zapisuje się w bazie) a gdzie przychodzi mi do edycji newsa, to przywracam ten tekst z bazy i zamiast pisać to zamienia mi wszystko na <b></b> czyli robi odwrotnie do funkcji. (Jak piszę newsa to działa ten bbcode, ale nie jak przywracam tekst z bazy) da się coś na to poradzić?

#6 Leihto

    Wszechobecny

  • Użytkownik

Reputacja: 150
Profesjonalista

  • Postów:452
  • Lokalizacja:Rabka
Offline

Napisano 16.11.2011 13:29

Nie ma sensu pisać klasy odwrotnej do tego ;)

Użyj tej funkcji przy wyświetlaniu z bazy ;)
Wtedy będzie się zmieniało tylko w htmlu, a nie w bazie :)
  • +
  • -
  • 0
Portek: Za 20zł, to ja nawet notatnika nie otworze..

Nowe portfolio. Ciekawe artykuły, ciekawe przykłady: WojtusDEV.pl

#7 Gh0st

    :)

  • Autor tematu
  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 17.11.2011 09:06

function odwroc($bb_code_return)
{
    foreach ($this->_bbcode as $bb_=>$html_)
        $bb_code_return = str_replace($html_, $bb_, $bb_code_return);
			    
    return $bb_code_return;
}
Dodaj tą funkcje do tej klasy. i podczasz edytowania używaj
$result = mysql_fetch_object(mysql_query($sql)) // zapytanie
$text = odwroc($result->kolumna_w_bazie)

Użytkownik Gh0st edytował ten post 17.11.2011 09:09

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: PHP

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych