New Co
New Co

Reputation: 1627

How to extract only text from HTML string with PHP?

I want to extract only text from a php string.

This php string contains html code like tags or etc.

So I only need a simple text from this string.

This is the actual string:

<div class="devblog-index-content battlelog-wordpress">
<p><strong>The celebration of the Recon class in our second </strong><a href="http://blogs.battlefield.com/2014/10/bf4-class-week-recon/" target="_blank">BF4 Class Week</a><strong> continues with a sneaky stroll down memory lane. Learn more about how the Recon has changed in appearance, name and weaponry over the years&hellip;</strong></p>

<p>&nbsp;</p>

<p style="text-align:center"><a href="http://eaassets-a.akamaihd.net/battlelog/prod/954660ddbe53df808c23a0ba948e7971/en_US/blog/wp-content/uploads/2014/10/bf4-history-of-recon-1.jpg?v=1412871863.37"><img alt="bf4-history-of-recon-1" class="aligncenter" src="http://eaassets-a.akamaihd.net/battlelog/prod/954660ddbe53df808c23a0ba948e7971/en_US/blog/wp-content/uploads/2014/10/bf4-history-of-recon-1.jpg?v=1412871863.37" style="width:619px" /></a></p>

I want to show this from the string:

The celebration of the Recon class in our second BF4 Class Week continues with a sneaky stroll down memory lane. Learn more about how the Recon has changed in appearance, name and weaponry over the years…

Actually this text will be placed in meta description tag so I don't need any HTML in meta tag. How can I perform this? Any ideas and thoughts about this technique ?

Upvotes: 21

Views: 67520

Answers (3)

jasonlam604
jasonlam604

Reputation: 1454

Adding another option for someone else who may need this, the Stringizer library might be an option, see Strip Tags.

Full disclosure I'm the owner of the project.

Upvotes: 1

Paulius Jacionis
Paulius Jacionis

Reputation: 459

Another option is to use Html2Text. It will do a much better job than strip_tags, especially if you want to parse complicated HTML code.

Extracting text from HTML is tricky, so your best bet is to use a library built for this purpose.

https://github.com/mtibben/html2text

Install using composer:

composer require html2text/html2text

Basic usage:

$html = new \Html2Text\Html2Text('Hello, &quot;<b>world</b>&quot;');

echo $html->getText();  // Hello, "WORLD"

Upvotes: 11

MillaresRoo
MillaresRoo

Reputation: 3848

You may try:

echo(strip_tags($your_string));

More info here: http://php.net/manual/en/function.strip-tags.php

Upvotes: 76

Related Questions