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. Entonces muestra:
<p class="Body1"><strong><span style="text-decoration: underline;">Ref no:</span></strong> 30001<strong></stro...
Obviamente no es bueno.
Solo quiero eliminar todo el código html, por lo que necesito eliminar todo entre <y> de la entrada db ENTONCES mostrar los primeros 100 caracteres.
¿Alguna idea de alguien?
Respuestas:
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) . "..."; ?>
fuente
htmlentities
y luegostrip_tags
? Eso frustra totalmente el propósito.Utilice la función strip_tags () de PHP .
Por ejemplo:
$businessDesc = strip_tags($row_get_Business['business_description']); $businessDesc = substr($businessDesc, 0, 110); print($businessDesc);
fuente
¡Elimine todas las etiquetas HTML de la cadena PHP con contenido!
Supongamos 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="https://stackoverflow.com/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); }
Salida:
fuente
</script >
es una etiqueta final válida, pero la expresión regular no la maneja. Debería ser</\1\s*>
o algo así.use esta expresión regular:
/<[^<]+?>/g
$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']); $businessDesc = substr(val,0,110);
de tu ejemplo debería quedar:
Ref no: 30001
fuente
<br />
o<special />
. También creo que esto no tiene<b<b>></</b>>
en cuenta los hacks similares .strip_tags
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; }
fuente
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)}}
fuente
<?php $data = "<div><p>Welcome to my PHP class, we are glad you are here</p></div>"; echo strip_tags($data); ?>
O si tiene un contenido proveniente de la base de datos;
<?php $data = strip_tags($get_row['description']); ?>
<?=substr($data, 0, 100) ?><?php if(strlen($data) > 100) { ?>...<?php } ?>
fuente
$string = <p>Awesome</p><b> Website</b><i> by Narayan</i>. Thanks for visiting enter code here; $tags = array("p", "i"); echo preg_replace('#<(' . implode( '|', $tags) . ')(?:[^>]+)?>.*?</\1>#s', '', $string);
Prueba esto
fuente