Recently I had to validate a string that is was indeed a base64 string and it was indeed an encoded allowable image type. Between str_word_count’s second parameter (returning the string as an array based on the words) and a quick Stack Overflow search this is neat little piece of logic IMO:
/** * Validate a base64 string is indeed of an allowable MIME type * @author David J Eddy <me@davidjeddy.com>> * @version 0.8.0 * @param $paramData * * @return bool */ public function validate($paramData) { $returnData = true; // explode the string into an array ignoring everything but words $wordArray = str_word_count(substr($paramData, 0 , 23), 1); // is the string a valid base64 object? // @source http://stackoverflow.com/questions/4278106/how-to-check-if-a-string-is-base64-valid-in-php if (base64_encode(base64_decode($paramData, true)) !== $paramData) { $returnData = false; } // does the string contain 'data', 'image', 'base'? if ( in_array('data', $wordArray) === false || in_array('image', $wordArray) === false || in_array('base', $wordArray) === false || $returnData === false ) { $returnData = false; } // does the string contain an allowed MIME type? if (in_array('data', $this->allowableMimeType) === false || $returnData === false) { $returnData = false; } return $returnData; }
What do you think? Have an often forgotten php function or parameter that helps you greatly?