Reply to Re: regular expression

Your name:

Reply:


Posted by Curtis on 02/25/07 10:42

Jerry Stuckle wrote:
> Peter Parker wrote:
>> preg_match("/<some_tag >([^']*?)<\/some_tag>/", $data, $matches)
>> preg_match_all("/<p>(.*?)<\/p>/", $matches[1], $paragraphs);
>>
>> foreach ($paragraphs[0] as $paragraph) {
>> $content=$content.$paragraph;
>> }
>>
>> The above code only works if <p> is the first tag under <some_tag>.
>> i.e, works with
>>
>> <some_tag >
>> <p>blah</p>
>> </some_tag>
>>
>> but not with
>>
>> <some_tag >
>> <some_other_tag>blah</some_other_tag>
>> <p>blah</p>
>> </some_tag>
>>
>>
>> How could I make the code works regardless of the position of <p>
>> under <some_tag>? Thank you.
>>
>>
>
> Try alt.html. This isn't a PHP problem.
>

How is it not a PHP problem? The OP is asking about using regex in PHP.

Anyway, @OP: You might be able to get what you're after with one
regex. Check out the print_r output to figure out what you need, and
if it works:

$data = '<div>Foo bar <p><em>baz</em></p> Ishmael</div>';

// use a different delimiter when / occurs, to avoid
// unnecessary escaping
$re = '%<([\w.:-]+)[^<>]*>(.*?<p[^<>]*>(.*?)</p>.*?)</\1>%i';

preg_match_all($re, $data, $matches);

print_r($matches);

--
Curtis, http://dyersweb.com

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация