hansford Posted February 24, 2010 Share Posted February 24, 2010 Trying to get preg_match to match a word at the end of a line, but keep getting "match not found". Here is the contents of the file and the php code. <html> <head> </head> <body> There are several different varieties of cats </body> </html> $pattern = '/cats$/'; $search = file_get_contents("http://localhost/current/test_file.html"); if($search){ $found = preg_match($pattern, $search, $matches); if($found) echo $matches[0]; else echo "match not found"; } else echo "file not found"; Quote Link to comment https://forums.phpfreaks.com/topic/193164-match-word-at-the-end-of-a-line/ Share on other sites More sharing options...
Garethp Posted February 24, 2010 Share Posted February 24, 2010 It's because it's trying to match cats at the end of the entire file. Change it to "~cats$~m" and it should work. If not, go look at the regex tutorial at the homepage of phpfreaks, it'll give you the switch for line by line matching Quote Link to comment https://forums.phpfreaks.com/topic/193164-match-word-at-the-end-of-a-line/#findComment-1017452 Share on other sites More sharing options...
hansford Posted February 25, 2010 Author Share Posted February 25, 2010 I tried your suggestion, which should work, but it doesn't. I tried '/cats$/m' also but that didn't work. I tried other modifiers as well, but none of them work on this. I thought this was going to be simple, but it's turned out to be a big research project. Quote Link to comment https://forums.phpfreaks.com/topic/193164-match-word-at-the-end-of-a-line/#findComment-1017800 Share on other sites More sharing options...
cags Posted February 25, 2010 Share Posted February 25, 2010 Given the content posted, that pattern works. Quote Link to comment https://forums.phpfreaks.com/topic/193164-match-word-at-the-end-of-a-line/#findComment-1017952 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.