✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Come troncare facilmente il testo in PHP

23

Se tratti WordPress esclusivamente come un’applicazione di blogging o, anche in senso più liberale, un sistema di gestione dei contenuti, probabilmente sei abituato a utilizzare l’editor o il campo dell’estratto per scrivere un teaser, quindi introduci un link Leggi altro.

WordPress per applicazioni Web (di nuovo)

Per coloro che hanno letto questo sito per un po’, sono particolarmente interessato all’utilizzo di WordPress come base per lo sviluppo di applicazioni web (vedi anche questo, questo, questo e questo ).

Al momento di questo post, questo è un articolo che ha circa sei anni.

Quindi ci sono momenti in cui il contenuto di cui eseguirai il rendering sul front-end potrebbe provenire da una fonte di terze parti.

Torna al contenuto

Cioè, l’applicazione funziona in questo modo:

  1. contattare un’API di terze parti,
  2. importare i dati dalla chiamata e analizzarli se necessario,
  3. scrivilo nel database,
  4. rendere le informazioni sul front-end quando richiesto.

C’è molto che può andare tra ciascuno dei passaggi precedenti, ma la cosa principale che voglio condividere in questo post è un modo efficace per troncare facilmente il testo usando PHP per il rendering sul front-end.

Questo è utile per fornire teaser, collegarsi a siti di terze parti e altro ancora senza dover scrivere o modificare il contenuto manualmente.

Per fornire un caso d’uso di esempio per la funzione che condividerò, è utile avere alcuni requisiti. Sono arbitrari per questo post, ma l’implementazione dovrebbe essere abbastanza concreta da poterla inserire nel post senza problemi.

Assumiamo:

  • stiamo estraendo il testo da un’API di terze parti,
  • i dati sono archiviati da qualche parte all’interno del database,
  • i dati sono in testo normale (nessun markup o qualsiasi altro tipo di entità basata sul web nella struttura),
  • abbiamo bisogno di una funzione che accetti il ​​testo e una lunghezza per troncare il testo.

Dati questi requisiti, possiamo impostare una funzione per accettare testo e una lunghezza di argomenti. Se il testo è minore o uguale alla lunghezza specificata, non c’è niente da fare; in caso contrario, possiamo troncare il testo alla lunghezza specificata e aggiungere ellissi finali.

Ecco il codice:

<?php

/**
 * Truncates the specified text to the specified length to the last whole word and
 * adds ellipses to the end of the truncated string.
 * 
 * @param string $text The text to truncate.
 * @param int $length The maximum allowed length of the text.
 * @return string The text if it's less than the length of the specified length or the text truncated to the specified length.
 */
public function truncate($text, $length)
{
    if ($length >= strlen($text)) {
      return $text;
    }

  return preg_replace(
        "/^(.{1,$length})(s.*|$)/s",
        '1...',
        $text
    );
}

Le implementazioni per questo nel contesto di WordPress potrebbero derivare dalla lettura dei dati archiviati in tabelle personalizzate, nei metadati dei post, nella tabella dei post o praticamente in qualsiasi luogo in cui è archiviato il testo grezzo e si desidera renderizzarlo sul front-end .

Se nel testo sono presenti altri contenuti come HTML o altre entità, potrebbe essere necessario prevedere delle indennità. Se è in WordPress, ci sono filtri e altre forme di gestione di quei dati prima di troncare il testo, ma è oltre il punto di troncare facilmente il testo in PHP, giusto?

Quindi, almeno, usalo esclusivamente per il testo e, al massimo, prendi in considerazione altri tipi di contenuto nel testo prima di passarlo in preg_replace e dovresti essere a posto.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More