Do you just wish to remove all the HTML tags from a given string? If so,
the strip_tags() function should do this.
Ash
www.ashleysheridan.co.uk
--- Begin Message ---
I am trying to get the text between nested html tags within arrays
produced by preg_match_all. The simple situation would be:
<tr><td>test</td></tr>
I want to return 'test'.
Assuming $post_results has some string derived from a html page source
with lots of nested tags.
Replacing new line (seems to be a good idea to do this):
$post_results = ereg_replace("[\n\r]", " ", $post_results);
I tried this:
$pattern = "/<[^>]*>(.+)<\/[^>]*>/i";
Explanation (as far as I understand, please feel free to correct):
/.../ start end
< - opening html tag
[^>] end tag
* any number of same
end tag - don't understand why needed in addition to above
(.+) group: any number of any characters
< opening tag
\/ literal forward slash
[^>] end with tag end
* any number of same
end tag - don't know why needed again
i - modifier, can't remember what it means, something like case
insensitive, yes, that would be it
//Main expression for first try, substituting tags:
preg_match_all($pattern,$post_results,$outputs);
//this only replaces the outer tag eg <tr>, not the <td>, so:
while(stristr($outputs[0][1],"<")) {
preg_match_all($pattern,$outputs[0][1],$outputs,PREG_PATTERN_ORDER);
}
Is there a neat expression to get the inner text withing nested html tags?
Thanks,
John
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
--- End Message ---
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php