BBCode mendukung beberapa cara untuk membuat URL.

  • Yang pertama menggunakan tag , setelah tanda = pasti muncul URL yang diinginkan. Misalnya, untuk menautkan ke phpBB.com Anda dapat menggunakan:

    Kunjungi phpBB!

  • Jika Anda ingin URL itu sendiri ditampilkan sebagai teks tautan, Anda cukup melakukan hal berikut:

    http://www.phpbb.com/

  • Selain itu, phpBB mendukung fitur bernama Tautan otomatis, ini akan mengubah URL apa pun yang benar secara sintaksis menjadi tautan tanpa memerlukan tag atau bahkan awalan http://. Misalnya, mengetikkan www.phpbb.com ke dalam pesan Anda akan secara otomatis menampilkan www.phpbb.com saat melihat pesan tersebut.
  • Hal yang sama berlaku untuk alamat email, Anda dapat menentukan alamatnya secara eksplisit:

    [dilindungi email]

    apa yang akan diberikannya? [dilindungi email] atau masuk saja [dilindungi email] ke dalam pesan Anda dan itu akan secara otomatis dikonversi ketika dilihat.

Seperti semua tag BBCode lainnya, Anda dapat menyertakan tag lain di URL, misalnya. (lihat poin berikutnya), [B] dll. Seperti halnya pemformatan tag, penempatan tag yang benar terserah Anda, misalnya:

http://www.phpbb.com/images/phplogo.gif

salah, yang dapat mengakibatkan postingan Anda dihapus, jadi berhati-hatilah.

