String functions Strings These functions all manipulate strings in various ways. Some more specialized sections can be found in the regular expression and URL handling sections. AddSlashes quote string with slashes Description string addslashes string str Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote ("), backslash (\) and NUL (the null byte). See also stripslashes, htmlspecialchars and quotemeta. bin2hex convert binary data into hexadecimal representation Description string bin2hex string str Returns an ASCII string containing the hexadecimal representation of str. The conversion is done byte-wise with the high-nibble first. Chop remove trailing whitespace Description string chop string str Returns the argument string without trailing whitespace. chop() example $trimmed = Chop($line); See also trim. Chr return a specific character Description string chr int ascii Returns a one-character string containing the character specified by ascii. chr() example $str .= chr(27); /* add an escape character at the end of $str */ /* Often this is more useful */ $str = sprintf("The string ends in escape: %c", 27); This function complements ord. See also sprintf with a format string of %c. chunk_split Split a string into smaller chunks Description string chunk_split string string int chunklen string end Can be used to split a string into smaller chunks which is useful for e.g. converting base64_encode output to match RFC 2045 semantics. It inserts every chunklen (defaults to 76) chars the string end (defaults to "\r\n"). It returns the new string leaving the original string untouched. chunk_split() example # format $data using RFC 2045 semantics $new_string = chunk_split(base64_encode($data)); This function is significantly faster than ereg_replace. convert_cyr_string Convert from one Cyrillic character set to another Description string convert_cyr_string string str string from string to This function converts the given string from one Cyrillic character set to another. The from and to arguments are single characters that represent the source and target Cyrillic character sets. The supported types are: k - koi8-r w - windows-1251 i - iso8859-5 a - x-cp866 d - x-cp866 m - x-mac-cyrillic crypt DES-encrypt a string Description string crypt string str string salt crypt will encrypt a string using the standard Unix DES encryption method. Arguments are a string to be encrypted and an optional two-character salt string to base the encryption on. See the Unix man page for your crypt function for more information. If the salt argument is not provided, it will be randomly generated by PHP. Some operating systems support more than one type of encryption. In fact, sometimes the standard DES encryption is replaced by an MD5 based encryption algorithm. The encryption type is triggered by the salt argument. At install time, PHP determines the capabilities of the crypt function and will accept salts for other encryption types. If no salt is provided, PHP will auto-generate a standard 2-character DES salt by default unless the default encryption type on the system is MD5 in which case a random MD5-compatible salt is generated. PHP sets a constant named CRYPT_SALT_LENGTH which tells you whether a regular 2-character salt applies to your system or the longer 12-char MD5 salt is applicable. The standard DES encryption crypt contains the salt as the first two characters of the output. On systems where the crypt() function supports multiple encryption types, the following constants are set to 0 or 1 depending on whether the given type is available: CRYPT_STD_DES - Standard DES encryption with a 2-char SALT CRYPT_EXT_DES - Extended DES encryption with a 9-char SALT CRYPT_MD5 - MD5 encryption with a 12-char SALT starting with $1$ CRYPT_BLOWFISH - Extended DES encryption with a 16-char SALT starting with $2$ There is no decrypt function, since crypt uses a one-way algorithm. echo output one or more strings Description echo string arg1 string argn... Outputs all parameters. echo is not actually a function (it is a language construct) so you are not required to use parantheses with it. echo example echo "Hello World"; See also: print printf flush explode split a string by string Description array explode string separator string string Returns an array of strings containing the elements separated by separator. explode() example $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode(" ", $pizza); See also split and implode. flush flush the output buffer Description void flush Flushes the output buffers of PHP and whatever backend PHP is using (CGI, a web server, etc.) This effectively tries to push all the output so far to the user's browser. get_meta_tags Extracts all meta tag content attributes from a file and returns an array Description array get_meta_tags string filename int use_include_path Opens filename and parses it line by line for <meta> tags of the form Meta Tags Example <meta name="author" content="name"> <meta name="tags" content="php3 documentation"> </head> <!-- parsing stops here --> (pay attention to line endings - PHP3 uses a native function to parse the input, so a Mac file won't work on Unix). The value of the name property becomes the key, the value of the content property becomes the value of the returned array, so you can easily use standard array functions to traverse it or access single values. Special characters in the value of the name property are substituted with '_', the rest is converted to lower case. Setting use_include_path to 1 will result in PHP3 trying to open the file along the standard include path. htmlspecialchars Convert special characters to HTML entities. Description string htmlspecialchars string string Certain characters have special significance in HTML, and should be represented by HTML entities if they are to preserve their meanings. This function returns a string with these conversions made. This function is useful in preventing user-supplied text from containing HTML markup, such as in a message board or guest book application. At present, the translations that are done are: '&' (ampersand) becomes '&amp;' '"' (double quote) becomes '&quot;' '<' (less than) becomes '&lt;' '>' (greater than) becomes '&gt;' Note that this functions does not translate anything beyond what is listed above. For full entity translation, see htmlentities. See also htmlentities and nl2br. htmlentities Convert all applicable characters to HTML entities. Description string htmlentities string string This function is identical to htmlspecialchars in all ways, except that all characters which have HTML entity equivalents are translated into these entities. At present, the ISO-8859-1 character set is used. See also htmlspecialchars and nl2br. implode join array elements with a string Description string implode array pieces string glue Returns a string containing a string representation of all the array elements in the same order, with the glue string between each element. implode() example $colon_separated = implode($array, ":"); See also explode, join, and split. join join array elements with a string Description string join array pieces string glue join is an alias to implode, and is identical in every way. ltrim Strip whitespace from the beginning of a string. Description string ltrim string str This function strips whitespace from the start of a string and returns the stripped string. See also chop and trim. md5 calculate the md5 hash of a string Description string md5 string str Calculates the MD5 hash of str using the RSA Data Security, Inc. MD5 Message-Digest Algorithm. nl2br Converts newlines to HTML line breaks. Description string nl2br string string Returns string with '<BR>' inserted before all newlines. See also htmlspecialchars and htmlentities. Ord return ASCII value of character Description int ord string string Returns the ASCII value of the first character of string. This function complements chr. ord() example if (ord($str) == 10) { echo("The first character of \$str is a line feed.\n"); } See also chr. parse_str parses the string into variables Description void parse_str string str Parses str as if it were the query string passed via an URL and sets variables in the current scope. Using <function>parse_str</function> $str = "first=value&second[]=this+works&second[]=another"; parse_str($str); echo $first; /* prints "value" */ echo $second[0]; /* prints "this works" */ echo $second[1]; /* prints "another" */ print output a string Description print string arg Outputs arg. See also: echo printf flush printf output a formatted string Description int printf string format mixed args... Produces output according to format, which is described in the documentation for sprintf. See also: print, sprintf, and flush. quoted_printable_decode Convert a quoted-printable string to an 8 bit string Description string quoted_printable_decode string str This function returns an 8-bit binary string corresponding to the decoded quoted printable string. This function is similar to imap_qprint, except this one does not require the IMAP module to work. QuoteMeta quote meta characters Description int quotemeta string str Returns a version of str with a backslash character (\) before every character that is among these: . \\ + * ? [ ^ ] ( $ ) See also addslashes, htmlentities, htmlspecialchars, nl2br, and stripslashes. rawurldecode decode URL-encoded strings Description string rawurldecode string str Returns a string in which the sequences with percent (%) signs followed by two hex digits have been replaced with literal characters. For example, the string foo%20bar%40baz decodes into foo bar@baz See also rawurlencode. rawurlencode URL-encode according to RFC1738 Description string rawurlencode string str Returns a string in which all non-alphanumeric characters except -_. have been replaced with a percent (%) sign followed by two hex digits. This is the encoding described in RFC1738 for protecting literal characters from being interpreted as special URL delimiters, and for protecting URL's from being mangled by transmission media with character conversions (like some email systems). For example, if you want to include a password in an ftp url: rawurlencode() example 1 echo '<A HREF="ftp://user:', rawurlencode ('foo @+%/'), '@ftp.my.com/x.txt">'; Or, if you pass information in a path info component of the url: rawurlencode() example 2 echo '<A HREF="http://x.com/department_list_script/', rawurlencode ('sales and marketing/Miami'), '">'; See also rawurldecode. setlocale set locale information Description string setlocale string category string locale category is a string specifying the category of the functions affected by the locale setting: LC_ALL for all of the below LC_COLLATE for string comparison - not currently implemented in PHP LC_CTYPE for character classification and conversion, for example strtoupper LC_MONETARY for localeconv() - not currently implemented in PHP LC_NUMERIC for decimal separator LC_TIME for date and time formatting with strftime If locale is the empty string "", the locale names will be set from the values of environment variables with the same names as the above categories, or from "LANG". If locale is zero or "0", the locale setting is not affected, only the current setting is returned. Setlocale returns the new current locale, or false if the locale functionality is not implemented in the plattform, the specified locale does not exist or the category name is invalid. An invalid category name also causes a warning message. similar_text calculate the similarity between two strings Description int similar_text string first string second double percent This calculates the similarity between two strings as described in Oliver [1993]. Note that this implementation does not use a stack as in Oliver's pseudo code, but recursive calls which may or may not speed up the whole process. Note also that the complexity of this algorithm is O(N**3) where N is the length of the longest string. By passing a reference as third argument, similar_text will calculate the similarity in percent for you. It returns the number of matching chars in both strings. soundex calculate the soundex key of a string Description string soundex string str Calculates the soundex key of str. Soundex keys have the property that words pronounced similarly produce the same soundex key, and can thus be used to simplify searches in databases where you know the pronunciation but not the spelling. This soundex function returns a string 4 characters long, starting with a letter. This particular soundex function is one described by Donald Knuth in "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), pp. 391-392. Soundex Examples soundex("Euler") == soundex("Ellery") == 'E460'; soundex("Gauss") == soundex("Ghosh") == 'G200'; soundex("Knuth") == soundex("Kant") == 'H416'; soundex("Lloyd") == soundex("Ladd") == 'L300'; soundex("Lukasiewicz") == soundex("Lissajous") == 'L222'; sprintf return a formatted string Description sprintf string format mixed args... Returns a string produced according to the formatting string format. The format string is composed by zero or more directives: ordinary characters (excluding %) that are copied directly to the result, and conversion specifications, each of which results in fetching its own parameter. This applies to both sprintf and printf Each conversion specification consists of these elements, in order: An optional padding specifier that says what character will be used for padding the results to the right string size. This may be a space character or a 0 (zero character). The default is to pad with spaces. An alternate padding character can be specified by prefixing it with a single quote ('). See the examples below. An optional alignment specifier that says if the result should be left-justified or right-justified. The default is right-justified; a - character here will make it left-justified. An optional number, a width specifier that says how many characters (minimum) this conversion should result in. An optional precision specifier that says how many decimal digits should be displayed for floating-point numbers. This option has no effect for other types than double. (Another function useful for formatting numbers is number_format.) A type specifier that says what type the argument data should be treated as. Possible types: % - a literal percent character. No argument is required. b - the argument is treated as an integer, and presented as a binary number. c - the argument is treated as an integer, and presented as the character with that ASCII value. d - the argument is treated as an integer, and presented as a decimal number. f - the argument is treated as a double, and presented as a floating-point number. o - the argument is treated as an integer, and presented as an octal number. s - the argument is treated as and presented as a string. x - the argument is treated as an integer and presented as a hexadecimal number (with lowercase letters). X - the argument is treated as an integer and presented as a hexadecimal number (with uppercase letters). See also: printf, number_format Examples sprintf: zero-padded integers $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day); sprintf: formatting currency $money1 = 68.75; $money2 = 54.35; $money = $money1 + $money2; // echo $money will output "123.1"; $formatted = sprintf ("%01.2f", $money); // echo $formatted will output "123.10" strchr Find the first occurrence of a character. Description string strchr string haystack string needle This function is an alias for strstr, and is identical in every way. strcmp binary safe string comparison Description int strcmp string str1 string str2 Returns < 0 if str1 is less than str2; > 0 if str1 is greater than str2, and 0 if they are equal. Note that this comparison is case sensitive. See also ereg, substr, and strstr. strcspn find length of initial segment not matching mask Description int strcspn string str1 string str2 Returns the length of the initial segment of str1 which does not contain any of the characters in str2. See also strspn. strip_tags Strip HTML and PHP tags from a string Description string strip_tags string str This function tries to strip all HTML and PHP tags from the given string. It errors on the side of caution in case of incomplete or bogus tags. It uses the same tag stripping state machine as the fgetss function. StripSlashes un-quote string quoted with addslashes Description string stripslashes string str Returns a string with backslashes stripped off. (\' becomes ' and so on.) Double backslashes are made into a single backslash. See also addslashes. strlen get string length Description int strlen string str Returns the length of string. strrpos Find position of last occurrence of a char in a string. Description int strrpos string haystack char needle Returns the numeric position of the last occurrence of needle in the haystack string. Note that the needle in this case can only be a single character. If a string is passed as the needle, then only the first character of that string will be used. If needle is not found, returns false. If needle is not a string, it is converted to an integer and applied as the ordinal value of a character. See also strpos, strrchr, substr, and strstr. strpos Find position of first occurrence of a string. Description int strpos string haystack string needle int offset Returns the numeric position of the first occurrence of needle in the haystack string. Unlike the strrpos, this function can take a full string as the needle parameter and the entire string will be used. If needle is not found, returns false. If needle is not a string, it is converted to an integer and applied as the ordinal value of a character. The optional offset parameter allows you to specify which character in haystack to start searching. The position returned is still relative to the the beginning of haystack. See also strrpos, strrchr, substr, and strstr. strrchr Find the last occurrence of a character in a string. Description string strrchr string haystack string needle This function returns the portion of haystack which starts at the last occurrence of needle and goes until the end of haystack. Returns false if needle is not found. If needle contains more than one character, the first is used. If needle is not a string, it is converted to an integer and applied as the ordinal value of a character. strrchr() example // get last directory in $PATH $dir = substr( strrchr( $PATH, ":" ), 1 ); // get everything after last newline $text = "Line 1\nLine 2\nLine 3"; $last = substr( strrchr( $text, 10 ), 1 ); See also substr and strstr. strrev Reverse a string. Description string strrev string string Returns string, reversed. strspn find length of initial segment matching mask Description int strspn string str1 string str2 Returns the length of the initial segment of str1 which consists entirely of characters in str2. See also strcspn. strstr Find first occurrence of a string. Description string strstr string haystack string needle Returns all of haystack from the first occurrence of needle to the end. If needle is not found, returns false. If needle is not a string, it is converted to an integer and applied as the ordinal value of a character. See also strrchr, substr, and ereg. strtok tokenize string Description string strtok string arg1 string arg2 strtok is used to tokenize a string. That is, if you have a string like "This is an example string" you could tokenize this string into its individual words by using the space character as the token. strtok() example $string = "This is an example string"; $tok = strtok($string," "); while($tok) { echo "Word=$tok<br>"; $tok = strtok(" "); } Note that only the first call to strtok uses the string argument. Every subsequent call to strtok only needs the token to use, as it keeps track of where it is in the current string. To start over, or to tokenize a new string you simply call strtok with the string argument again to initialize it. Note that you may put multiple tokens in the token parameter. The string will be tokenized when any one of the characters in the argument are found. Also be careful that your tokens may be equal to "0". This evaluates to false in conditional expressions. See also split and explode. strtolower Make a string lowercase. Description string strtolower string str Returns string with all alphabetic characters converted to lowercase. Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters such as umlaut-A (Ä) will not be converted. See also strtoupper and ucfirst. strtoupper Make a string uppercase. Description string strtoupper string string Returns string with all alphabetic characters converted to uppercase. Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted. See also strtolower and ucfirst. str_replace Replace all occurrences of needle in haystack with str Description string str_replace string needle string str string haystack This function replaces all occurences of needle in haystack with the given str. If you don't need fancy replacing rules, you should always use this function instead of ereg_replace. str_replace() example $bodytag = str_replace("%body%", "black", "<body text=%body%>"); This function is binary safe. See also ereg_replace. strtr Translate certain characters. Description string strtr string str string from string to This function operates on str, translating all occurrences of each character in from to the corresponding character in to and returning the result. If from and to are different lengths, the extra characters in the longer of the two are ignored. strtr() example $addr = strtr($addr, "äåö", "aao"); See also ereg_replace. substr Return part of a string. Description string substr string string int start int length Substr returns the portion of string specified by the start and length parameters. If start is positive, the returned string will start at the start'th character of string. Examples: $rest = substr("abcdef", 1); // returns "bcdef" $rest = substr("abcdef", 1, 3); // returns "bcd" If start is negative, the returned string will start at the start'th character from the end of string. Examples: $rest = substr("abcdef", -1); // returns "f" $rest = substr("abcdef", -2); // returns "ef" $rest = substr("abcdef", -3, 1); // returns "d" If length is given and is positive, the string returned will end length characters from start. If this would result in a string with negative length (because the start is past the end of the string), then the returned string will contain the single character at start. If length is given and is negative, the string returned will end length characters from the end of string. If this would result in a string with negative length, then the returned string will contain the single character at start. Examples: $rest = substr("abcdef", 1, -1); // returns "bcde" See also strrchr and ereg. trim Strip whitespace from the beginning and end of a string. Description string trim string str This function strips whitespace from the start and the end of a string and returns the stripped string. See also chop and ltrim. ucfirst Make a string's first character uppercase Description string ucfirst string str Capitalizes the first character of str if that character is alphabetic. Note that 'alphabetic' is determined by the current locale. For instance, in the default "C" locale characters such as umlaut-a (ä) will not be converted. See also strtoupper and strtolower. ucwords Uppercase the first character of each word in a string Description string ucwords string str Capitalizes the first character of each word in str if that character is alphabetic. See also strtoupper, strtolower and ucfirst.