vin_akleh Posted June 11, 2011 Share Posted June 11, 2011 i can match this pattern /<a href="\/How_I_Met_Your_Mother\/season-1\/episode-1\/search\?page=\d+".+\d+<\/a>/i but my priblem is that this pattern selects line by line into an array what i need it to do is that it selects every match in 1 single line and puts it in a array with different index. $html=<div class="pagination"><span class="disabled prev_page">« Previous</span> <span class="current">1</span> <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=2" rel="next">2</a> <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=3">3</a> <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=4">4</a> <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=2" class="next_page" rel="next">Next »</a></div> //*this is all in one line not multiple lines* //if this was in multiple lines i wouldn't have this problem preg_match_all('/<a href="\/How_I_Met_Your_Mother\/season-1\/episode-1\/search\?page=.*/', $html, $pages); preg_match_all('#<a.+href="/How_I_Met_Your_Mother/season-\d+/episode-\d+/search\?page=\d+.+?">[^<]+</a>#', $html, $pages); for ($i=0;$i<sizeof($pages[0]);$i++) { echo $pages[0][$i]; echo $pages[0][0]; echo $pages[0][1]; //////////////////////////////////////////this would give undefined index } any suggestions would be appreciated. Quote Link to comment https://forums.phpfreaks.com/topic/239070-preg_match_all-but-in-one-line/ Share on other sites More sharing options...
wildteen88 Posted June 11, 2011 Share Posted June 11, 2011 Wrap parentheses around the text your wanting to capture preg_match_all('#(<a href="/How_I_Met_Your_Mother/season-\d+/episode-\d+/search\?page=\d".*?>[^<]+</a>)#', $html, $pages); print_r($pages) returns Array ( [0] => Array ( [0] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=2" rel="next">2</a> [1] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=3">3</a> [2] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=4">4</a> [3] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=2"class="next_page" rel="next">Next »</a> ) [1] => Array ( [0] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=2" rel="next">2</a> [1] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=3">3</a> [2] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=4">4</a> [3] => <a href="/How_I_Met_Your_Mother/season-1/episode-1/search?page=2"class="next_page" rel="next">Next »</a> ) ) Quote Link to comment https://forums.phpfreaks.com/topic/239070-preg_match_all-but-in-one-line/#findComment-1228330 Share on other sites More sharing options...
vin_akleh Posted June 11, 2011 Author Share Posted June 11, 2011 thanks Quote Link to comment https://forums.phpfreaks.com/topic/239070-preg_match_all-but-in-one-line/#findComment-1228353 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.