Eliminar todas las etiquetas html de la cadena php

4 minutos de lectura

Eliminar todas las etiquetas html de la cadena php
jimbeeer

Quiero mostrar los primeros 110 caracteres de una entrada de base de datos. Bastante fácil hasta ahora:

<?php echo substr($row_get_Business['business_description'],0,110) . "..."; ?>

Pero la entrada anterior tiene un código html que ha sido ingresado por el cliente. Así que muestra:

<p class="Body1"><strong><span style="text-decoration: underline;">Ref no:</span></strong> 30001<strong></stro...

Obviamente nada bueno.

Solo quiero eliminar todo el código html, por lo que necesito eliminar todo entre < y > de la entrada db LUEGO mostrar los primeros 100 caracteres.

¿Alguna idea de alguien?

  • ejemplo de entrada y salida………

    – Venkata Krishna

    4 de febrero de 2013 a las 9:48

utilizar strip_tags

$text="<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>";
echo strip_tags($text);   //output Test paragraph. Other text

<?php echo substr(strip_tags($row_get_Business['business_description']),0,110) . "..."; ?>

  • ¿Por qué no funciona? 🙁 estoy usando : data = htmlentities($description2,ENT_QUOTES, ‘UTF-8’); , strip_tags($data) y no funciona

    usuario3402040

    3 de marzo de 2016 a las 8:43


  • ¿Esto también protegería la página de los ataques de secuencias de comandos xss?

    – los kucays

    26 de septiembre de 2016 a las 7:01


  • @delive ¿Por qué demonios correrías? htmlentities y luego strip_tags? Eso anula totalmente el propósito.

    – Capitán Hipertexto

    18 de noviembre de 2016 a las 16:37

  • Es posible que no bloquee ciertos tipos de JavaScript. No esperes milagros de esta función.

    – PJ Brunet

    12 de diciembre de 2016 a las 14:28

Eliminar todas las etiquetas html de la cadena php
Creaciones EM

Usa PHP Función strip_tags().

Por ejemplo:

$businessDesc = strip_tags($row_get_Business['business_description']);
$businessDesc = substr($businessDesc, 0, 110);


print($businessDesc);

  • Esto primero tomará los 100 caracteres y luego eliminará las etiquetas html. Pero creo que OP quiere eliminar primero las etiquetas html y luego substraer 100 caracteres.

    – Yogesh Suthar

    4 de febrero de 2013 a las 9:52


  • @YogeshSuthar Muy cierto, editaré la respuesta ahora, gracias por señalarlo. – Hecho

    – EM-Creaciones

    4 de febrero de 2013 a las 9:53


1646974746 616 Eliminar todas las etiquetas html de la cadena php
Muhammad Shahzad

¡Elimine todas las etiquetas HTML de la cadena PHP con contenido!

Digamos que tiene una cadena que contiene una etiqueta de anclaje y desea eliminar esta etiqueta con contenido, entonces este método será útil.

$srting = '<a title="" href="/index.html"><b>Some Text</b></a>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.';

echo strip_tags_content($srting);

function strip_tags_content($text) {

    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
    
 }

Producción:

Lorem Ipsum es simplemente un texto ficticio de la industria de la impresión y la composición tipográfica.

  • Casi. Sección 12.1.2.2.4 de WhatWG dice </script > es una etiqueta final válida, pero la expresión regular no la maneja. Debiera ser </\1\s*> o algo así.

    – obispo

    26 de febrero de 2018 a las 20:25


Eliminar todas las etiquetas html de la cadena php
maxim shoustin

usa esta expresión regular: /<[^<]+?>/g

$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']);

$businessDesc = substr(val,0,110);

de su ejemplo debe permanecer: Ref no: 30001

Para mi esta es la mejor solución.

function strip_tags_content($string) { 
    // ----- remove HTML TAGs ----- 
    $string = preg_replace ('/<[^>]*>/', ' ', $string); 
    // ----- remove control characters ----- 
    $string = str_replace("\r", '', $string);
    $string = str_replace("\n", ' ', $string);
    $string = str_replace("\t", ' ', $string);
    // ----- remove multiple spaces ----- 
    $string = trim(preg_replace('/ {2,}/', ' ', $string));
    return $string; 

}

expresion regular para caracteres franceses
Dev atractivo

Quite la cadena de las etiquetas HTML:

<?php
echo strip_tags("Hello <b>world!</b>");
?>

Elimine la cadena de las etiquetas HTML, pero permita el uso de etiquetas:

<?php
         echo strip_tags("Hello <b><i>world!</i></b>","<i>");
?>

En laravel puedes usar la siguiente sintaxis

 @php
   $description='<p>Rolling coverage</p><ul><li><a href="http://xys.com">Brexit deal: May admits she would have </a><br></li></ul></p>'
 @endphp
 {{  strip_tags($description)}}

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad