1

there were many threads about it, but I still need help. I need to use preg_match to get the text I need from HTML tags.

the HTML is:

<td>
<center>
<b>
<font face="Arial" color="red">(I need this content)</font>
</b>
</center>
</td>

(btw. I solved my problem with domdocument, but I need to use preg_match)

Please, help.

Regards.

02446
  • 157
  • 1
  • 3
  • 16
  • 1
    Is the text you're looking for *only* going to be in tags, or can it appear anywhere? If you have the general area that you know the text will be in, you can use `strip_tags` to remove all the HTML and be left with the desired text. – Mr. Llama Dec 21 '11 at 17:57

1 Answers1

2

This?

<?php
$html = '<td>
<center>
<b>
<font face="Arial" color="red">(I need this content)</font>
</b>
</center>
</td>';

$matches = array();

preg_match_all('/<font.*?>(.*?)<\/font>/is', $html, $matches);

var_dump($matches[1]);

Edit: you may want to include the 'face="Arial" color="red"'-bit in the regexp unless you want to match EVERY font-element's contents. You may also wanna include the <b> and <center> elements to narrow the search even further.

On a side note: This HTML looks very dated. Using center and font elements is very, very bad practice. So is using tables for layout.

powerbuoy
  • 12,460
  • 7
  • 48
  • 78
  • yeah, it's not my code and this way I need to get the data from an old website. unfortunately I still get empty array ;/ – 02446 Dec 21 '11 at 18:08
  • That's strange. The code I posted works though... (I've tested it locally). – powerbuoy Dec 21 '11 at 18:30