Estoy tratando de truncar algunas de texto en PHP y han tropezado a través de este método (http://theodin.co.uk/blog/development/truncate-text-in-php-the-easy-way.html), que a juzgar por los comentarios parece como una gran fáciles de implementar la solución. El problema es que no sé cómo ponerlo en práctica :S.

A alguien en mente me apunta en la dirección de lo que hacer para poner en práctica esto? Cualquier ayuda alguna se agradece.

Gracias de antemano.

Lo que no entiendo acerca de substr()? Donde se te confunda? Es una función que devuelve parte de la cadena de origen, basándose en los parámetros que le dan.
Sí, sólo tiene que utilizar substr() el primer parámetro es el texto, el segundo es el desplazamiento – si se establece a 0 truncará desde el principio si se establece en 1,2,3… se trunca después de que muchos de los personajes, el tercer argumento es la longitud que debe ser truncado. Por ejemplo substr("hello world", 3, 4) volverá lo w – 4 caracteres después de 3.
posibles duplicados de Truncar una Cadena multibyte a n caracteres
Cerrado como no es una verdadera pregunta? El cartel quiere saber cómo truncar el texto en PHP. Son un montón de monos que dictan qué pregunta es, a día de hoy?

OriginalEl autor realph | 2012-02-09

3 Comentarios

  1. 54

    La cosa obvia que hacer es leer el documentación.

    Pero para ayudar a: substr($str, $start, $end);

    $str es su texto

    $start es el carácter de índice de comenzar. En tu caso, es probable que 0, lo que significa el principio.

    $end es donde truncar. Supongamos que usted quería terminar en 15 caracteres, por ejemplo. Habría que escribir algo como esto:

    <?php
    
    $text = "long text that should be truncated";
    echo substr($text, 0, 15);
    
    ?>

    y te sería este:

    long text that 

    tiene sentido?

    EDITAR

    El enlace que te dio es una función para encontrar el último espacio en blanco después de picar texto a una longitud deseada para no cortar en el medio de una palabra. Sin embargo, lo que falta es una cosa importante – la longitud deseada para ser pasados a la función en lugar de siempre suponiendo que usted quiere que sea de 25 caracteres. Así que aquí está la versión actualizada:

    function truncate($text, $chars = 25) {
        if (strlen($text) <= $chars) {
            return $text;
        }
        $text = $text." ";
        $text = substr($text,0,$chars);
        $text = substr($text,0,strrpos($text,' '));
        $text = $text."...";
        return $text;
    }

    Así en el caso de la pasta de esta función en el functions.php archivo y llamada así en su página:

    $post = the_post();
    echo truncate($post, 100);

    Esto va a cortar tu post hasta la última ocurrencia de un espacio en blanco antes o igual a 100 caracteres. Obviamente, usted puede pasar a cualquier número en lugar de 100. Lo que usted necesita.

    Inicio de un haiku?
    definitivamente. Casi positivamente realmente mal.
    Gracias por la ayuda, estoy tratando de hacer sentido de esta. Disculpas de antemano si me sale estúpido. Así iba yo a poner esa cadena desde el sitio web he ligado en algo parecido a un functions.php archivo (estoy usando WordPress)? Lo que estoy diciendo es donde puedo declarar que la función?
    substr es una función nativa de php, de modo que se le puede llamar sobre la marcha en cualquier lugar. No hay necesidad de escribir una función que devuelve la misma cosa a menos que usted está expandiendo por alguna razón. Suena como que usted no lo son. wordpress, por ejemplo, te permite hacer cosas como esta: $post = the_post(); donde se define el contenido de un post como una variable. Usted podría substr que y ver cómo reacciona. echo substr($post, 0, 100); y ver si se devuelve el 100 primeros caracteres de tu post. Si esto no es lo que quieres decir, puede que desee editar tu pregunta, para ser más específicos acerca de su situación exacta.
    php mb_strimwidth función hace exactamente lo mismo con una sola función: mb_strimwidth($string, 0, 15, "...")

    OriginalEl autor Kai Qing

  2. 3
    $text="abc1234567890";
    
    //truncate to 4 chars
    
    echo substr(str_pad($text,4),0,4);

    Esto evita el problema de truncar un 4 char cadena de 10 caracteres .. (es decir, la fuente es menor que el requerido)

    Que exaclty lo que yo necesitaba! 😀

    OriginalEl autor FreudianSlip

  3. 3
    $mystring = "this is the text I would like to truncate";
    
    //Pass your variable to the function
    $mystring = truncate($mystring);
    
    //Truncated tring printed out;
    echo $mystring;
    
    //truncate text function
    public function truncate($text) {
    
        //specify number fo characters to shorten by
        $chars = 25;
    
        $text = $text." ";
        $text = substr($text,0,$chars);
        $text = substr($text,0,strrpos($text,' '));
        $text = $text."...";
        return $text;
    }

    OriginalEl autor thenetimp

Dejar respuesta

Please enter your comment!
Please enter your name here