Ang mga naka-istilong tao faq php mode bbcode. Ang isang memo sa paggamit ng mga code ng BB (bbCode). Form ng mga talata at lugar
Pag-format ng teksto
Paano gawing matapang, pahilig, o may salungguhit ang teksto Kasama sa BBCode ang mga tag para sa mabilis na pagbabago ng istilo ng font, magagawa mo ito sa mga sumusunod na paraan:- Upang maisakatuparan ang teksto, isama ito [b]halimbawa:
[b]Kumusta
ay magiging Kumusta
- Upang salungguhitan ang paggamit [u]halimbawa:
[u]Magandang umaga
magiging magandang umaga
- Tapos na ang mga Italya sa mga tag. [i]halimbawa:
Ito ay [i]mahusay!
ibibigay ito mahusay!
- Maaari mong baguhin ang kulay ng teksto sa pamamagitan ng nakapaligid dito.
. Maaari mong tukuyin ang alinman sa isang kilalang pangalan ng kulay (pula, asul, dilaw, atbp.), O isang hexadecimal na representasyon, halimbawa #FFFFFF, # 000000. Kaya, upang lumikha ng pulang teksto maaari mong gamitin:
Kumusta
Kumusta
ang parehong paraan ay magreresulta sa Kamusta!
- Nakamit ang pagbabago ng laki sa katulad na paraan kapag ginagamit
. Ang tag na ito ay nakasalalay sa mga template na ginamit, ang inirekumendang format ay isang numero na nagpapakita ng laki ng teksto bilang isang porsyento, mula sa 20% (napakaliit) hanggang 200% (napakalaking) ng default na laki. Halimbawa:
LITTLE
malamang na magiging LITTLE
habang:
LABAN!
magiging GUSTO!
[b]MAKITA SA AKIN!
kung ano ang magbibigay MAKITA SA AKIN!
[b] [u]Mali ito
Ang pagsipi at pagpapakita ng mga naka-format na teksto
Sinipi ang mga sagot Mayroong dalawang mga paraan upang quote ang teksto, may o walang link.- Kapag ginamit mo ang pindutan ng Quote upang tumugon sa isang mensahe, ang teksto nito ay idinagdag sa larangan ng pag-input sa isang nakapaligid na bloke
. Ang pamamaraan na ito ay magbibigay-daan sa iyo na quote na may sanggunian sa may-akda o sa ibang bagay na isinulat mo doon. Halimbawa, upang magbanggit ng isang sipi na isinulat ni Mr. Blobby, magsusulat ka:
Text Mr. Malapit na rito ang Blobby
Bilang resulta, ang mga salitang "Mr. Sumulat si Blobby: ". Ingat ka dapat isama ang pangalan sa mga marka ng panipi "", hindi nila maialis.
- Pinapayagan ka lamang ng pangalawang pamamaraan na magbanggit ng isang bagay. Upang gawin ito, kailangan mong i-enclose ang teksto sa mga tag . Kapag nanonood ng isang mensahe, ang teksto sa citation block ay ipapakita lamang.
echo "Ito ang ilang code";
Lahat ng pag-format na ginamit sa loob ng mga tag ay mai-save. Ang pag-highlight ng syntax ng PHP ay maaaring paganahin gamit at inirerekumenda kapag nagpapadala ng mga mensahe na may code ng PHP upang mapagbuti ang pagiging madaling mabasa.
Lumikha ng Mga Listahan
Lumikha ng isang bullet list Sinusuportahan ng BBCode ang dalawang uri ng mga listahan: bullet at bilang. Halos magkapareho sila sa kanilang mga katumbas ng HTML. Sa isang bullet list, lahat ng mga elemento ay ipinapakita nang sunud-sunod, bawat isa ay minarkahan ng isang simbolo ng marker. Upang lumikha ng isang bullet list, gamitin at tukuyin ang bawat elemento na may [*] . Halimbawa, upang ipakita ang iyong mga paboritong kulay, maaari mong gamitin ang:
[*]
Pula
[*]
Asul
[*]
Dilaw
Ito ay makagawa ng isang listahan na tulad nito:
- Pula
- Asul
- Dilaw
[*]
Pumunta sa tindahan
[*]
Bumili ng isang bagong computer
[*]
gagawa ng mga sumusunod:
- Pumunta sa tindahan
- Bumili ng isang bagong computer
- Pag-scam sa isang computer kapag nangyari ang isang error
[*]
Paunang sagot
[*]
Pangalawang posibleng sagot
[*]
Pangatlong posibleng sagot
kung ano ang magbibigay
- Paunang sagot
- Pangalawang posibleng sagot
- Pangatlong posibleng sagot
Link Building
Mga link sa ibang site Sinusuportahan ng BBCode ang ilang mga paraan upang lumikha ng mga URL.- Ang una ay gumagamit ng isang tag
, pagkatapos ng \u003d sign, dapat na pumunta ang nais na URL. Halimbawa, para sa isang link sa phpBB.com maaari mong gamitin:
Bisitahin ang phpBB!
- Kung nais mong lumitaw ang URL mismo bilang link ng teksto, magagawa mo lamang ang sumusunod:
http://www.phpbb.com/
- Bilang karagdagan, sinusuportahan ng phpBB ang isang tampok na tinatawag Mga awtomatikong link, isasalin nito ang anumang syntactically tama na URL sa link nang hindi nangangailangan ng mga tag at kahit na ang prefix ng http: //. Halimbawa, ang pagpasok sa www.phpbb.com sa iyong mensahe ay awtomatikong babalik ang www.phpbb.com kapag tinitingnan ang mensahe.
- Ang parehong naaangkop sa mga email address, maaari mo ring tukuyin ang malinaw na address:
na mag-isyu ng [email protected], o simpleng ipasok ang [email protected] sa iyong mensahe, at ito ay awtomatikong mapapalitan kapag tiningnan.
http://www.google.com/intl/en_ALL/images/logo.gif
hindi tama, na maaaring humantong sa kasunod na pagtanggal ng iyong mensahe, kaya mag-ingat.
Panimula
bbCode - Bulletin Board Code, o wikang markup na ginamit upang mag-format ng mga mensahe sa maraming electronic bulletin board (BBS) at mga forum. Upang mai-format ang teksto, ginagamit ang mga tag tulad ng mga HTML tag. Hindi tulad ng mga HTML tag, ang mga bbCode tags ay nakapaloob sa mga square bracket. Bago ipakita ang pahina, ipinapalagay ng makina ng forum ang teksto at na-convert ang bbCode sa HTML code.
Sa maraming mga forum, ang kakayahang gumamit ng mga code ng BB ay isinaayos nang isa-isa ng administrator para sa bawat seksyon ng forum. Samakatuwid, bago gamitin ang mga code ng BB sa mga mensahe, dapat mong tiyakin na pinapayagan silang.
Pag-format ng font
Mga pangunahing tag para sa pagtatrabaho sa teksto:
[p] Normal na talata sa indent.
Isang talata na maaari mong istilo. ang teksto
* Pagkatapos nito, ang "style" ay isang analogue ng estilo sa HTML.
ang teksto ay katulad sa HTML
** Sa mga tag [p] maaari kang gumamit ng iba pang mga tag, tulad ng [b], [i], [s], atbp.
Teksto na maaari mong magamit sa mga katangian ng estilo.
Ang isang limitadong lugar na maaaring magamit upang baguhin ang mga katangian ng isang estilo (posisyon, hangganan, indisyon, mga katangian ng nilalaman, atbp.).
* Bilang default, hindi nakikita ang mga hangganan ng lugar. Ang isang pahina ay maaaring magkaroon ng maraming mga lugar nang sabay-sabay.
Pag-format ng teksto:
[b] Mahalagang teksto, matapang
[i] Mahalagang teksto, italiko
Matapang lang
Italics lang
[u] May salungguhit na teksto
[s] Tekstong Strikethrough - katulad ng pagkakaiba-iba
Mas maliit na font
Isang tanda sa talababa sa itaas o isang indeks sa ibaba ng teksto
Tinanggal ang teksto
Laki ng font:
13 point font
15 point font
9px font
12px font
15px font
Laki 0
Laki +1
Laki +2
Posibleng posible ang mga pagpipilian sa laki ng font (visual assessment).
Mga header:
Antas ng 1 heading
Antas ng 2 heading
Antas ng 3 heading
Ika-4 na antas ng heading
Antas 5 Heading
Antas 6 heading
Paggawa ng teksto gamit ang mga font:
Font Comic Sans Ms
Font Monotype Corsiva
Font Tahoma
Posibleng posible ang mga pagpipilian sa uri ng font (mga pangalan at visual rating).
Gumagawa ng teksto na may kulay:
Pulang teksto
* Maaari mong gamitin ang karaniwang mga pamagat na pandekorasyon ng mga kulay: Pula, Green, Blue, atbp.
Blue text
* Ang bilang # 0000ff ay nangangahulugang asul sa palad ng RGB.
Asul na background
* Ang background ay maaari ring baguhin ang kulay.
Asul na teksto, kulay-abo na background.
Ang ilang mga paunang natukoy na mga kulay:
Itim na Puting Pulang pula na berde na Lila na Pula ng Firewick Maroon OrangeRed MidnightBlue CornflowerBlue
Cyan Yellow Magenta DarkGreen DarkGoldenrod Gintong Orchid BlueViolet Burlywood PeachPuff
Ang ilang mga kulay sa hexadecimal code ay ang intensities ng pula, berde, at asul (RR GG BB):
# 000000 #FFFFFF # FF0000 # 00FF00 # 0000FF # FF00FF # FF4444 # FF9999 #FFCCCC # 9999FF # FF99FF #DDDDDD # FFE4C4 # UDP99 # FF8DC # FA8072 # 990000 # FF3030 # 000080 # 0000EE # 000080 # DAA520 # FFCC33 # FFA500 # C71585 # 8B008B # CC33FF
Posibleng mga pagpipilian para sa paleta ng kulay at ang kanilang mga code / pangalan ay magagamit.
Pag-align ng teksto at pag-format ng talata
Pagkahanay ng teksto:
I-align ang teksto sa kaliwa
Kaliwa Alignment na may Estilo
Iniwan ng talata ang pagkakahanay
Pag-align ng teksto sa sentro
Alignment ng Center na may Estilo
Pagkahanay sa sentro sa isang talata
I-align ang teksto sa kanang bahagi
Ihanay nang tama sa istilo
Pag-align sa talata sa kanan
I-align ang teksto sa magkabilang panig
Ihanay sa magkabilang panig na may istilo
Pag-align ng talata sa magkabilang panig
* Ang pag-align ng teksto sa magkabilang panig ay ipinapakita para sa mga teksto na mas mahaba kaysa sa isang linya.
Mga talababa (komento) na may talento ng talata:
[q] Sumulat sa linya
Quote sa linya kasama ang mga katangian
Ang teksto na sinipi sa isang hiwalay na bloke, na magkakaroon
isang maliit na indent sa kaliwa at isang espesyal na disenyo (istilo ng forum).
Mga halimbawa:
Lorem ipsum dolor umupo
Lorem ipsum dolor umupo
Lorem ipsum dolor umupo
Pag-format ng mga parapo at lugar:
Kumusta Sa talatang ito, ang unang pangungusap ay mula sa pulang linya, i.e. nagagalit Tulad na lamang sa isang imprenta. Totoo, sa Internet ito ay isang bihirang kasanayan. Ang mga talata ay dapat na paghiwalayin ng isang walang laman na puwang.
Pinapanatili ng preformatted na teksto ang indisyon sa kaliwa at sa pagitan ng mga salita at nagtatakda ng indentasyong iyong tinukoy sa mga puwang. Babala! Ang tag ay hindi awtomatikong ginagawa ang mga linya ng pagkasira!Mga listahan ng pag-format
Gumamit ng isang tag o para sa mga bullet list:
- Isa sa listahan ng mga item
- Isa pang tulad ng item
- Isa pang punto.
[*] Isa pang tulad ng item
[*] Isa pang item.
Para sa mga bilang na listahan, gamitin ang tag:
- Isa sa listahan ng mga item
- Isa pang tulad ng item
- Isa pang punto.
[*] Isa sa mga item sa listahan
[*] Isa pang tulad ng item
[*] Isa pang item.
Opsyonal ang pagsasara ng tag para sa paggamit:
- Isa sa listahan ng mga item
- Isa pang tulad ng item
- Isa pang punto.
[*] Isa sa mga item sa listahan
[*] Isa pang tulad ng item
[*] Isa pang item.
Ang direktang indikasyon ng view ng listahan ay posible rin:
- bilang na listahan
- listahan ng alpabetong
- isang listahan na binibilang sa mga numerong Romano
Mga larawan
Http://img.cx/img/primer.jpg - isang halimbawa ng pagsingit ng isang larawan.
Http://img.cx/img/primer.jpg - larawan sa kaliwa.
Http://img.cx/img/primer.jpg - larawan sa kanan.
* Ang code na ito ay katulad sa HTML code:
Http://img.cx/img/primer.jpg - isang larawan sa gitna.
* Ang code na ito ay katulad sa HTML code:
Katulad na mga tag na may mga pangalan at tooltip:
Mahalaga! Hindi ka maaaring gumamit ng mga marka ng panipi sa pangalan ng larawan!
Http://img.cx/img/primer.jpg - isang halimbawa ng pagsingit ng isang larawan.
Http://img.cx/img/primer.jpg - larawan sa kaliwa.
Http://img.cx/img/primer.jpg - larawan sa kanan.
Http://img.cx/img/primer.jpg - isang larawan sa gitna.
Mga larawan na may tinukoy na laki:
Http://img.cx/img/primer.jpg - isang halimbawa ng isang larawan na may sukat.
* Ang code na ito ay katulad sa HTML code:
Http://img.cx/img/primer.jpg - larawan sa kaliwa, na may sukat.
Http://img.cx/img/primer.jpg - larawan sa kanan, na may sukat.
Ipasok ang malalaking mga imahe na may scroll bar:
Http: //www..jpg - isang larawan sa napiling lugar, kung ito ay mas malaki kaysa sa magagamit na laki ng pagpapakita sa forum.
Address - buksan ang imahe sa isang bagong window.
* Ang code na ito ay katulad sa HTML code:
Address - buksan ang imahe sa parehong window.
* Ang code na ito ay katulad sa HTML code:
Pana-panahong kailangan kong gamitin ang "tagapagsalin" ng BBCode sa aking mga proyekto (nakasulat sa PHP), at palaging walang oras upang maghanap ng ilang higit pa o mas kaunting natutunaw na solusyon, na sa huli ay nagreresulta sa paggamit o paglikha ng "mga saklay" para sa bawat tiyak na kaso.
Ngunit ngayon, tila, ito ay upang malaman kung ano ang gusto ko.
Ang aking reklamo tungkol sa mga nakahanda na solusyon ay kadalasang pangunahin sa kawalan ng kakayahan ng mga aklatang ito upang maayos na maproseso ang mga parapo. Sa katunayan, karaniwang hindi sila gumagamit ng mga talata (tag P), sa halip, bilang isang resulta ng kanilang trabaho, nagpasok lamang sila ng isang tag
pagpapalit ng karaniwang mga character break line. Isinasaalang-alang ko ang pamamaraang ito ng pagtulad ng talata sa 98 porsyento, upang ilagay ito nang banayad, hindi angkop. Ngunit dahil ang linya ng pambalot ay nasa loob ng paraan
mas madaling ipatupad sa halip na "tao"
, tulad ng ginagawa ng karamihan sa kanila 🙁 Ang ilan ay may mga dahilan na sinasabi nila na ang br ay mas tama, na bahagyang dahil sa katamaran ng mga nag-develop ng iba't ibang mga yari na aklatan, naisip ng ibang bahagi ng mga tao na ang tag P ay lipas na (pagkatapos ng lahat, kahit na sa maraming mga natapos na produkto at site, ang mga talata ay nabuo sa pamamagitan ng paggamit
) 🙂
Magsimula tayo
Ngunit tila may ilaw sa dulo ng lagusan. Ito ay isang yari na klase para sa pagtatrabaho sa BBCode, na, tila, ay isang mahusay na trabaho (wala pa akong nakita na mas mahusay). Ang negatibo lamang ay ang dokumentasyon na ipinakita sa site ay hindi sa Russian. Nais ko ring pagtagumpayan ang minus na ito sa artikulong ito, na nagbibigay ng isang halimbawa ng paggamit ng klase ng mga komento ng Ruso.
Una kailangan mong mag-download ng aklatan (sa oras ng pagsulat, ang bersyon ng aklatan ay 0.3.3). Sa na-download na archive sa folder ng src, makakahanap ka ng dalawang file na kailangan namin: stringparser.class.php at stringparser_bbcode.class.php.
Halimbawa, ipagpalagay na mayroon kaming isang walang laman na file na index.php at sa tabi nito ay gagawa kami ng isang folder / bbcode / naglalaman ng dalawang mga file na nabanggit sa itaas.
Halimbawa, ang pinakamababang nilalaman ng file na "index.php" ay dapat na katulad nito (sa pamamagitan ng pagpapatakbo ng halimbawang ito, makikita mo kaagad kung gumagana ang library):
< ?php //Вставляем файл библиотеки require_once "bbcode/stringparser_bbcode.class.php"; //Создаем объект класса StringParser_BBCode $bbcode = new StringParser_BBCode (); //Добавляем объекту класса понятие о тэге [b] //(в итоге только этот тэг и будет //обрабатываться этим классом) $bbcode->addCode ("b", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"")," inline ", array (" block "," inline "), array ()); // Iproseso ang string string at output ito sa browser echo $ bbcode-\u003e parse (" Pagsubok ng teksto, ang salitang ito ay dapat na [b ] matapang ");?\u003e
Pag-andar ng AddCode
Marahil ang addCode function ng isang bagay ng klase ng StringParser_BBCode ay maaaring maging sanhi ng pinakamalaking interes sa code na ito, narito ang prototype at isang listahan ng mga paglalarawan ng parameter:
Walang bisa addCode (string $ code, string $ type, string $ callback, string $ params, string $ content_type, array $ allow_in, array $ not_allowed_in);
Ang pag-andar na ito ay nagdaragdag ng konsepto ng ilang mga code (bb code) para sa isang bagay ng klase upang sa kalaunan ay tuklasin ang mga code na ito sa teksto at iproseso nang naaayon. I.e. masasabi natin na sa una ay ang object ng klase ng StringParser_BBCode ay walang alam tungkol sa karaniwang mga code ng bb at hindi magagawang iproseso ang mga ito sa anumang paraan. Samakatuwid, pagkatapos ng bawat pagsisimula, ang bagay na ito ay kailangang "sanay" sa lahat ng mga lahi ng mga code ng bb.
$ code (halimbawa, nangangahulugang 'b') Ang code na hahanapin sa teksto para sa pagproseso. I.e. kung tinukoy mo ang test code, pagkatapos ay hahanapin ang tag sa naproseso na teksto at naproseso alinsunod sa mga tagubilin sa iba pang mga parameter ng pag-andar na pinag-uusapan. Uri ng $ (halimbawa, itinakda ang 'simple_replace') Tinukoy kung paano dapat maiproseso ang tag (kung anong uri ito). Mayroong iba't ibang mga paunang natukoy na mga uri ng tag na ilalarawan sa ibaba. Sa aming halimbawa, ang uri ng 'simple_replace' ay tinukoy, na nagpapahiwatig na ang tag ay ipares: $ callback (sa halimbawa nito ay null) Hinahayaan mong tukuyin ang pangalan ng function na tatawagin kapag pinoproseso ang nahanap na tag sa teksto. Sa kaso ng uri ng tag na 'simple_replace', ang naturang pag-andar ay hindi tinawag, at, nang naaayon, ang null ay maaaring matukoy sa parameter na ito. $ params (sa halimbawa, array ('start_tag' \u003d\u003e ' ',' End_tag \u200b\u200b'\u003d\u003e'')) Ang pangunahing parameter na ito ay nagpapahiwatig kung aling mga tag na html ang dapat ipasok sa halip na bb tag. Ang pangalan ng mga parameter nang direkta ay nakasalalay sa kung anong uri ng tag na tinukoy namin sa parameter ng $ type. $ content_type (sa halimbawa, 'inline') Ang uri ng panloob na nilalaman ng tag. Maaari nitong kunin ang mga halaga: 'inline', 'block', 'link', 'image'. Kung hindi ako nagkakamali, maaari mo ring irehistro ang iyong mga uri upang maaari mong tukuyin ang iyong sariling mga filter para sa nilalamang ito (tingnan ang halimbawa ng paggamit ng mga filter sa ibaba). $ allow_in (sa halimbawa, ang halaga ay array ('block', 'inline')) Sa parameter na ito maaari mong tukuyin kung aling mga uri ng mga bagay na maaaring makuha ang code ng bb (sa pagproseso nito ay hindi papansinin kung hindi man). Sa aming halimbawa, ipinahiwatig namin na ang isang elemento ay maaaring pareho sa loob ng mga elemento ng bloke at sa loob ng mga gulong elemento. $ not_allowed_in (sa halimbawa, mahalaga () na mahalaga) May isang layunin na kabaligtaran sa kahulugan sa nakaraang parameter.
Mga uri ng pagproseso ng tag
Paglalarawan ng mga pagpipilian para sa halaga ng $ type na parameter sa function ng addCode.
Inilarawan ng 'Simple_replace' ang isang simpleng tag ng pares. Kapag ginagamit ang ganitong uri ng pagproseso ng tag, ang parameter ng function ng парамет params ay dapat maglaman ng dalawang mga cell: $ params ['start_tag'] at $ params ['end_tag']. Ang 'Start_tag' ay dapat maglaman ng isang analogue ng pagbubukas ng tag sa HTML, at 'end_tag' - ang pagsasara ng tag, ayon sa pagkakabanggit. 'Simple_replace_single' Ang parehong bilang 'simple_replace', ngunit ginagamit lamang para sa mga solong tag na, sa katunayan, ay walang nilalaman (tulad ng br, hr, atbp.). Nangangailangan lamang ng parameter na $ params ['start_tag']. 'Callback_replace' Sa ganitong uri, inilipat mo ang pagproseso para sa mga tugma na natagpuan (gamit ang function ng callback) para sa ipinares na tag. 'Callback_replace_single' Pareho ng 'callback_replace', ngunit para lamang sa mga solong tag. Ang 'Usecontent' Pareho bilang 'callback_replace', tanging sa mga nilalaman ng nasabing tag ibang mga tag ay hindi maproseso, halimbawa, ito ay maginhawa para sa code ng tag. 'Usecontent?' Ang ganitong uri ay maaaring kumilos tulad ng 'usecontent' o tulad ng 'callback_replace' depende sa sitwasyon. Ang kaugnayan ng isang partikular na pagpipilian ay natutukoy sa pamamagitan ng pagkakaroon ng isang pre-tinantyang katangian sa bb tag. Kung ang katangian ay natagpuan, pagkatapos ang pagproseso ng 'callback_replace' ay gagamitin, kung hindi man ay iproseso ang tag bilang 'usecontent'. Ang pangalan ng katangian para sa paghahanap ay tinukoy sa pamamagitan ng parameter ng $ params ['usecontent_param']. Kung tinukoy ang default, kung gayon ang halaga ng katangian ay itinalaga nang direkta sa tag, halimbawa, ang halaga ng default na katangian ay ang teksto na "http: // link". Ang pamamaraan na ito ay madalas na ginagamit, halimbawa, para sa isang tag. Ang tag na ito ay maaaring magamit sa dalawang anyo: http://www.example.com/ at Link text, pati na rin ang [b] bold na teksto. Sa unang kaso, ang uri ng 'usecontent' ay gagamitin, sapagkat ang link ng teksto ay dapat ipakita nang walang anumang pag-format (at, sa katunayan, ang link mismo ay hindi tama kung naglalaman ito ng mga extrusion na character). Sa ibang kaso, ang uri ng 'callback_replace' ay dapat gamitin, dahil ang link mismo ay naipasa bilang isang hiwalay na parameter, at ang teksto na naka-frame sa link ay maaaring naglalaman ng ilang uri ng pag-format.
Tandaan: Maaari mong tukuyin ang ilang mga parameter para sa kanilang paghahanap, kung saan sa $ params ['usecontent_param'] kailangan mong pumasa hindi isang string, ngunit isang hanay na naglalaman ng mga string. Halimbawa: $ bbcode-\u003e addCode (..., array ('usecontent_param' \u003d\u003e array ('parameter1', 'parameter2')), ...); 'Callback_replace?' Ang kabaligtaran ng 'usecontent?'. Kung ang isa sa mga katangiang tinukoy sa usecontent_param ay nangyayari sa tag, maproseso ito bilang 'usecontent', kung hindi man bilang 'callback_replace'.
Halimbawang code mula sa mga kondisyon na "labanan"
Narito ang isang halimbawa index.php file na may isang mas advanced na pagsasaayos ng klase para sa pagproseso ng isang mas malaking bilang ng mga tag, posible din na maunawaan kung paano gumagana ang mga function ng callback, atbp.
< ?php
//Вставляем файл библиотеки
require_once "bbcode/stringparser_bbcode.class.php";
//Приводит разнообразные переводы строк
//разных операционных систем в единый формат (\n)
function convertlinebreaks ($text) {
return preg_replace ("/\015\012|\015|\012/", "\n", $text);
}
//Удалить все символы, кроме переводов строк
function bbcode_stripcontents ($text) {
return preg_replace ("/[^\n]/", "", $text);
}
//Функция для обработки ссылок
function do_bbcode_url ($action, $attributes, $content, $params, $node_object) {
if (!isset ($attributes["default"])) {
$url = $content;
$text = htmlspecialchars ($content);
} else {
$url = $attributes["default"];
$text = $content;
}
//Часть функции, которая занимается
//только валидацией данных тэга
if ($action == "validate") {
if (substr ($url, 0, 5) == "data:" || substr ($url, 0, 5) == "file:"
|| substr ($url, 0, 11) == "javascript:" || substr ($url, 0, 4) == "jar:") {
return false;
}
return true;
}
//Непосредственное преобразование тэга в
//html вариант с возвращением результата
return "". $ text." ";) // Function para sa pagpasok ng function ng mga imahe do_bbcode_img (aksyon ng $, mga katangian ng $, nilalaman ng $, $ params, $ node_object) (// Bahagi ng pagpapaandar na // ay nagpapatunay lamang sa data ng tag kung ($ aksyon \u003d\u003d "patunayan") (kung (substr ($ nilalaman, 0, 5) \u003d\u003d "data:" || substr ($ nilalaman, 0, 5) \u003d\u003d "file:" || substr ($ nilalaman, 0 , 11) \u003d\u003d "javascript:" || substr ($ content, 0, 4) \u003d\u003d "jar:") (bumalik na mali;) bumalik totoo;) // Direkta na mai-convert ang tag sa // na pagpipilian ng html sa pagbabalik ng resulta " ";) // Lumikha ng isang object ng klase ng StringParser_BBCode $ bbcode \u003d bagong StringParser_BBCode (); // Magdagdag ng isang filter (para sa higit pang mga detalye makita ang dokumentasyon), // gamit ang aming function convertlinebreaks, na // mag-convert ng mga feed ng linya sa teksto sa isang solong $ bbcode -\u003e addFilter (STRINGPARSER_FILTER_PRE, "convertlinebreaks"); // Idagdag ang aming mga parser para sa iba't ibang uri ng mga bagay na // (para sa higit pang mga detalye tingnan ang dokumentasyon) // Ipinapahiwatig namin kung saan gumagana ang // ang mga nilalaman ng mga tag na ito ay dapat pumunta, halimbawa, sa pamamagitan ng isang function // htmlspecialchars upang maiwasan ang XSS, atbp. $ bbcode-\u003e addParser (array ("block", "inline", "link", "listitem"), "htmlspecialchars"); $ bbcode-\u003e addParser (array (" harangan "," inline "," link ", "listitem"), "nl2br"); $ bbcode-\u003e addParser ("list", "bbcode_stripcontents"); // Idagdag ang bb code na ginamit bilang: // Ang teksto ng unang antas ng header $ bbcode-\u003e addCode ("h1 "," simple_replace ", , array (" start_tag "\u003d\u003e" "," end_tag \u200b\u200b"\u003d\u003e"
")," block ", array (" listitem "," block "," link "), array ()); // Idagdag ang bb code na ginamit sa form: // Second level header text $ bbcode-\u003e addCode ( "h2", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"
")," block ", array (" listitem "," block "," link "), array ()); // Idagdag ang bb code na ginamit sa form: // Pangatlong antas ng header text $ bbcode-\u003e addCode ( "h3", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"
")," block ", array (" listitem "," block "," link "), array ()); // Idagdag ang bb code na ginamit sa form: // Ang teksto ng pang-apat na antas ng header $ bbcode-\u003e addCode ( "h4", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"
")," block ", array (" listitem "," block "," link "), array ()); // Idagdag ang bb code na ginamit sa form: // Ang teksto ng ikalimang antas ng header $ bbcode-\u003e addCode ( "h5", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"
")," block ", array (" listitem "," block "," link "), array ()); // Idagdag ang bb code na ginamit bilang: // Ang teksto ng pang-anim na antas ng header $ bbcode-\u003e addCode ( "h6", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"
")," block ", array (" listitem "," block "," link "), array ()); // Itakda ang mga flag para sa mga code ng bb mula h1 hanggang h6, // na nagpapahiwatig na sila ay mga elemento ng bloke. // na higit na makikinabang sa matalinong // henerasyon ng code ng html. Ang nasabing sangkap, halimbawa, ay hindi maaaring maging sa loob ng iba pang mga elemento ng block $ bbcode-\u003e setCodeFlag ("h1", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode -\u003e setCodeFlag ("h2", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode-\u003e setCodeFlag ("h3", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode-\u003e setCodeBlag_B__B__B__B__B__B__B__B__BL_BL_BL_BL_BL_BL_B__BL bbcode-\u003e setCodeFlag ("h5", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $ bbcode-\u003e setCodeFlag ("h6", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); // Magdagdag ng bb- od [b], ay ginagamit sa anyo: // [b] piniling teksto $ bbcode-\u003e addCode ( "b", "simple_replace", , array ( "START_TAG" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"")," inline ", array (" listitem "," block "," inline "," link "), array ()); // Idagdag ang bb code [i] na ginamit sa form: // [i] pahilig na teksto $ bbcode-\u003e addCode ("i", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"")," inline ", array (" listitem "," block "," inline "," link "), array ()); // Idagdag ang bb code na ginamit sa form: // http: // www. needsite.domain at // Link text $ bbcode-\u003e addCode ("url", "usecontent?", "do_bbcode_url", array ("usecontent_param" \u003d\u003e "default"), "link", array ("listitem", " harangan "," inline "), array (" link ")); // Idagdag ang bb code na ginamit sa form: //http://www.needsite.domain $ bbcode-\u003e addCode (" link "," callback_replace_single "," do_bbcode_url ", array ()," link ", array (" listitem "," block "," inline "), array (" link ")); // Idagdag ang bb code na ginamit sa form: // http: //www.needsite.domain/img.jpg $ bbcode-\u003e addCode ("img", "usecontent", "do_bbcode_img", array (), "image", array ("listitem", "block", " inline "," link "), array ()); // Idagdag ang bb-code (sa kahulugan ng pareho, // as) na ginamit sa form: //http://www.needsite. domain / img.jpg $ bbcode-\u003e addCode ("bildo", "usecontent", "do_bbcode_img", array (), "imahe", array ("listitem", "block", "inline", "link"), array ()); // Lumikha ng isang pangkat ng imahe mula sa mga code ng bb img at bilding // para sa kasunod na posibilidad ng pagtatakda ng // ilang mga patakaran para sa mga pangkat na ito $ bbcode-\u003e setOccurrenceType ("img", "image"); $ bbcode-\u003e setOccurrenceType ("bildo", "imahe"); // Ipinapahiwatig namin na ang mga tag mula sa imahe // pangkat ay maaaring mangyari (maiproseso) sa teksto nang hindi hihigit sa // dalawang beses. Sa aming kaso, kinakailangan ito upang ang gumagamit // ay hindi maaaring magpasok ng higit sa dalawang // larawan sa text message $ bbcode-\u003e setMaxOccurrences ("imahe", 2); // Idagdag ang bb code $ bbcode-\u003e addCode ("listahan", "simple_replace", , array ("start_tag" \u003d\u003e " "," end_tag \u200b\u200b"\u003d\u003e"
")," lista ", array (" block "," listitem "), array ()); // Idagdag ang bb code [*], na nagpapahiwatig na ang tag na ito ay // magagamit lamang sa loob ng tag // na may listahan ng uri (itinalaga namin ang ganitong uri sa tag sa itaas) $ bbcode-\u003e addCode ("*", "simple_replace", , array ("start_tag" \u003d\u003e "
Afterword
Siyempre, hindi ako gumawa ng isang buong pagsasalin ng dokumentasyon, ngunit lamang ang pinaka kinakailangan na minimum, para sa mas detalyadong dokumentasyon maaari kang sumangguni sa opisyal na website (sa pangkalahatan, maraming iba pang mga iba't ibang mga posibilidad na inilarawan).
Hindi rin mahirap ipatupad ang library na ito sa anumang balangkas ng php, halimbawa, matagumpay kong nagawa ito para sa cackePHP.
Kung nakilala mo rin ang mga katulad na aklatan (gumagana nang tama sa mga talata! 🙂), magiging kawili-wiling malaman ang tungkol sa mga ito.
Pagpasok
Ano ang bbcode? Ang BBCode ay isang espesyal na pagpapatupad ng wikang HTML na nagbibigay ng mas maginhawang tampok para sa pag-format ng mga mensahe. Ang kakayahang gumamit ng BBCode sa mga mensahe ay natutukoy ng tagapangasiwa ng lupon. Bilang karagdagan, ang BBCode ay maaaring hindi pinagana ng anumang oras sa anumang nai-post na mensahe nang direkta mula sa form ng pagsulat nito. Ang BBCode mismo ay halos kapareho sa estilo sa HTML, ngunit ang mga tag sa loob nito ay nakapaloob sa mga square bracket [...], at hindi sa< … >. Kapag gumagamit ng ilang mga template, maaari kang magdagdag ng BBCode sa mga mensahe gamit ang simpleng interface na matatagpuan sa itaas ng larangan ng pag-input ng teksto. Ngunit kahit na pagkatapos, ang pagbabasa ng manu-manong ito ay maaaring maging kapaki-pakinabang sa iyo.Pag-format ng teksto
Paano gawing bold, italic o may salungguhit ang teksto? Kasama sa BBCode ang mga tag para sa mabilis na pagbabago ng estilo ng teksto ng katawan. Maaari mong gawin ito sa mga sumusunod na paraan:- Upang maisakatuparan ang teksto, isama ito sa mga tag [b]. Isang halimbawa:
[b]Kumusta
magbibigay Kumusta
- Gumamit ng mga nakabababang tag [u]. Isang halimbawa:
[u]Magandang umaga
magbibigay ng magandang umaga
- Tapos na ang mga Italya sa mga tag. [i]. Isang halimbawa:
Ito ay [i]mahusay!
ibibigay ito mahusay!
- Maaari mong baguhin ang kulay ng teksto sa pamamagitan ng nakapaligid dito sa mga tag.
. Maaari mong tukuyin ang alinman sa isang kilalang pangalan ng kulay (pula, asul, dilaw, atbp.) O ang hexadecimal representasyon nito (#FFFFFF, # 000000, atbp.). Kaya, upang lumikha ng pulang teksto maaari mong gamitin:
Kumusta
Kumusta
Ang parehong mga pamamaraan ay magreresulta sa Kamusta!
- Nakamit ang pagbabago sa parehong paraan kapag gumagamit ng tag.
. Ang tag na ito ay nakasalalay sa mga template na ginamit, ngunit ang inirekumendang format ay isang halaga ng numero na nagpapakita ng sukat ng teksto bilang isang porsyento, mula sa 20 (napakaliit) hanggang 200 (napakalaking) ng default na laki. Isang halimbawa:
TALAGA
malamang na magbibigay ng FINE
habang:
Sobrang MALAKI!
magbibigay ng napakalaking BIG!
[b]MAKITA SA AKIN!
kung ano ang magbibigay MAKITA SA AKIN!
[b] [u]Ang entry na ito ay hindi tama
Ang pagsipi at pagpapakita ng mga naka-format na teksto
Ang pagsipi ng teksto sa mga tugon Mayroong dalawang paraan upang magbanggit ng mga teksto: na may indikasyon ng may-akda at walang pahiwatig.- Kapag gumagamit ng pindutan ng Quote upang tumugon sa isang mensahe, ang teksto ng mensahe ay idinagdag sa larangan ng input ng teksto na napapalibutan ng mga tag
. Ang pamamaraang ito ay nagbibigay-daan sa iyo na quote na may sanggunian sa may-akda, o sa ibang bagay na nai-type mo sa mga marka ng panipi. Halimbawa, upang quote ang isang piraso ng teksto na isinulat ni Mr. Blobby, type:
Ipasok ang teksto mula kay G. Narito Blobby
Bilang isang resulta, bago ang iyong tugon sa mensahe ang teksto na "Mr. Sumulat si Blobby: ". Tandaan ay kinakailangan isama ang pangalan sa mga marka ng panipi (""); hindi sila maialis.
- Pinapayagan ka lamang ng pangalawang pamamaraan na magbanggit ng isang bagay. Upang gawin ito, ilagay ang teksto sa pagitan ng mga tag . Kapag nanonood ng isang mensahe, ang teksto na ito ay nasa citation block.
echo "Ito ang code ng programa";
Lahat ng pag-format na ginamit sa loob ng mga tag ay mai-save. Ang pag-highlight ng code ng PHP ay maaaring gawin gamit ang tag at inirerekomenda kapag nagpo-post ng mga mensahe na naglalaman ng mga fragment ng mga code ng PHP.
Lumikha ng Mga Listahan
Lumikha ng isang bullet list Sinusuportahan ng BBCode ang dalawang uri ng mga listahan: bullet at bilang. Halos magkapareho sila sa kanilang mga katumbas ng HTML. Sa isang bullet list, lahat ng mga elemento ay ipinapakita nang sunud-sunod, bawat isa ay minarkahan ng isang simbolo ng marker. Gumamit ng mga tag upang lumikha ng isang bullet list. at tukuyin ang bawat elemento ng listahan [*] . Halimbawa, upang ipakita ang iyong mga paboritong kulay, maaari mong gamitin ang:
[*]
Pula
[*]
Asul
[*]
Dilaw
Ito ay makagawa ng isang listahan na tulad nito:
- Pula
- Asul
- Dilaw
[*]
Pumunta sa tindahan
[*]
Bumili ng isang bagong computer
[*]
gagawa ng mga sumusunod:
- Pumunta sa tindahan
- Bumili ng isang bagong computer
- Pag-scam sa isang computer kapag nangyari ang isang error
[*]
Paunang sagot
[*]
Pangalawang posibleng sagot
[*]
Pangatlong posibleng sagot
kung ano ang magbibigay
- Paunang sagot
- Pangalawang posibleng sagot
- Pangatlong posibleng sagot
Link Building
Mga link sa ibang site Sinusuportahan ng phpBB ang ilang mga paraan upang lumikha ng mga link, na kilala rin bilang mga URL.- Ang una ay gumagamit ng isang tag
. Matapos ang \u003d sign, dapat ipasok ang kinakailangang URL. Halimbawa, upang lumikha ng isang link sa phpBB.com, maaari mong gamitin:
Sa pangwakas na form, ang ganitong code ay magiging ganito: Bisitahin ang www.teosofia.ru! Bukas ang link sa pareho o sa isang bagong window, depende sa mga setting ng browser ng gumagamit.
- Kung nais mong lumitaw ang URL bilang link ng teksto, maaari mo lamang gawin ang mga sumusunod:
http://www.teosofia.ru/
- Bilang karagdagan, ang isang function na tinatawag na phpBB ay tinatawag Mga awtomatikong link. Ang pag-andar na ito ay nagko-convert ng anumang sintaktibong URL na may bisa sa isang link nang hindi nangangailangan ng mga tag at ang prefix ng http: //. Halimbawa, ang pagpasok ng parirala www.teosofia.ru sa mensahe ay magreresulta sa awtomatikong output ng www.teosofia.ru kapag tinitingnan ang mensaheng ito.
- Ang parehong naaangkop sa mga email address: maaari mong tukuyin nang malinaw ang address:
kung ano ang magbibigay [email protected] o ipasok lamang ang address [email protected] sa mensahe, at ito ay awtomatikong mai-convert kapag tinitingnan ang mensaheng ito.
http://www.teosofia.ru/my-picture.gif
hindi tama, na maaaring humantong sa kasunod na pagtanggal ng iyong mensahe. Mag-ingat ka