class Str

Classe Pubblica senza dipendenze.

I Metodi:

  1. str_clear()
  2. js_clean()
  3. w_count()
  4. gen_url()

Questa classe gestisce e pulisce le stringhe per poter compiere determinati comportamenti. Un esempio potrebbe essere l'inserimento di testo nel DB oppure la preparazione di testo all'interno di una funzione Javascript o ancora mostrare solo una parte del contenuto di un testo...

Ma vediamo subito all'opera i metodi.


str_clear():

Questo è il metodo più complesso ma anche il più utile. Personalmente lo utilizzo spesso per la gestione dei dati da inserire in un DB o per la gestione dei dati in AJAX.

Il metodo prevede l'inserimento di 4 valori:

  • Stringa: la stringa da gestire.
  • Boolean: false o true per definire se la stringa dovrà essere bonificata da eventuali tag.
  • Boolean: false o true per bonificare la stringa da un eventuale Url Encode utilizzato ad esempio per l'invio di dati in AJAX.
  • Stringa: Inserire un valore tra (MYSQL, SQLITE, PGSQL) per eventuali escape sulla stringa.

Facciamo subito un esempio pratico per pulire una stringa da inserire all'interno di un Database MariaDB/MySql:

$frase = "Questa è un'altra frase!";
$stringa = Str::str_clear($frase, 1, 0, 'MYSQL');
echo $stringa;

Il Risultato sarà:

Questa è un'altra frase!

Dove è stato aggiunto un escape utile ad inserire del testo all'interno di un DB MySql.

Facciamo un altro esempio più complesso:

$frase = "Questa è un'altra frase!";
$stringa = Str::str_clear($frase, 1, 0, 'MYSQL');
echo $stringa;

Il risultato sarà comunque:

Questa è un'altra frase!

Questo perchè abbiamo detto al metodo di eliminare tutti i tag presenti.

Un'altro esempio di pulizia, nel caso in cui il testo dovesse presentare caratteristiche di un "url encode" potremmo abilitare il terzo elemento... vediamo il risultato:

$frase = "Questa%20%26egrave%3B%20un'altra%20frase!";
$stringa = Str::str_clear($frase, 1, 1, 'MYSQL');
echo $stringa;

Il risultato dovrebbe essere:

Questa è un'altra frase!

Come prima... non cambia nulla... se invece disabilitiamo il trattamente del testo per gli url encode avremo:

Questa%20%26egrave%3B%20un'altra%20frase!

Diverso... vero?

Il quarto parametro (MYSQL o PGSQL o SQLITE) identifica solo il tipo di escape da applicare che per MySQL sarà ' mentre per PostgrSql e SqLite sarà '' (soppio apice).


js_clean():

Questo metodo permette di ripulire il testo da eventuali caratteri inattesi all'interno delle funzioni javascript.

Facciamo subito un esempio pratico. Apriamo il file view testView.php e scriviamo:

function view_page(){
        // creiamo un nuovo file di Log
        $frase = "Questa è un'altra frase!";
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'frase'=>$frase,
            )
        );
    }

Ora apriamo il file template, test.php e scriviamo:

<button type="button" name="button" onClick="alert('<?php echo $_['frase'] ?>')">Premi Qui</button>

Premendo sul pulsante noteremo che non accade nulla... o meglio qualcosa accade, javascript entra in errore. Se invece aggiungessimo il metodo js_clean() cosa accadrebbe? Proviamo!

Modifichiamo il file testView.php aggiungendo questa riga:

...
$frase = "Questa è un'altra frase!";
$frase = Str::js_clean($frase);
...

Dovrebbe apparire a video un alert. Questo dimostra che la nostra funzione javascript è stata ripulita.


w_count():

E se avessimo la necessità di inserire una frase all'interno di un riquadro troppo piccolo? Oppure vorremmo visualizzare solo parte di una frase più lunga?

In nostro aiuto viene questo metodo.

Utilizza tre parametri:

  • La stringa;
  • Numero massimo di caratteri da visualizzare
    In realtà, il metodo legge la stringa ed individua le parole che più si avvicinano al numero massimo di caratteri richiesto. Questo per evitare che le parole venissero troncate.
  • Eventuali caratteri di chiusura frase.

L'esempio spiegherà in modo semplice ed intuitivo il suo funzionamento.

Prendiamo una frase luga ed inseriamola ill'interno del file testView.php:

function view_page(){
        // creiamo un nuovo file di Log
        $frase = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. ";
        $frase_corta = Str::w_count($frase, 35, '');
        ### stampo la pagina dei contenuti
        KuiperBelt::get_template(
            'test.php',
            $GLOBALS["Rgl"],
            array(
                'frase_lunga'=>$frase,
                'frase_corta'=>$frase_corta,
            )
        );
    }

 All'interno del file test.php scriviamo:

<?php echo $_['frase_lunga'] ?><hr>
<?php echo $_['frase_corta'] ?>

 Il risultato finale sarà:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
Lorem ipsum dolor sit amet, consectetuer

Ora proviamo ad inserire i caratteri di chiusura della frase modificando la riga:

$frase_corta = Str::w_count($frase, 35, '...');

Il risultato finale per la stringa ridotta sarà:

Lorem ipsum dolor sit amet, consectetuer...

I caratteri di chiusura saranno inseriti solo se la frase è più lunga dei caratteri richiesti, in caso contrario non verranno inseriti.


gen_url():

E se un giorno avessimo la necessità di creare una url coerente da una frase? Ci viene in aiuto gen_utl().

I suoi due parametri richiesti sono, la frase da modificare e l'elemento separatore degli spazi o caratteri speciali.

Anche qui faremo un esempio concreto:

$frase = "Outputs a large amount of information about the current state of PHP.";
echo Str::gen_url($frase);

Verrà generata una stringa:

outputs-a-large-amount-of-information-about-the-current-state-of-php

Tutto qui.


Lista dei Blocchi