Jump to content

[SOLVED] another preg_match_all() problem


ted_chou12

Recommended Posts

here I have a text:

<p class="pagination" align=center>nbsp; <a href="link.html">1</a>text in 
between <a href="link.html>2</a>text....</p>

How do I get the 1 and 2 in an array?

what I am trying is:

preg_match_all("/<p\sclass=\"pagination\"\salign=center>.*?<a\shref=\".*?\">(\d)<\/a>.*?<\/p>/s", $content, $array, PREG_PATTERN_ORDER);

But this seems only to give 1 but not 2???

How should I do it?

Thanks,

Ted.

Link to comment
Share on other sites

It depends how the source string might vary, you might consider:

<?php
$sourcestring="your source string";
preg_match_all('~<p class="pagination" align=center>nbsp; <a [^>]*>([^<]*)</a>[^<]*<a [^>]*>([^<]*)~',$sourcestring,$matches);
echo "<pre>".print_r($matches,true);
?>

$matches Array:
(
    [0] => Array
        (
            [0] => <p class="pagination" align=center>nbsp; <a href="link.html">1</a>text in 
between <a href="link.html>2
        )

    [1] => Array
        (
            [0] => 1
        )

    [2] => Array
        (
            [0] => 2
        )

)

Link to comment
Share on other sites

If the    can be any non-tag text:

preg_match_all('~<p class="pagination" align=center>[^<]*<a [^>]*>([^<]*)</a>[^<]*<a [^>]*>([^<]*)~',$sourcestring,$matches);

If the    can be any non-a href tag text (less preferred):

preg_match_all('~<p class="pagination" align=center>.*?<a [^>]*>([^<]*)</a>[^<]*<a [^>]*>([^<]*)~s',$sourcestring,$matches);

Link to comment
Share on other sites

damn ted, you sure do have a lot of regex questions.  maybe you should just buck up and read a regex tutorial or two.

 

yeah, I should, but there are so much to learn.

 

So by this response, this means that instead of reading up on things, doing some tutorials perhaps, it's best to simply post every problem on here and have others solve things? While it is the 'easy way', it's not the 'best way'. I would recommend taking some time out and going through the regex manual.. have a glance at the resources, or even pick up this book, which is amazing at teaching the inner workings of regex.

 

Otherwise, you're not maximizing your learning of regex. It's all intimidating.. I know.. been there.. done that. But trust me.. once you start to grasp the basics, everything starts to click.. And before you know it, you won't need to rely on others to solve your porblems (unless you're REALLY stuck).

 

Cheers,

 

NRG

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.