93 votes

Suppression de toutes les balises html de la chaîne php

Je veux afficher les 110 premiers caractères d'une entrée de base de données. C'est assez simple pour l'instant :

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

Mais l'entrée ci-dessus contient un code html qui a été saisi par le client. Il s'affiche donc :

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

Manifestement pas bon.

Je veux juste supprimer tout le code html, donc je dois supprimer tout ce qui se trouve entre < et > de l'entrée de la base de données, puis afficher les 100 premiers caractères.

Quelqu'un a-t-il une idée ?

162voto

Yogesh Suthar Points 19002

Utiliser 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) . "..."; ?>

19voto

EM-Creations Points 1642

Utilisez la fonction Fonction strip_tags() .

Par exemple :

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

print($businessDesc);

14voto

Muhammad Shahzad Points 4519

Supprimez toutes les balises HTML de la chaîne PHP avec le contenu !

Disons que votre chaîne de caractères contient une balise d'ancrage et que vous voulez supprimer cette balise avec le contenu, cette méthode vous sera utile.

$srting = '<a title="" href="http://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);

 }

Sortie :

Le lorem ipsum est tout simplement le texte factice de l'industrie de l'imprimerie et de la composition.

7voto

Maxim Shoustin Points 20035

Utiliser cette regex : /<[^<]+?>/g

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

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

de votre exemple devrait rester : Ref no: 30001

2voto

David G. Points 21

Pour moi, c'est la meilleure solution.

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; 

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X