Ich möchte die ersten 110 Zeichen eines Datenbankeintrags anzeigen. Bisher ziemlich einfach:
<?php echo substr($row_get_Business['business_description'],0,110) . "..."; ?>
Der obige Eintrag enthält jedoch HTML-Code, der vom Client eingegeben wurde. So zeigt es an:
<p class="Body1"><strong><span style="text-decoration: underline;">Ref no:</span></strong> 30001<strong></stro...
Offensichtlich nicht gut.
Ich möchte nur den gesamten HTML-Code entfernen, also muss ich alles zwischen <und> aus dem Datenbankeintrag entfernen, DANN die ersten 100 Zeichen anzeigen.
Irgendwelche Ideen jemand?
Antworten:
verwenden
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) . "..."; ?>
quelle
htmlentities
und dannstrip_tags
? Das macht den Zweck völlig zunichte.Verwenden Sie die Funktion strip_tags () von PHP .
Zum Beispiel:
$businessDesc = strip_tags($row_get_Business['business_description']); $businessDesc = substr($businessDesc, 0, 110); print($businessDesc);
quelle
Entfernen Sie alle HTML-Tags aus der PHP-Zeichenfolge mit Inhalt!
Angenommen, Sie haben eine Zeichenfolge, die ein Ankertag enthält, und Sie möchten dieses Tag mit Inhalt entfernen, dann ist diese Methode hilfreich.
$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); }
Ausgabe:
quelle
</script >
es sich um ein gültiges End-Tag handelt, das jedoch nicht vom regulären Ausdruck behandelt wird. Sollte sein</\1\s*>
oder so.Verwenden Sie diesen regulären Ausdruck:
/<[^<]+?>/g
$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']); $businessDesc = substr(val,0,110);
von Ihrem Beispiel sollte bleiben:
Ref no: 30001
quelle
<br />
oder<special />
. Ich denke auch, dass dies Hacks nicht<b<b>></</b>>
berücksichtigt.strip_tags
Für mich ist dies die beste Lösung.
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; }
quelle
In Laravel können Sie die folgende Syntax verwenden
@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)}}
quelle
<?php $data = "<div><p>Welcome to my PHP class, we are glad you are here</p></div>"; echo strip_tags($data); ?>
Oder wenn Sie einen Inhalt aus der Datenbank haben;
<?php $data = strip_tags($get_row['description']); ?>
<?=substr($data, 0, 100) ?><?php if(strlen($data) > 100) { ?>...<?php } ?>
quelle