Kunjungi: Pilih forum Perencanaan Kehamilan. Ayo ambil... Aku ingin punya anak! Berencana untuk mengambil... Obrolan perencanaan Dicari - penghibur Buku harian perencanaan kehamilan Pengobrol kehamilan ibu hamil Memilih nama untuk anak Arsip bagian Kehamilan Kesehatan ibu hamil dan anak Rumah sakit persalinan dan bersalin Selamat atas kelahiran Diskusi rumah sakit bersalin Beranda kelahiran Anak-anak - perawatan anak, nutrisi dan... Peduli anak Tentang makanan. Semua tentang makanan bayi Bicara tentang produk untuk anak -... Perawatan Bayi Menyusui. Arsip forum Arsip forum Produk untuk anak Kesehatan anak dan obat untuk... Vaksinasi Anak lain Kedokteran gigi anak Alergi, dermatologi, imun... Diskusi institusi medis... Anak-anak kita. Komunikasi antar teman sebaya... Klub kembar, kembar tiga dan sebagainya... Masalah tanah Saudara kandung dengan banyak anak Membesarkan anak. Hubungan keluarga... Perkembangan dan pendidikan anak Kerajinan - kami buat bersama anak-anak Buku anak-anak, film, dongeng audio Lingkaran, klub, dan pusat pendidikan Ke mana harus pergi bersama anak Anda. Anak-anak... Taman kanak-kanak dan pengasuh TK Novosibirsk: alamat... Olahraga untuk anak-anak Sekolah dan anak sekolah. Universitas dan perguruan tinggi,... Pendidikan keluarga. Sekolah Eksternal dan gimnasium Novosibirsk dan... Arsip bagian sekolah Anak angkat. Adopsi. Wali... Forum berdiskusi tentang sejarah pribadi... Remaja. Anak-anak dan pubertas Rumah dan keluarga Semua tentang real estate. Rumah, apartemen... Perbaikan dan interior Konstruksi rumah, garasi, bar... Masyarakat Sibmama dacha. Ogor... Pasar negara. Barang untuk taman, ... Kebun dan kebun sayur (benih, bibit, ... Taman Siberia - tema penulis Taman bunga kami Kami membahas pondok musim panas - kebun... Arsip forum pondok musim panas Rumah tangga Semua tentang liburan dan hadiah Tahun Baru!!! Semua tentang persiapan... Belanja untuk rumah Peralatan rumah tangga Arsip Hobi memasak. Klub pecinta boneka - barang koleksi... Hewan Kucing Pembelian Hewan, ... Bantuan untuk hewan Arsip forum tentang hewan peliharaan Bunga dan tanaman rumah Pasar bunga.... Violet, Saintpaulias, gloxinias dan... Foto taman bunga Arsip forum bunga Kerajinan Tangan Menjahit - teknik, pola, diskusi... Merajut dan merenda - pola... Sulaman Membual dari wanita yang membutuhkan Peralatan untuk menjahit Scrapbooking, decoupage, quilling Patchwork, quilting, - tambal sulam w. .. Arsip bagian Kerajinan Tangan Perlengkapan kerajinan tangan (SEBELUM) Pengumuman... Kehidupan keluarga Ayah-adik Tentang seks (18+) Forum foto. Semua tentang foto Forum otomotif Arsip Autoforum Perjalanan dan pariwisata. Hotel dan sa... Rusia dan negara tetangga... Siberia dan Altai. Rekreasi aktif... Türkiye - Antalya, Marmaris, Sta... LAUT - Thailand, Vietnam, Cina, ... SEBELUM bagian Perjalanan. Perumahan, ... Kecantikan dan perhatian. Mode dan gaya. Kesehatan... Perawatan tubuh dan wajah. Kosmetik...Perawatan rambut. Gaya rambut Tetap bugar! Olahraga dan kebugaran. Tolong... Perawatan dan kesehatan orang dewasa. Sayang... Fashion dan Gaya. Diskusi tren Pembelian yang sukses Klub pecinta parfum Peminum parfum Arsip kecantikan umum Karya. Istirahat. Pertanyaan umum Tentang segala sesuatu di dunia saat ini Betapa menakutkannya hidup Pendidikan hukum Perbankan dan keuangan Pekerjaan dan pelatihan. Untuk orang dewasa, urusan Anda sendiri. Forum untuk wanita bisnis Penawaran untuk membeli/menjual ... Tentang iman Kehidupan budaya Sains dan kehidupan Hiburan. Humor, lelucon. Ig... Kenali dirimu: rohani dan jasmani... Kehidupan Sibmama Diskusi situs dan forum Club Sibmama. Diskon di Novosibir... Test drive Sibmama Tempat pertemuan Kompetisi Buku kutipan Arsip forum Sibmama Arsip forum Tempat pertemuan Arsip jajak pendapat Forum hijau. Arsip Gadget. Arsip Amal orang tua... Mengumpulkan bantuan untuk anak yang sakit Ibu membutuhkan bantuan Arsip forum amal Forum kota dan negara lain Ibu asing dan mereka yang siap... Ibu saudara di Moskow. Daerah Forum ibu dan ayah Krasnoyarsk Forum ibu dan ayah Tomsk Omsk Sibmoms berkomunikasi di sini :) Forum ibu dan ayah Novokuznetsk Forum ibu dan ayah Kemerovo Arsip Daerah Arsip bagian Omsk Sochi, Krasnodar dan selatan lainnya... Barnaul dan Wilayah Altai Wilayah Barnaul dan Altai - razgo... Konstruksi dan renovasi di Barnaul dan A... Rumah tangga di Barnaul. ... Kesehatan orang dewasa di Barnaul Barnaul Liburan kami Barang-barang wanita. Kecantikan, kepedulian, ... Pariwisata dan perjalanan penduduk Barnaul Barnaul. Hewan dan tumbuhan, f... Kehidupan budaya di Barnaul untuk... Arsip bagian Barnaul Kehamilan dan persalinan di Barnaul Altai anak-anak - semua tentang membesarkan... Olahraga anak-anak di Barnaul dan Alta... TK, sekolah, universitas, perguruan tinggi ... Kesehatan anak-anak kita - Arsip Barnaul. Perkemahan anak-anak Altai - musim panas, prishko... Papan pengumuman di Barnaul Barnaul. DO Pakaian dan barang lainnya... Barnaul DO Alas kaki untuk anak Barnaul. DO Pakaian anak-anak Barnaul. LAKUKAN Produk untuk anak-anak Barnaul. DO Sepatu untuk dewasa Barnaul. DO Pakaian untuk orang dewasa Barnaul DO Real estate Barnaul DO. Penjualan hewan dan... Barnaul. KE Perabotan dan aksesoris Barnaul. LAKUKAN Pekerjaan dan jasa LAKUKAN Perawatan kecantikan dan tubuh di Ba... Barnaul. SEBELUM Bimbingan Belajar, lingkari... Barnaul. Penjual buku bekas - SEBELUM Buku dan... Saya akan memberikannya secara gratis. Iklan di Barnaul DO Beli berbagai barang di Barnaul. Ob... Pembelian bersama Barnaul... Barnaul. Pakaian JV (dewasa dan... Barnaul. Sepatu JV, pakaian laki-laki... Barnaul. JV Barang lainnya Barnaul. JV kotak pasir yang sukses di Biysk Pembelian bersama Klub Hobi... Barnaul. Penawaran komersial... Papan Buletin Novosibirsk Barang anak-anak ( LAKUKAN) di Novosibirsk Pakaian untuk bayi hingga usia satu tahun (hingga... Pakaian untuk anak prasekolah (dari 86... Barang untuk anak sekolah (dari 122... . Transportasi anak. Kereta bayi dan mobil... Perabotan anak ( DO) Produk untuk rumah dan keluarga (DO) Pakaian untuk dewasa (DO) Produk untuk hamil dan menyusui... Sepatu untuk dewasa (DO) Otomotif DO Buatan tangan ( DO) - Buatan tangan.... Furnitur dan barang besar.. .Peralatan rumah tangga, komputer, dll. Arsip bagian Buatan Tangan (DO) Pekerjaan dan jasa (DO) Layanan untuk anak-anak. Video. dan perawatan (DO) Bantuan dalam pelatihan akan memberikannya secara gratis Real estat (DO) Iklan untuk menyewakan dan menyewakan real estat... Klub perbelanjaan Komersial menawarkan Segalanya untuk anak-anak - perawatan, pengembangan,... Pembelian luar negeri Pemasaran jaringan, Keranjang belanjaan MLM untuk Anda dan. .. Barang dan jasa untuk rumah, konstruksi... SP - mania (Pembelian bersama b... Arsip Penggemar Belanja SP-mania - pembual dan besar... Konsultasi spesialis Konsultasi dokter kandungan , d... Konsultasi dengan dokter anak Med... Konsultasi dengan dokter mata Konsultasi dengan dokter ortodontis Konsultan keluarga. Psikolog A... Celengan pengalaman orang tua Konsultasi dengan seksolog (18+) Konsultasi dengan spesialis. Arsip Konsultasi dokter anak Konsultasi spesialis klinik Konsultasi Pengacara Konsultasi spesialis Mikrobiologi... Konsultasi pengacara Konsultasi dokter Pusat Keluarga... Konsultasi dokter spesialis... Konsultasi dokter homeopati Konsultasi ahli dari dokter... Konsultasi dokter spesialis... Konsultasi dokter spesialis.. Konsultasi dengan dokter spesialis mata Igor... Konsultasi dengan dokter spesialis mata anak... Konsultasi dengan dokter spesialis urologi anak,... Konsultasi dengan dokter spesialis... Konsultasi dengan ahli saraf dewasa Konsultasi dengan ahli saraf anak... Konsultasi dengan ahli kecantikan Konsultasi dengan ahli saraf anak Psikolog Peter Zarubin Konsultasi dengan dokter gigi Konsultasi dengan instruktur oleh ma. .. Psikolog Alexander dan Katerina... Konsultasi dengan spesialis anak... Konsultasi dengan dokter gigi ortodonti

BBCode adalah implementasi khusus HTML. Apakah Anda benar-benar dapat menggunakan BBCode dalam postingan Anda di forum ditentukan oleh administrator. Selain itu Anda dapat menonaktifkan BBCode per posting melalui formulir posting. BBCode sendiri memiliki gaya yang mirip dengan HTML, tag diapit tanda kurung siku [ dan ]< and >dan ia menawarkan kontrol lebih besar atas apa dan bagaimana sesuatu ditampilkan. Tergantung pada template yang Anda gunakan, Anda mungkin menemukan bahwa menambahkan BBCode ke postingan Anda menjadi lebih mudah melalui antarmuka yang dapat diklik di atas area pesan pada formulir postingan. Bahkan dengan ini, Anda mungkin menemukan panduan berikut berguna.

Pemformatan Teks

Untuk mengubah warna atau ukuran teks Anda, tag berikut dapat digunakan. Perlu diingat bahwa tampilan keluaran akan bergantung pada browser dan sistem pemirsa:

  • Mengubah warna teks dicapai dengan membungkusnya . Anda dapat menentukan nama warna yang dikenali (mis. merah, biru, kuning, dll.) atau alternatif triplet heksadesimal, mis. #FFFFFF, #000000. Misalnya, untuk membuat teks berwarna merah, Anda dapat menggunakan:

    Halo!

    Halo!

    Keduanya akan menampilkan Hello!

  • Mengubah ukuran teks dicapai dengan cara yang sama menggunakan . Tag ini bergantung pada templat yang dipilih pengguna, namun format yang disarankan adalah nilai numerik yang mewakili ukuran teks dalam persen, mulai dari 20 (sangat kecil) hingga 200 (sangat besar) secara default. Misalnya:

    KECIL

    umumnya akan menjadi KECIL

    SANGAT BESAR!

    akan menjadi BESAR!

Ya, tentu saja bisa, misalnya untuk menarik perhatian seseorang, Anda dapat menulis:

[B] LIHAT AKU!

ini akan menghasilkan LIHAT AKU!

Kami tidak menyarankan Anda mengeluarkan banyak teks yang terlihat seperti ini! Ingat, terserah Anda, sang pembuat poster, untuk memastikan tag ditutup dengan benar. Misalnya yang berikut ini salah:

[b] [kamu] Ini salah

Mengutip dan mengeluarkan teks dengan lebar tetap

Ada dua cara untuk mengutip teks, dengan atau tanpa referensi.

  • Saat Anda menggunakan fungsi Kutipan untuk membalas postingan di papan, Anda akan melihat bahwa teks postingan ditambahkan ke jendela pesan yang diapit oleh a memblokir. Metode ini memungkinkan Anda mengutip dengan referensi ke seseorang atau apa pun yang Anda pilih! Misalnya mengutip sepotong teks Pak. Blobby menulis Anda akan masuk:

    Teksnya Pak. Blobby aja mau ke sini

    Output yang dihasilkan secara otomatis akan menambahkan "Mr. Blobby write:" sebelum teks sebenarnya. Ingat kamu harus sertakan tanda kutip "" di sekitar nama yang Anda kutip, itu bukan opsional.

  • Metode kedua memungkinkan Anda mengutip sesuatu secara membabi buta. Untuk memanfaatkan ini, lampirkan teks di dalamnya tag. Saat Anda melihat pesan, itu hanya akan menampilkan teks dalam blok kutipan.

Jika Anda ingin mengeluarkan sepotong kode atau apa pun yang memerlukan lebar tetap, mis. Font jenis kurir yang harus Anda sertakan teksnya tag, mis.

echo "Ini ada kode";

Semua pemformatan digunakan di dalamnya tag dipertahankan saat Anda melihatnya nanti. Penyorotan sintaksis PHP dapat diaktifkan menggunakan dan direkomendasikan saat memposting contoh kode PHP karena meningkatkan keterbacaan.

Menghasilkan daftar

BBCode mendukung dua jenis daftar, tidak berurutan dan berurutan. Mereka pada dasarnya sama dengan padanan HTML-nya. Daftar tak berurutan menampilkan setiap item dalam daftar Anda secara berurutan satu demi satu dengan indentasi masing-masing dengan karakter poin. Untuk membuat daftar tidak berurutan yang Anda gunakan dan tentukan setiap item dalam daftar menggunakan [*] . Misalnya untuk mencantumkan warna favorit Anda, Anda dapat menggunakan:


[*] Merah
[*] Biru
[*] Kuning

Ini akan menghasilkan daftar berikut:

  • Kuning

Jenis daftar kedua, daftar terurut, memberi Anda kendali atas apa yang dikeluarkan sebelum setiap item. Untuk membuat daftar terurut yang Anda gunakan untuk membuat daftar bernomor atau sebagai alternatif untuk daftar alfabet. Seperti halnya daftar tidak berurutan, item ditentukan menggunakan [*] . Misalnya:


[*] Pergi ke toko
[*] Beli komputer baru
[*]

akan menghasilkan yang berikut:

  1. Pergi ke toko
  2. Beli komputer baru
  3. Bersumpah di depan komputer saat crash
Sedangkan untuk daftar abjad Anda akan menggunakan:


[*] Jawaban pertama yang mungkin
[*] Kemungkinan jawaban kedua
[*] Kemungkinan jawaban ketiga

  1. Jawaban pertama yang mungkin
  2. Kemungkinan jawaban kedua
  3. Kemungkinan jawaban ketiga

Membuat Tautan

PhpBB BBCode mendukung sejumlah cara membuat URI (Uniform Resource Indicators) yang lebih dikenal sebagai URL.

  • Yang pertama menggunakan tag, apa pun yang Anda ketik setelah tanda = akan menyebabkan konten tag tersebut bertindak sebagai URL. Misalnya untuk link ke phpBB.com Anda bisa menggunakan:

    Kunjungi phpBB!

    Kunjungi phpBB! Harap perhatikan bahwa tautan terbuka di jendela yang sama atau jendela baru tergantung pada preferensi browser pengguna.

  • Jika Anda ingin URL itu sendiri ditampilkan sebagai tautan, Anda dapat melakukannya hanya dengan menggunakan:

    http://www.phpbb.com/

    Ini akan menghasilkan tautan berikut, http://www.phpbb.com/

  • Selain itu, phpBB menampilkan sesuatu yang disebut Tautan Ajaib, ini akan mengubah URL apa pun yang benar secara sintaksis menjadi tautan tanpa Anda perlu menentukan tag apa pun atau bahkan http:// di depannya. Misalnya mengetikkan www.phpbb.com ke dalam pesan Anda akan secara otomatis menghasilkan www.phpbb.com sebagai output saat Anda melihat pesan tersebut.
Seperti semua tag BBCode, Anda dapat menggabungkan URL dengan tag lain seperti (lihat entri berikutnya), [B], dll. Terkait dengan tag pemformatan, Anda bebas memastikan urutan buka dan tutup yang benar, misalnya:

tidak benar yang dapat menyebabkan postingan Anda dihapus, jadi berhati-hatilah.

Menampilkan gambar di postingan

PhpBB BBCode menyertakan tag untuk menyertakan gambar dalam postingan Anda. Dua hal yang sangat penting untuk diingat ketika menggunakan tag ini adalah: banyak pengguna yang tidak menghargai banyak gambar yang ditampilkan dalam postingan dan kedua gambar yang Anda tampilkan harus sudah tersedia di internet (tidak bisa hanya ada di komputer Anda misalnya, jadi unggah gambar ke situs Anda, lalu tautkan ke sana). Untuk menampilkan gambar Anda harus mengapit URL yang menunjuk ke gambar tersebut tag. Misalnya:

https://www.google.com/intl/en_ALL/images/logo.gif

Seperti disebutkan di bagian URL di atas, Anda dapat menggabungkan gambar dalam a tag jika Anda mau, mis.

https://www.google.com/intl/en_ALL/images/logo.gif

Saya secara berkala perlu menggunakan "penerjemah" BBCode dalam proyek saya (ditulis dalam PHP), dan saya selalu tidak punya waktu untuk mencari solusi yang kurang lebih nyaman, yang pada akhirnya menghasilkan penggunaan atau pembuatan "kruk" untuk setiap kasus tertentu.
Tapi sepertinya kami berhasil menemukan apa yang kami inginkan.

Keluhan utama saya terhadap solusi siap pakai biasanya adalah ketidakmampuan perpustakaan tersebut menangani paragraf dengan benar. Bahkan, mereka biasanya tidak menggunakan paragraf sama sekali (tag P), sebagai gantinya, sebagai hasil kerja mereka, mereka cukup menyisipkan tag
, menggantikan jeda baris reguler. Saya menganggap metode meniru paragraf 98 persen ini, secara halus, tidak tepat. Tapi karena jeda baris terjangkau
jauh lebih mudah untuk diterapkan daripada “manusia”

, itulah yang dilakukan mayoritas 🙁 Bahkan ada yang melontarkan alasan yang mengatakan br bahkan lebih tepat, antara lain karena kemalasan serupa dari para pengembang berbagai perpustakaan yang sudah jadi, ada pula yang menganggap tag tersebut P sudah ketinggalan zaman (lagipula, bahkan di banyak produk dan situs jadi, paragraf dibentuk dengan menggunakan
) 🙂

Mari kita mulai

Namun tampaknya ada titik terang di ujung terowongan. Ini adalah kelas siap pakai untuk bekerja dengan BBCode, yang tampaknya melakukan tugasnya dengan baik (saya belum melihat yang lebih baik lagi). Satu-satunya negatif adalah dokumentasi yang disajikan di situs ini tidak dalam bahasa Rusia. Saya ingin mengatasi kelemahan ini dalam artikel ini dengan memberikan contoh penggunaan kelas dengan komentar bahasa Rusia.

Pertama, Anda perlu mengunduh perpustakaan (pada saat penulisan, versi perpustakaan adalah 0.3.3). Dalam arsip yang diunduh di folder src Anda akan menemukan dua file yang kita perlukan: stringparser.class.php dan stringparser_bbcode.class.php.

Misalnya, kita memiliki file kosong "index.php" dan di sebelahnya kita akan membuat folder "/bbcode/" yang berisi dua file yang disebutkan di atas.
Misalnya, isi minimum file “index.php” harus seperti ini (dengan menjalankan contoh ini Anda dapat langsung melihat apakah perpustakaan berfungsi):

< ?php //Вставляем файл библиотеки require_once "bbcode/stringparser_bbcode.class.php"; //Создаем объект класса StringParser_BBCode $bbcode = new StringParser_BBCode (); //Добавляем объекту класса понятие о тэге [b] //(в итоге только этот тэг и будет //обрабатываться этим классом) $bbcode->addCode("b", "simple_replace", null, array("start_tag" => " ", "tag_akhir" => ""), "inline", array ("block", "inline"), array ()); //Memproses string pengujian dan menampilkannya ke browser echo $bbcode->parse ("Teks pengujian, kata ini seharusnya [b ]tebal"); ?>

fungsi addCode

Mungkin yang paling menarik dalam kode ini adalah fungsi addCode dari objek kelas StringParser_BBCode di sini adalah prototipe dan daftar deskripsi parameternya:

Void addCode (string $code, string $type, string $callback, string $params, string $content_type, array $allowed_in, array $not_allowed_in);

Fungsi ini menambahkan konsep kode tertentu (kode bb) untuk objek kelas, sehingga kemudian dapat mendeteksi kode tersebut dalam teks dan memprosesnya sesuai dengan itu. Itu. kita dapat mengatakan bahwa awalnya objek dari kelas StringParser_BBCode tidak mengetahui apa pun tentang kode bb standar dan tidak dapat memprosesnya dengan cara apa pun. Oleh karena itu, setelah setiap inisialisasi, objek ini perlu "dilatih" dalam semua jenis kode bb.

$code (dalam contoh ini memiliki nilai 'b') Kode yang dicari dalam teks untuk diproses. Itu. jika Anda menentukan kode pengujian, maka tag akan dicari dalam teks yang diproses dan diproses sesuai dengan instruksi pada parameter lain dari fungsi yang dimaksud. $type (dalam contoh ini memiliki nilai 'simple_replace') Menentukan bagaimana tag harus diproses (apa jenisnya). Ada berbagai jenis tag yang telah ditentukan sebelumnya, yang akan dijelaskan di bawah. Dalam contoh kita, jenis 'simple_replace' ditentukan, yang menunjukkan bahwa tag akan dipasangkan (tag pembuka [b] dan tag penutup) dan tag tersebut akan diganti dengan tag html yang ditentukan di bawah.‘)) Parameter ini pada dasarnya menentukan tag html mana yang harus disisipkan alih-alih tag bb. Nama parameter secara langsung bergantung pada jenis tag yang kita tentukan di parameter $type.

$content_type (dalam contoh ini memiliki nilai 'inline') Jenis konten internal tag. Dapat mengambil nilai: 'inline', 'block', 'link', 'image'. Jika saya tidak salah, Anda juga dapat mendaftarkan tipe Anda sendiri sehingga Anda dapat menentukan filter individual Anda sendiri untuk konten ini (lihat contoh penggunaan filter di bawah).

$allowed_in (dalam contoh ini memiliki nilai array ('block', 'inline')) Dalam parameter ini, Anda dapat menentukan jenis objek mana yang dapat ditempatkan di dalam kode bb yang dibuat (pemrosesan akan diabaikan begitu saja). Dalam contoh kami, kami menunjukkan bahwa suatu elemen dapat ditempatkan baik di dalam elemen blok maupun di dalam elemen linier.

'simple_replace' Menjelaskan tag berpasangan sederhana. Saat menggunakan jenis pemrosesan tag ini, dua sel harus ada dalam parameter fungsi 'params': $params['start_tag'] dan $params['end_tag']. 'start_tag' harus berisi analog dari tag pembuka dalam HTML, dan 'end_tag' masing-masing harus berisi tag penutup.
'simple_replace_single' Sama seperti 'simple_replace', tetapi hanya digunakan untuk tag tunggal yang sebenarnya tidak memiliki konten (seperti br, hr, dll.). Hanya memerlukan parameter $params['start_tag']. Anda dapat menentukan beberapa parameter untuk mencarinya, yang mana di $params['usecontent_param'] Anda tidak perlu meneruskan string, tetapi array yang berisi string. Misalnya: $bbcode->addCode (..., array('usecontent_param' => array ('parameter1', 'parameter2')), ...);.

'callback_replace?' Apakah kebalikan dari 'usecontent?'. Jika salah satu atribut yang ditentukan dalam usecontent_param muncul di tag, atribut tersebut akan diproses sebagai 'usecontent', jika tidak, sebagai 'callback_replace'.

Contoh kode dari kondisi "pertempuran".

< ?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 "Berikut adalah contoh file index.php dengan konfigurasi kelas lebih lanjut untuk memproses tag dalam jumlah lebih besar, di mana Anda dapat memahami cara kerja fungsi panggilan balik, dll.: ".$text.""; ) // Fungsi untuk menyisipkan gambar fungsi do_bbcode_img ($action, $attributes, $content, $params, $node_object) ( //Bagian dari fungsi yang berhubungan //hanya memvalidasi data tag jika ($$ tindakan == "validasi") ( if (substr ($konten, 0, 5) == "data:" || substr ($konten, 0, 5) == "file:" || substr ($ content, 0 , 11) == "javascript:" ||.substr ($content, 0, 4) == "jar:") ( return false; ) return true ) //Konversi tag secara langsung ke //varian HTML dengan mengembalikan hasilnya kembali "

", "tag_akhir" => "

"; ) //Buat objek kelas StringParser_BBCode $bbcode = new StringParser_BBCode(); //Tambahkan filter (untuk lebih jelasnya, lihat dokumentasi resmi), //menggunakan fungsi convertlinebreaks kami, yang akan //mengonversi jeda baris dalam teks ke satu $bbcode ->addFilter (STRINGPARSER_FILTER_PRE, "convertlinebreaks"); //Tambahkan parser kita sendiri untuk berbagai jenis objek //(untuk lebih jelasnya, lihat dokumentasi resmi) //Kami menunjukkan melalui fungsi mana / /isi tag ini harus melewati, misalnya, melalui fungsi //htmlspecialchars untuk mencegah XSS, dll. $bbcode->addParser(array("block", "inline", "link", "listitem"), " htmlspecialchars"); block", "inline", "link", "listitem"), "nl2br"); $bbcode->addParser ("list", "bbcode_stripcontents"); //Tambahkan kode bb yang digunakan dalam formulir: //Teks header tingkat pertama $bbcode->addCode ("h1", "simple_replace", null, array ("start_tag" => "

