Re: [PHP] Regex to catch <p>s

[email protected] (Aschwin Wesselius)
Newsgroups php.general
Message-ID <[email protected]>
Ryan S wrote:
>  Hey all!
>
> To say I suck at regex is an understatement so really need any help I can get on this, I have a page of text with different html tags in them, but each "block" of text has a <p> or a < class="something"> tag... anybody have any regex that will catch each of these paragraphs and put then into an array
> example:
> array[0]="<p> first block </p>";
> array[1]="<p class="blah">  block X</p>";
>
> Thanks!
> R
>   
Hi,

Maybe the example is overkill, but I give you a quick setup that can 
save you some time finding HTML tags with a certain attribute.

<?php

$html = <<<END_OF_HTML

<b>hello</b>
<b class="blah">hello</b>
<p>hello</p>
<p class="blah">hello</p>
<a>hello</a>
<a href="url">hello</a>
END_OF_HTML;

$tags = array();
$tags[] = 'p';
$tags[] = 'a';

$tags = implode('|', $tags);

$pattern = '/<('.$tags.')[^>]*>/i';

echo $pattern."\n";

preg_match_all($pattern, $html, $matches);

var_dump($matches);

?>

I'm not an expression guru either, but I think it works OK. I had to 
find 'link', 'img', 'a' and other tags in HTML and used a more complex 
expression for it which worked like a charm.

It's just an example. For you, you have to leave away the 'a' tag in the 
$tags array, to get what you want.

Hope it helps!
-- 

Aschwin Wesselius

/'What you would like to be done to you, do that to the other....'/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.