Come posso aggiungere un'interruzione di row nel punto medio di una divisione di una string per spazio bianco

Usando php: Come posso inserire un'interruzione di row nello spazio bianco che cade nel centro relativo della string? O in altre parole, come posso contare le parole in una frase e poi inserire un'interruzione di row nella frase a metà strada?

L'idea è di evitare le vewhere (parole abbandonate) sulla seconda row dei titoli degli articoli del blog tagliando essenzialmente each titolo a metà e mettendolo su due righe se il titolo occupa più di una row.

Grazie in anticipo.

Aggiornamento: Ciao a tutti, ho capito che avevo bisogno della function preg_split per dividere il titolo per gli spazi bianchi. Scusa se quella parte non era chiara nella domanda. Ho modificato la risposta di Asaph e ho usato questo:

$title_length = strlen($title); if($title_length > 30){ $split = preg_split('/ /', $title, null, PREG_SPLIT_NO_EMPTY); $split_at = ceil(count($split) / 2); echo $split_at; $broken_title = ''; $broken = false; foreach($split as $word_pos => $word){ if($word_pos == $split_at && $broken == false){ $broken_title.= '<br />'."\n"; $broken = true; } $broken_title .= $word." "; } $title = $broken_title; } 

Sono nuovo di SO e sono stupefatto dal potere della comunità. Saluti.

    Usa la function wordwrap() di PHP. Puoi usare la lunghezza della tua string divisa per 2 come secondo argomento. Ecco un esempio:

     <?php $sentence = 'This is a long sentence that I would like to break up into smaller pieces.'; $width = strlen($sentence)/2; $wrapped = wordwrap($sentence, $width); echo $wrapped; ?> 

    Emette:

     This is a long sentence that I would like to break up into smaller pieces. 

    Se si desidera l'output HTML, è ansible utilizzare il terzo argomento opzionale per specificare i caratteri di interruzione. Come questo:

     $wrapped = wordwrap($sentence, $width, '<br />'); 

    AGGIORNATO

     <?php $Sentence = 'I will go to the school tomorrow if it is not raining outside and if David is ok with it.'; $Split = explode(' ', $Sentence); $SplitAt = 0; foreach($Split as $Word){ $SplitAt+= strlen($Word)-1; if($SplitAt >= strlen($Sentence)){ break; } } $NewSentence = wordwrap($Sentence, $SplitAt, '<br />' . PHP_EOL); echo $NewSentence; ?> 

    Produce questo:

    Domani andrò a scuola se non è <br /> \ n
    fuori piove e se David va bene.

    EDIT : Aggiunto PHP_EOL per abbinare tutti i sisthemes più html con <br />