|
strcspn
Find length of initial segment not matching mask
(PHP 4, PHP 5)
Returns the length of the initial segment of str1 which does not contain any of the characters in str2. Parameters
See Also
Related Examples ( Source code ) » strcspn Examples ( Source code ) » strcspn($password, '1234567890') Examples ( Source code ) » strcspn Demo Code Examples / Notes » strcspnmaskedcoder
useful for finding beginning of quotes and/or tags in a variable containing html. $pos = strcspn($data, '<"\''); will find the first occurance of either the beginning of a tag, or a double- or single-quoted string. at-he at_he
this function can be used like strspn(), except while that can be used to compare a string with an allowed pattern, this one can be use to compare a string with a FORBIDDEN pattern so, to know if any forbidden character has a position inside our string, we can use (not tested with backslashes)... <?php // LARGE VERSION $forbidden="\"\\?*:/@|<>"; if (strlen($filename) != strcspn($filename,$forbidden)) { echo "you cant create a file with that name!"; } // SHORT VERSION if (strlen($filename) - strcspn($filename,"\"\\?*:/@|<>")) { echo "i told you, you cant create that file"; } ?> php
Also useful for breaking down expressions - for example parsing SQL: values ('this', fn("that,)()", 4)) $sep = strcspn ($list, "'\"`"); // Start of quoted string $list = substr ($list, $sep); $find = substr ($list, 0, 1); while (($sep = strpos ($list, $find, $sep+1)) > 0 && substr ($list, $sep-1, 1) == '\\') {} // $sep now spans the entire string, regardless of embedded quotes Once the strings have been removed, an expression can then be parsed for commas and brackets without worrying about them: while ($out != '') { $sep = strcspn ($list, "(),"); // Next seperator ... } |
Change Languageaddcslashes addslashes bin2hex chop chr chunk_split convert_cyr_string convert_uudecode convert_uuencode count_chars crc32 crypt echo explode fprintf get_html_translation_table hebrev hebrevc html_entity_decode htmlentities htmlspecialchars_decode htmlspecialchars implode join levenshtein localeconv ltrim md5_file md5 metaphone money_format nl_langinfo nl2br number_format ord parse_str printf quoted_printable_decode quotemeta rtrim setlocale sha1_file sha1 similar_text soundex sprintf sscanf str_getcsv str_ireplace str_pad str_repeat str_replace str_rot13 str_shuffle str_split str_word_count strcasecmp strchr strcmp strcoll strcspn strip_tags stripcslashes stripos stripslashes stristr strlen strnatcasecmp strnatcmp strncasecmp strncmp strpbrk strpos strrchr strrev strripos strrpos strspn strstr strtok strtolower strtoupper strtr substr_compare substr_count substr_replace substr trim ucfirst ucwords vfprintf vprintf vsprintf wordwrap |