<?php
/**
* The difference (or striking similarity) between using `strpos` or `strpbrk` in PHP
*
* Note: The variable naming scheme used in this code is an adaption of
* Systems Hungarian which is explained at http://p...content-available-to-author-only...r.ca/VariableNamingConvention/
*/
function checkStrPos ($p_sFormat)
{
return strpos($p_sFormat, 'H') === false && strpos($p_sFormat, 'i') === false && strpos($p_sFormat, 's') === false ;
}
function checkStrPbrk($p_sFormat)
{
return strpbrk($p_sFormat, 'His') === false; }
'' => true
, 'H:i:s' => false
, 'His' => false
, 'siH' => false
, 'H' => false
, 'i' => false
, 's' => false
, 'h' => true
, 'I' => true
, 'S' => true
, 'A:B:C' => true
, 'A:B:C H:i:s' => false
, 'A:B:C H' => false
, 'A:B:C i' => false
, 'A:B:C s' => false
);
foreach ($aFormats as $t_sFormat => $t_bExpectedValue) {
checkStrPbrk($t_sFormat) === $t_bExpectedValue
&& checkStrpos($t_sFormat) === $t_bExpectedValue
&& checkStrPbrk($t_sFormat) === checkStrpos($t_sFormat)
, true
) . PHP_EOL
;
}
PD9waHAKLyoqCiAqIFRoZSBkaWZmZXJlbmNlIChvciBzdHJpa2luZyBzaW1pbGFyaXR5KSBiZXR3ZWVuIHVzaW5nIGBzdHJwb3NgIG9yIGBzdHJwYnJrYCBpbiBQSFAKICogCiAqIE5vdGU6IFRoZSB2YXJpYWJsZSBuYW1pbmcgc2NoZW1lIHVzZWQgaW4gdGhpcyBjb2RlIGlzIGFuIGFkYXB0aW9uIG9mIAogKiBTeXN0ZW1zIEh1bmdhcmlhbiB3aGljaCBpcyBleHBsYWluZWQgYXQgaHR0cDovL3AuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLnIuY2EvVmFyaWFibGVOYW1pbmdDb252ZW50aW9uLwogKi8KCgpmdW5jdGlvbiBjaGVja1N0clBvcyAoJHBfc0Zvcm1hdCkgCnsKCXJldHVybiBzdHJwb3MoJHBfc0Zvcm1hdCwgJ0gnKSA9PT0gZmFsc2UgCgkJJiYgc3RycG9zKCRwX3NGb3JtYXQsICdpJykgPT09IGZhbHNlIAoJCSYmIHN0cnBvcygkcF9zRm9ybWF0LCAncycpID09PSBmYWxzZQoJOwp9CgpmdW5jdGlvbiBjaGVja1N0clBicmsoJHBfc0Zvcm1hdCkgCnsKCXJldHVybiBzdHJwYnJrKCRwX3NGb3JtYXQsICdIaXMnKSA9PT0gZmFsc2U7Cn0KCgokYUZvcm1hdHMgPSBhcnJheSgKCSAgJycgPT4gdHJ1ZQoJLCAnSDppOnMnID0+IGZhbHNlCgksICdIaXMnID0+IGZhbHNlCgksICdzaUgnID0+IGZhbHNlCgksICdIJyA9PiBmYWxzZQoJLCAnaScgPT4gZmFsc2UKCSwgJ3MnID0+IGZhbHNlCgksICdoJyA9PiB0cnVlCgksICdJJyA9PiB0cnVlCgksICdTJyA9PiB0cnVlCgksICdBOkI6QycgPT4gdHJ1ZQoJLCAnQTpCOkMgSDppOnMnID0+IGZhbHNlCgksICdBOkI6QyBIJyA9PiBmYWxzZQoJLCAnQTpCOkMgaScgPT4gZmFsc2UKCSwgJ0E6QjpDIHMnID0+IGZhbHNlCik7Cgpmb3JlYWNoICgkYUZvcm1hdHMgYXMgJHRfc0Zvcm1hdCA9PiAkdF9iRXhwZWN0ZWRWYWx1ZSkgewoJZWNobyB2YXJfZXhwb3J0KAoJCWNoZWNrU3RyUGJyaygkdF9zRm9ybWF0KSA9PT0gJHRfYkV4cGVjdGVkVmFsdWUKCQkmJiAgY2hlY2tTdHJwb3MoJHRfc0Zvcm1hdCkgPT09ICR0X2JFeHBlY3RlZFZhbHVlCgkJJiYgY2hlY2tTdHJQYnJrKCR0X3NGb3JtYXQpID09PSBjaGVja1N0cnBvcygkdF9zRm9ybWF0KQoJCSwgdHJ1ZQoJKSAuIFBIUF9FT0wKCTsKfQ==