", "tag_akhir" => "

"), "block", array ("listitem", "block", "link"), array ()); //Tambahkan kode bb yang digunakan dalam bentuk: //Teks header tingkat ketiga $bbcode-> addCode ("h3", "simple_replace", null, array ("start_tag" => "

", "tag_akhir" => "

"), "block", array ("listitem", "block", "link"), array()); //Tambahkan kode bb yang digunakan dalam bentuk: //Teks header tingkat keempat $bbcode->addCode ( " h4", "simple_replace", null, array ("start_tag" => "

", "tag_akhir" => "

"), "block", array ("listitem", "block", "link"), array()); //Tambahkan kode bb yang digunakan dalam bentuk: //Teks header tingkat kelima $bbcode->addCode ( "h5", "simple_replace", null, array ("start_tag" => "
", "tag_akhir" => "
"), "block", array ("listitem", "block", "link"), array()); //Tambahkan kode bb yang digunakan dalam bentuk: //Teks header tingkat keenam $bbcode->addCode ( " h6", "simple_replace", null, array ("start_tag" => "
", "tag_akhir" => "
"), "block", array ("listitem", "block", "link"), array ()); //Mengatur flag untuk kode bb dari h1 hingga h6, //menunjukkan bahwa mereka adalah elemen blok, / /yang akan memberikan efek menguntungkan pada //pembuatan kode HTML yang cerdas. Misalnya, elemen seperti itu tidak dapat //diletakkan di dalam elemen blok lainnya $bbcode->setCodeFlag("h1", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); - >setCodeFlag("h2", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); $bbcode->setCodeFlag("h3", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); teks $bbcode->addCode("b", "simple_replace", null, array("start_tag" => " ", "tag_akhir" => ""), "inline", array ("listitem", "block", "inline", "link"), array ()); //Tambahkan kode bb [i], digunakan dalam bentuk: //[i ] teks miring $bbcode->addCode("i", "simple_replace", null, array("start_tag" => " ", "tag_akhir" => ""), "inline", array ("listitem", "block", "inline", "link"), array()); //Tambahkan kode bb yang digunakan pada form: //http://www. needsite.domain dan //Teks tautan $bbcode->addCode ("url", "usecontent?", "do_bbcode_url", array ("usecontent_param" => "default"), "link", array ("listitem", " block", "inline"), array ("link")); //Tambahkan kode bb yang digunakan dalam bentuk: //http://www.needsite.domain $bbcode->addCode ("link", "callback_replace_single " , "do_bbcode_url", array(), "link", array("listitem", "block", "inline"), array("link")); //Tambahkan kode bb yang digunakan pada form: // http ://www.needsite.domain/img.jpg $bbcode->addCode("img", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", " inline ", "link"), array()); //Tambahkan kode bb (artinya sama //as ), digunakan dalam bentuk: //http://www.needsite.domain/img.jpg $ bbcode->addCode("bild", "usecontent", "do_bbcode_img", array(), "image", array("listitem", "block", "inline", "link"), array()) ; //Buat gambar grup dari kode bb img dan bild //untuk kemungkinan pengaturan selanjutnya //aturan tertentu untuk grup ini $bbcode->setOccurrenceType ("img", "image"); $bbcode->setOccurrenceType("bild", "gambar"); //Kami menunjukkan bahwa tag dari grup gambar //dapat muncul (diproses) dalam teks tidak lebih dari //dua kali. Dalam kasus kita, ini diperlukan agar //pengguna tidak dapat menyisipkan lebih dari dua //gambar ke dalam teks pesan $bbcode->setMaxOccurrences ("image", 2); //Tambahkan kode bb $bbcode->addCode ("list", "simple_replace", null, array ("start_tag" => "
    ", "tag_akhir" => "
