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