String functionsStrings
These functions all manipulate strings in various ways. Some more
specialized sections can be found in the regular expression and
URL handling sections.AddCSlashesQuote string with slashes in a C styleDescriptionstring addcslashesstring strstring charlist
Returns a string with backslashes before characters that are
listed in charlist parameter. It escapes
\n, \r etc. in C-like
style, characters with ASCII code lower than 32 and higher than
126 are converted to octal representation. Be carefull when
escaping alphanumeric characters. You can specify a range in
charlist like "\0..\37", which would
escape all characters with ASCII code between 0 and 31.
addcslashes() example
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
Added in PHP4b3-dev.
See also stripcslashes,
stripslashes,
htmlspecialchars,
htmlspecialchars, and
quotemeta.AddSlashesQuote string with slashesDescriptionstring addslashesstring 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
Descriptionstring bin2hexstring str
Returns an ASCII string containing the hexadecimal representation
of str. The conversion is done byte-wise
with the high-nibble first.Chopremove trailing whitespaceDescriptionstring chopstring str
Returns the argument string without trailing whitespace.
chop() example
$trimmed = Chop($line);
See also trim.ChrReturn a specific characterDescriptionstring chrint 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_splitSplit a string into smaller chunksDescriptionstring chunk_splitstring stringint chunklenstring 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.
This function was added in 3.0.6.convert_cyr_string
Convert from one Cyrillic character set to another
Descriptionstring convert_cyr_stringstring strstring fromstring 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-cyrilliccryptDES-encrypt a stringDescriptionstring cryptstring strstring
saltcrypt 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.echoOutput one or more stringsDescriptionechostring arg1string
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";
In fact, if you want to pass more than one parameter to echo,
you must not enclose the parameters within parentheses.
See also:
print,
printf, and
flush.explodeSplit a string by stringDescriptionarray explodestring separatorstring 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.flushFlush the output bufferDescriptionvoid 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
Descriptionarray get_meta_tagsstring filenameint
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 - PHP 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 PHP trying to open the file along the standard include path.htmlentities
Convert all applicable characters to HTML entities
Descriptionstring htmlentitiesstring 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.htmlspecialchars
Convert special characters to HTML entities
Descriptionstring htmlspecialcharsstring 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 '&'
'"' (double quote) becomes '"'
'<' (less than) becomes '<'
'>' (greater than) becomes '>'
Note that this functions does not translate anything beyond what
is listed above. For full entity translation, see
htmlentities.
See also htmlentities and
nl2br.implodeJoin array elements with a stringDescriptionstring implodestring gluearray pieces
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.joinJoin array elements with a stringDescriptionstring joinstring gluearray piecesjoin is an alias to
implode, and is identical in every way.ltrim
Strip whitespace from the beginning of a string
Descriptionstring ltrimstring str
This function strips whitespace from the start of a string and
returns the stripped string.
See also chop and trim.md5Calculate the md5 hash of a stringDescriptionstring md5string str
Calculates the MD5 hash of str using the
RSA Data
Security, Inc. MD5 Message-Digest Algorithm.MetaphoneCalculate the metaphone key of a stringDescriptionstring metaphonestring str
Calculates the metaphone key of str.
Similar to soundex metaphone creates the
same key for similar sounding words. It's more accurate than
soundex as it knows the basic rules of
English pronunciation. the metaphone generated keys are of
variable length.
Metaphone was developed by Lawrence Philips
<lphilips@verity.com>. It is described in ["Practical
Algorithms for Programmers", Binstock & Rex, Addison Wesley,
1995].
This function was added in PHP 4.0.nl2brConverts newlines to HTML line breaks.Descriptionstring nl2brstring string
Returns string with '<BR>' inserted
before all newlines.
See also htmlspecialchars and
htmlentities.OrdReturn ASCII value of characterDescriptionint ordstring 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_strParses the string into variablesDescriptionvoid parse_strstring str
Parses str as if it were the query string
passed via an URL and sets variables in the current scope.Using parse_str
$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" */
printOutput a stringDescriptionprintstring arg
Outputs arg.
See also:
echoprintfflushprintfoutput a formatted stringDescriptionint printfstring formatmixed
args...
Produces output according to format, which
is described in the documentation for sprintf.
See also:
print,
sprintf, and
flush.quoted_printable_decodeConvert a quoted-printable string to an 8 bit stringDescriptionstring
quoted_printable_decodestring 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.QuoteMetaquote meta charactersDescriptionstring quotemetastring 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.rawurldecodeDecode URL-encoded stringsDescriptionstring rawurldecodestring 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.rawurlencodeURL-encode according to RFC1738Descriptionstring rawurlencodestring 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.setlocaleSet locale informationDescriptionstring setlocalestring categorystring localecategory 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_textCalculate the similarity between two stringsDescriptionint similar_textstring firststring seconddouble
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.soundexCalculate the soundex key of a stringDescriptionstring soundexstring 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';
sprintfReturn a formatted stringDescriptionstring sprintfstring formatmixed
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 and
number_format.Examplessprintf: 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"
strcasecmp
Binary safe case-insensitive string comparison
Descriptionint strcasecmpstring str1string str2
Returns < 0 if str1 is less than
str2; > 0 if str1
is greater than str2, and 0 if they are
equal.
See also ereg, strcmp,
substr, stristr, and
strstr.strchr
Find the first occurrence of a character.
Descriptionstring strchrstring haystackstring needle
This function is an alias for strstr, and is
identical in every way.strcmpBinary safe string comparisonDescriptionint strcmpstring str1string 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,
strcasecmp, substr,
stristr, and strstr.strcspn
Find length of initial segment not matching mask
Descriptionint strcspnstring str1string str2
Returns the length of the initial segment of
str1 which does not
contain any of the characters in str2.
See also strspn.strip_tagsStrip HTML and PHP tags from a stringDescriptionstring strip_tagsstring strstring allowable_tags
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.
You can use the optional second parameter to specify tags which
should not be stripped.
allowable_tags was added in PHP 3.0.13, PHP4B3.StripCSlashesun-quote string quoted with addcslashesDescriptionstring stripcslashesstring str
Returns a string with backslashes stripped off. Recognizes
C-like \n, \r ..., octal
and hexadecimal representation.
Added in PHP4b3-dev.
See also addcslashes.StripSlashesUn-quote string quoted with addslashesDescriptionstring stripslashesstring str
Returns a string with backslashes stripped off.
(\' becomes ' and so on.)
Double backslashes are made into a single backslash.
See also addslashes.stristr
Case-insensitive strstrDescriptionstring stristrstring haystackstring needle
Returns all of haystack from the first
occurrence of needle to the end.
needle and haystack
are examined in a case-insensitive manner.
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 strchr,
strrchr, substr, and
ereg.strlenGet string lengthDescriptionint strlenstring str
Returns the length of string.strpos
Find position of first occurrence of a string
Descriptionint strposstring haystackstring needleint
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,
stristr, and strstr.strrchr
Find the last occurrence of a character in a string
Descriptionstring strrchrstring haystackstring 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,
stristr, and strstr.strrevReverse a stringDescriptionstring strrevstring string
Returns string, reversed.strrpos
Find position of last occurrence of a char in a string
Descriptionint strrposstring haystackchar 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,
stristr, and strstr.strspn
Find length of initial segment matching mask
Descriptionint strspnstring str1string str2
Returns the length of the initial segment of
str1 which consists entirely of characters
in str2.
See also strcspn.strstrFind first occurrence of a string.Descriptionstring strstrstring haystackstring 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 stristr,
strrchr, substr, and
ereg.strtokTokenize stringDescriptionstring strtokstring arg1string arg2strtok 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.strtolowerMake a string lowercaseDescriptionstring strtolowerstring 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.strtoupperMake a string uppercaseDescriptionstring strtoupperstring 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
Descriptionstring str_replacestring needlestring strstring 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.strtrTranslate certain charactersDescriptionstring strtrstring strstring fromstring 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.substrReturn part of a stringDescriptionstring substrstring stringint startint
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
Descriptionstring trimstring 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
Descriptionstring ucfirststring 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
Descriptionstring ucwordsstring str
Capitalizes the first character of each word in
str if that character is alphabetic.
See also strtoupper,
strtolower and ucfirst.