imperium2335 Posted October 18, 2009 Share Posted October 18, 2009 Hi, I can't ever seem to get this function to work properly. I have read the manual and looked at examples other people they have done but with no success. Could someone tell me what is wrong with my syntax, I want it to count all the occurrences of "type="hidden"". $hiddencount = preg_match_all("/type\=\"hidden\"/", $form, $dump) ; Cheers. Quote Link to comment https://forums.phpfreaks.com/topic/178100-preg_match_all-sytax-help/ Share on other sites More sharing options...
cags Posted October 18, 2009 Share Posted October 18, 2009 The equals sign is not a special character and thus doesn't need escaping, making the backslash a backslash. $hiddencount = preg_match_all("/type=\"hidden\"/", $form, $dump) ; Quote Link to comment https://forums.phpfreaks.com/topic/178100-preg_match_all-sytax-help/#findComment-939085 Share on other sites More sharing options...
salathe Posted October 18, 2009 Share Posted October 18, 2009 Could someone tell me what is wrong with my syntax, I want it to count all the occurrences of "type="hidden"". $hiddencount = preg_match_all("/type\=\"hidden\"/", $form, $dump) ; There is nothing, syntactically or otherwise, wrong with your regular expression which would prevent it from matching what you want it to match. (Aside: cags mentions that equals is not a special character so does not need escaping with a backslash. This is true, but if one does put a backslash before non-special characters it will just be ignored anyway.) The regex will happily (if an expression can have emotion) match occurrences of type="hidden" in a string. If this is returning a zero count then there may be no occurrences of that exact string present. As a quick example using your exact regular expression: $subject = 'type="hidden"type="hidden"type="hidden"'; $count = preg_match_all("/type\=\"hidden\"/", $subject, $matches); var_dump($count); // int(3) Another alternative, because your example does not really require the use of a regular expression (simple string matching will suffice) and only wants the count, would be to call on the handy substr_count function: $subject = 'type="hidden"type="hidden"type="hidden"'; $count = substr_count($subject, 'type="hidden"'); var_dump($count); // int(3) Quote Link to comment https://forums.phpfreaks.com/topic/178100-preg_match_all-sytax-help/#findComment-939088 Share on other sites More sharing options...
cags Posted October 18, 2009 Share Posted October 18, 2009 My bad, somewhat made an assumption about an un-required slash, glad you cleared that up. Quote Link to comment https://forums.phpfreaks.com/topic/178100-preg_match_all-sytax-help/#findComment-939089 Share on other sites More sharing options...
imperium2335 Posted October 18, 2009 Author Share Posted October 18, 2009 Thanks, didn't know about that substr_count. Worked perfectly Quote Link to comment https://forums.phpfreaks.com/topic/178100-preg_match_all-sytax-help/#findComment-939100 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.