"), "list", array ("block", "listitem"), array ()); //Tambahkan kode bb [*], yang menunjukkan bahwa tag ini //hanya dapat digunakan di dalam tag //dengan tipe list (kami menetapkan tipe ini ke tag di atas) $bbcode->addCode ("*", "simple_replace", null, array ("start_tag" => "
  • ", "tag_akhir" => "
  • "), "listitem", array ("list"), array ()); //Mengatur tanda untuk tag dan [*] //Menunjukkan bahwa untuk kode [*] tag penutup //tidak diperlukan, oleh karena itu kemungkinan akan ada //konstruksi berikut: // //[*] Item //[*] Item // //Tag penutup akan ditambahkan secara otomatis //selama proses pembuatan kode html $bbcode->setCodeFlag ("*", "closetag", BBCODE_CLOSETAG_OPTIONAL); //Seperti yang saya pahami, tanda ini berarti tag [*] //hanya selalu dapat digunakan //di awal baris baru $bbcode->setCodeFlag ( "*", "paragraphs", true //); adalah elemen blok $bbcode->setCodeFlag ("list", "paragraph_type", BBCODE_PARAGRAPH_BLOCK_ELEMENT); //Karakter baris akan dihapus sebelum tag pembuka $bbcode-> setCodeFlag ("list", "opentag.before.newline", BBCODE_NEWLINE_DROP ); //Sebelum tag penutup //karakter baris akan dihapus $bbcode->setCodeFlag ("list", "closetag.before.newline", BBCODE_NEWLINE_DROP ); //Sebagai hasilnya, kita dapat menggunakan daftar dalam kode bb //menggunakan daftar dan tag * secara bersamaan: // //[*] Elemen daftar //[*] Elemen daftar //[*], dll. // //Aktifkan pemrosesan paragraf $bbcode->setRootParagraphHandling (benar); //Seperti yang saya pahami, ini menunjukkan //karakter apa yang harus digunakan untuk menggantikan //jeda baris di dalam paragraf //(pada dasarnya, cara menangani paragraf kosong). $bbcode->setParagraphHandlingParameters("\n", ""); $res_text = "Uji teks [b]untuk memeriksa pengoperasian kelas"; //Untuk berjaga-jaga, hapus semua //karakter jeda baris yang tersisa dalam bentuk "\r", //jika masih ada yang tersisa di teks $res_text = str_replace("\r", "", $res_text); //Voila! echo $bbcode->parse($res_text);

    Kata penutup

    Saya, tentu saja, tidak membuat terjemahan dokumentasi secara lengkap, tetapi hanya minimal; untuk dokumentasi lebih rinci, Anda dapat merujuk ke situs web resmi (secara umum, lebih banyak kemungkinan berbeda dijelaskan di sana).

    Pustaka ini juga mudah diimplementasikan dalam kerangka PHP apa pun; misalnya, saya berhasil melakukan ini untuk cackePHP.

    Jika Anda juga menemukan perpustakaan serupa (berfungsi dengan benar dengan paragraf! 🙂), akan menarik untuk mengetahuinya.

    Perkenalan

    Apa itu BBCode? BBCode adalah varian khusus dari HTML. Apakah Anda dapat menggunakan BBCode dalam postingan Anda atau tidak, ditentukan oleh administrator forum. Selain itu, Anda akan dapat menonaktifkan penggunaan BBCode untuk postingan tertentu saat Anda mempostingnya. BBCode sendiri memiliki gaya yang mirip dengan HTML, dengan tag yang diapit tanda kurung siku [ dan ]< и >; ini memberi Anda kontrol lebih besar atas bagaimana data dikeluarkan. Dengan beberapa templat, Anda dapat menambahkan BBCode ke pesan Anda menggunakan antarmuka sederhana yang terletak di atas kolom entri teks. Namun meskipun demikian, panduan ini semoga bermanfaat.

    Memformat teks

    Cara membuat teks menjadi tebal, miring, atau bergaris bawah BBCode menyertakan tag untuk mengubah gaya font dengan cepat, Anda dapat melakukannya dengan cara berikut:
    • Untuk membuat teks menjadi tebal, sertakan teks tersebut [B], Misalnya:

      [B] Halo

      akan menjadi Halo

    • Gunakan untuk menggarisbawahi [kamu], Misalnya:

      [kamu] Selamat pagi

      akan menjadi Selamat pagi

    • Miring dilakukan dengan tag [Saya], Misalnya:

      Ini [Saya] Besar!

      akan memberikan ini Besar!

    Cara mengubah warna atau ukuran teks Tag berikut dapat digunakan untuk mengubah warna atau ukuran font (tampilan akhir akan bergantung pada sistem dan browser pengguna):
    • Anda dapat mengubah warna teks dengan mengelilinginya . Anda dapat menentukan nama warna yang dikenal (merah, biru, kuning, dll.) atau representasi heksadesimal seperti #FFFFFF, #000000. Jadi untuk membuat teks berwarna merah Anda dapat menggunakan:

      Halo!

      Halo!

      kedua metode tersebut akan memberikan hasil Halo!

    • Mengubah ukuran dicapai dengan cara yang sama menggunakan . Tag ini bergantung pada template yang digunakan, format yang disarankan adalah angka yang menunjukkan ukuran teks sebagai persentase, dari 20% (sangat kecil) hingga 200% (sangat besar) dari ukuran default. Misalnya:

      KECIL

      kemungkinan besar itu akan menjadi KECIL

      ketika:

      SANGAT BESAR!

      Ini akan menjadi BESAR!

    Bisakah saya menggabungkan tag? Ya, tentu saja bisa. Misalnya, untuk menarik perhatian seseorang, Anda dapat menulis:

    [B] LIHAT AKU!

    apa yang akan diberikannya? LIHAT AKU!

    [b] [kamu] Ini tidak benar

    Pembuatan tautan

    Tautan ke situs lain BBCode mendukung beberapa cara untuk membuat URL.
    Seperti semua tag BBCode lainnya, Anda dapat menyertakan tag lain di URL, misalnya. (lihat poin berikutnya), [B] dll. Seperti halnya memformat tag, penempatan tag yang benar terserah Anda, misalnya:

    http://phpbbex.com/logo.png

    salah, yang dapat mengakibatkan postingan Anda dihapus, jadi berhati-hatilah.

    Menampilkan gambar dalam pesan

    Menambahkan gambar ke pesan BBCode menyertakan tag untuk menambahkan gambar ke pesan Anda. Ada dua hal yang sangat penting untuk diingat: pertama, banyak pengguna yang merasa terganggu dengan banyaknya gambar, dan kedua, gambar Anda harus sudah diposting di Internet (artinya, gambar tersebut tidak dapat ditempatkan hanya di komputer Anda, kecuali, tentu saja, , Anda tidak menjalankan server web di dalamnya!). Saat ini tidak ada pilihan untuk menyimpan gambar secara lokal di phpBB (pembatasan ini diharapkan akan dihapus pada versi phpBB berikutnya). Untuk menampilkan gambar Anda harus mengelilinginya dengan tag URL . Misalnya:

    http://phpbbex.com/logo.png

    Seperti yang sudah disebutkan pada poin sebelumnya, Anda dapat membungkus gambar dalam tag , itu

    http://phpbbex.com/logo.png

    Menambahkan lampiran ke pesan Lampiran sekarang dapat ditempatkan di mana saja dalam pesan menggunakan tag BBCode baru , jika lampiran diizinkan oleh administrator konferensi dan jika Anda memiliki hak akses yang diperlukan. Pada halaman posting pesan terdapat daftar drop-down (masing-masing berupa tombol) untuk menempatkan lampiran dalam pesan.

    Mengutip dan mengeluarkan teks yang diformat

    Mengutip jawaban Ada dua cara mengutip teks, dengan dan tanpa link.
    • Saat Anda menggunakan tombol Kutipan untuk membalas pesan, teks ditambahkan ke kolom input yang dikelilingi oleh blok . Metode ini memungkinkan Anda mengutip dengan tautan ke penulis atau apa pun yang Anda masukkan di sana. Misalnya saja mengutip sebuah teks yang ditulis oleh Pak. Blobby, Anda akan menulis:

      SMS Pak. Blobby akan berada di sini

      Akibatnya, kata-kata “Mr. Blobby menulis: " Ingat kamu sebaiknya nama diapit tanda kutip "", tidak boleh dihilangkan.

    • Metode kedua memungkinkan Anda mengutip sesuatu. Untuk melakukan ini, Anda perlu menyertakan teks dalam tag . Saat melihat pesan, teks di blok kutipan hanya akan ditampilkan.
    Kode keluaran atau teks kaya Jika Anda perlu mengeluarkan kode program atau sesuatu yang perlu dikeluarkan dalam font monospace, Anda harus menyertakan teks dalam tag (untuk teks besar, diformat sebagai blok terpisah) atau (untuk teks pendek satu baris, tanpa blok terpisah), misalnya:

    echo "Ini ada kode";

    Semua pemformatan digunakan di dalam tag Dan , akan disimpan. Penyorotan sintaksis bahasa PHP dapat diaktifkan menggunakan dan disarankan saat mengirim pesan dengan kode PHP untuk meningkatkan keterbacaannya.

    Membuat Daftar

    Buat daftar berpoin BBCode mendukung dua jenis daftar: berpoin dan bernomor. Mereka hampir identik dengan padanan HTML-nya. Dalam daftar berpoin, semua elemen ditampilkan secara berurutan, masing-masing ditandai dengan simbol penanda. Untuk membuat daftar berpoin, gunakan dan tentukan setiap elemen menggunakan [*] . Misalnya, untuk menampilkan warna favorit, Anda dapat menggunakan:


    [*] Merah
    [*] Biru
    [*] Kuning

    Ini akan menghasilkan daftar seperti ini:

    • Merah
    • Biru
    • Kuning
    Buat daftar bernomor Jenis daftar kedua, bernomor, memungkinkan Anda memilih apa yang sebenarnya akan ditampilkan sebelum setiap elemen. Untuk membuat daftar bernomor, gunakan atau untuk membuat daftar alfabet. Seperti halnya daftar berpoin, item didefinisikan menggunakan [*] . Misalnya:


    [*] Pergi ke toko
    [*] Beli komputer baru
    [*]

    akan memberikan yang berikut:

    1. Pergi ke toko
    2. Beli komputer baru
    3. Memarahi komputer ketika terjadi kesalahan
    Untuk daftar abjad gunakan:


    [*] Kemungkinan jawaban pertama
    [*] Kemungkinan jawaban kedua
    [*] Kemungkinan jawaban ketiga

    apa yang akan diberikannya?

    1. Kemungkinan jawaban pertama
    2. Kemungkinan jawaban kedua
    3. Kemungkinan jawaban ketiga