Acest tutorial prezinta o functie PHP pentru transformarea codului PHPBB ([b], [i], [u], [url]) si a seturilor de caractere folosite in general pt. "smiles" (cum sunt: ":)", ":(", ":P", ":O", si altele) in cod HTML.
Mecanismul e urmatorul:
Inntr-o functie ce preia ca parametru un sir text in care e si cod PHPBB se creaza doua matrici (Array). In prima se adauga sabloane Regex care sa recunoasca partiile din sir cu codul PHPBB definit in aceste sabloane. In al doilea Array se adauga tiparele HTML corespunzatoare sabloanelor PHPBB definiite in primul Array.
Pentru a functiona bine, trebuie ca tiparele HTML sa fie adaugate in acelasi numar si aceeasi ordine cu sabloanele PHPBB corespunzatoare fiecaruia.
Dupa aceste doua matrici se aplica functia "preg_replace()" cu ele si parametrul sir al functiei.
-Mai multe detalii gasiti in explicadiile din cod.

Functia PHP pt. transformare PHPBB si smiles in HTML

<?php
// Functia pentru transformarea formatului din phpBB si semne pt. smiles in cod HTML
function phpbb_html($str) {
    // Elimina 'http://' daca se afla in codul BB din sir (fiindca va fi adaugat la efectuarea transformarii)
    $str = str_replace('[url=http://', '[url=', $str);
    $str = str_replace('[url]http://', '[url]', $str);

    // Array cu sabloanele Regex pt. a recunoastere ce trebuie modificat
    $sabloane = array(
        // Regex pt. recunoastere siruri cu [b]..sir..[/b], [i]..sir..[/i] sau [u]..sir..[/u]
        '/\[b\](.*?)\[\/b\]/is',
        '/\[i\](.*?)\[\/i\]/is',
        '/\[u\](.*?)\[\/u\]/is',

        // Regex pt. [url=link_pagina]..nume_link..[/url] sau [url]..Link..[/url]
        '/\[url\=(.*?)\](.*?)\[\/url\]/is',
        '/\[url\](.*?)\[\/url\]/is',

        // Regex pt. recunoastere seturi de caractere: :), :(, :P, :P, si altele, folosite pt. smiles
        '/:\)/i', '/:\(/i', '/:P/i', '/:S/i', '/:O/i', '/=D\>/i', '/\>:D\</i', '/:D/i', '/:-\*/i'
    );

    // Array cu, codul HTML care va fi adaugat. Va inlocui codul PHPBB recunoscut de sabloanele din matricea $sabloane
    // IMPORTANT: Trebuie adaugat acelasi numar de elemente si in aceeasi ordine cu sabloanele Regex din "$sabloane"
    $formate = array(
        // Tipare HTML pt. <b>..sir..</b>, <i>..sir..</i> si <u>..sir..</u>
        '<b>$1</b>',
        '<i>$1</i>',
        '<u>$1</u>',

        // Tipare HTML pt. link <a href...>...</a>. Sunt doua, prima pt. [url=..link]..nume[/url], a doua pt. [url]..link[/url]
        '<a target="_blank" href="http://$1">$2</a>',
        '<a target="_blank" href="http://$1">$1</a>',

        // Codul HTML pt. inlocuirea setului de caractere folosit pt. smiles
        // cu adresele imaginilor (la src), in aceeasi ordine cu ce e in "$sabloane"
        '<img src="icos/1.gif" alt=":)" border="0" />',
        '<img src="icos/2.gif" alt=":(" border="0" />',
        '<img src="icos/3.gif" alt=":P" border="0" />',
        '<img src="icos/4.gif" alt=":S" border="0" />',
        '<img src="icos/5.gif" alt=":O" border="0" />',
        '<img src="icos/6.gif" alt="=D&gt;" border="0" />',
        '<img src="icos/7.gif" alt="&gt;: D&lt;" border="0" />',
        '<img src="icos/8.gif" alt=": D" border="0" />',
        '<img src="icos/9.gif" alt=":-*" border="0" />'
    );

    // Executarea modificarii (inlocuiri)
    $str = preg_replace($sabloane, $formate, $str);

    return $str;         // Returneaza sirul primit ca parametru la functie, cu modificarile facute
}

// Sir si apelare pt. test
$sir = 'Test [b]tutoriale PHP[/b]. Sir ce contine [u]cod PHPBB[/u], adresa paginii [url=https://marplo.net/php-mysql/tutoriale.html]Tutoriale[/url] si smiles: =D>, :), >:D<...';
echo phpbb_html($sir);
?>
- Functia phpbb_html(), definita in codul de mai sus, poate fi apelata cu siruri ce pot fi preluate de exemplu dintr-un formular.
- Sirul folosit la sfarsit, pt. test, dupa apelarea functiei va fi afisat urmatorul rezultat:
Test tutoriale PHP. Sir ce contine cod PHPBB, adresa paginii Tutoriale si smiles: =D>, :), >: D<...

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag HTML5 defineste un text marcat, evidentiat?
<mark> <embed> <span>
<p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
Ce pseudo-clasa CSS defineste un stil la element cand mouse-ul e deasupra lui?
:focus :hover :active
a:hover {
  font-weight: bold;
  color: #00da01;
}
Clic pe functia ce returneaza un sir cu un numar rotunjit la x decimale.
toPrecision(x) toFixed(x) floor(x)
var num = 12.34567;
num = num.toFixed(2);
alert(num);       // 12.35
Indicati functia PHP care adauga continutul unui fisier intr-un array.
[) file() readfile()
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Clic pe raspunsul potrivit la intrebarea: "What time is it?"
On the 7th of July 1996 It is a quarter to 5. Nice weather.
What time is it? It is a quarter to 5.
- Cat este ora? E 5 fara un sfert.
Indicati raspunsul potrivit la intrebarea: "¿Qué hora es?"
Hace buen tiempo. En el 7 de julio de 1996 Son las tres menos cuarto.
¿Qué hora es? Son las tres menos cuarto.
- Cat este ora? E 3 fara un sfert.
Transformare cod PHPBB si smiles in HTML

Last accessed pages

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (121960)
  2. Subjunctiv 3 (585)
  3. Gramatica limbii spaniole. Indrumator si prezentare generala (36695)
  4. Poezii pentru copii, in engleza (16909)
  5. Curs HTML gratuit Tutoriale HTML5 (80324)

Popular pages this month

  1. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1586)
  2. Curs HTML gratuit Tutoriale HTML5 (1190)
  3. Curs PHP MySQL, Tutoriale si Scripturi PHP (1141)
  4. Curs si Tutoriale Ajax (1054)
  5. Curs si Tutoriale JavaScript (1048)