Divida un texto en dos columnas con PHP

Me gustaría saber si es posible dividir un texto en dos partes.

En mi sitio web tengo una descripción del producto (500-1000 palabras) y me gustaría mostrarlo de esta manera:

¿Algo como esto?

 $len = strlen($input); $space = strrpos($input," ",-$len/2); $col1 = substr($input,0,$space); $col2 = substr($input,$space); // now output it 

Esto en mi humilde opinión un problema típico que debe hacerse a través de CSS, porque solo afecta la forma en que se muestra. ¿Por qué no usas el column-count de column-count de CSS3?

 div#multicolumn1 { -moz-column-count: 3; -moz-column-gap: 20px; -webkit-column-count: 3; -webkit-column-gap: 20px; column-count: 3; column-gap: 20px; } 

(Copiado de http://www.quirksmode.org/css/multicolumn.html )

Puede dividir fácilmente un texto en dos partes en PHP:

 $text = "my very long text with a lot of words"; $length = strlen($text); $middle = round($length/2, 0); $col1 = substr($text, 0, $middle); $col2 = substr($text, $middle); 

Pero estos mots a menudo cortan la frase en el medio de una palabra. Por lo tanto, deberá actualizar el código para encontrar el espacio más cercano al medio:

 for ($i = $middle; $i < $length; $i ++) { if ( substr($text, $i, 1) == " " ) return; } $cut = $i; $col1 = substr($text, 0, $cut); $col2 = substr($text, $cut+1); 

El espacio no es el único lugar para un buen corte de texto. Entonces, tendrá que buscar los extremos de la línea. Y algunos espacios tampoco son buenos. Por ejemplo, el espacio juste antes de un punto y coma. Por lo tanto, agregará para mejorar este código y obtener mejores resultados.

También puede probar la directiva css3 de columnas múltiples: http://www.css3.info/preview/multi-column-layout/, pero su nota es compatible con IE.

Es tan fácil como:

 $text = "This should be a very long product description with some bold specs in it."; $splitat = strpos($text," ",strlen($text)/2); $col1 = substr($text, 0, $splitat); $col2 = substr($text, $splitat); 

Pero en realidad es posible que desee hacerlo desde el lado del cliente, ya que puede haber otros factores involucrados, ancho de párrafo ligero, separación silábica, altura del bloque de texto, etc.

En CSS3 ya tienes soporte para múltiples columnas de texto .

¿Puedes usar la función wordwrap ()?