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. 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> ) ) 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 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
Archived
This topic is now archived and is closed to further replies.