STR_WORD_COUNT(3) 1 STR_WORD_COUNT(3)str_word_count - Return information about words used in a stringSYNOPSIS
mixed str_word_count (string $string, [int $format], [string $charlist])
DESCRIPTION
Counts the number of words inside $string. If the optional $format is not specified, then the return value will be an integer representing
the number of words found. In the event the $format is specified, the return value will be an array, content of which is dependent on the
$format. The possible value for the $format and the resultant outputs are listed below.
For the purpose of this function, 'word' is defined as a locale dependent string containing alphabetic characters, which also may contain,
but not start with "'" and "-" characters.
PARAMETERS
o $string
- The string
o $format
- Specify the return value of this function. The current supported values are:
o 0 - returns the number of words found
o 1 - returns an array containing all the words found inside the $string
o 2 - returns an associative array, where the key is the numeric position of the word inside the $string and the value is the
actual word itself
o $charlist
- A list of additional characters which will be considered as 'word'
RETURN VALUES
Returns an array or an integer, depending on the $format chosen.
CHANGELOG
+--------+--------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+--------------------------------+
| 5.1.0 | |
| | |
| | Added the $charlist parameter |
| | |
+--------+--------------------------------+
EXAMPLES
Example #1
A str_word_count(3) example
<?php
$str = "Hello fri3nd, you're
looking good today!";
print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'aaac3'));
echo str_word_count($str);
?>
The above example will output:
Array
(
[0] => Hello
[1] => fri
[2] => nd
[3] => you're
[4] => looking
[5] => good
[6] => today
)
Array
(
[0] => Hello
[6] => fri
[10] => nd
[14] => you're
[29] => looking
[46] => good
[51] => today
)
Array
(
[0] => Hello
[1] => fri3nd
[2] => you're
[3] => looking
[4] => good
[5] => today
)
7
SEE ALSO explode(3), preg_split(3), split(3), count_chars(3), substr_count(3).
PHP Documentation Group STR_WORD_COUNT(3)
Check Out this Related Man Page
PREG_MATCH(3) 1 PREG_MATCH(3)preg_match - Perform a regular expression matchSYNOPSIS
int preg_match (string $pattern, string $subject, [array &$matches], [int $flags], [int $offset])
DESCRIPTION
Searches $subject for a match to the regular expression given in $pattern.
PARAMETERS
o $pattern
- The pattern to search for, as a string.
o $subject
- The input string.
o $matches
- If $matches is provided, then it is filled with the results of search. $matches[0] will contain the text that matched the full
pattern, $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.
o $flags
-$flags can be the following flag:
o PREG_OFFSET_CAPTURE - If this flag is passed, for every occurring match the appendant string offset will also be returned.
Note that this changes the value of $matches into an array where every element is an array consisting of the matched string
at offset 0 and its string offset into $subject at offset 1.
o $offset
- Normally, the search starts from the beginning of the subject string. The optional parameter $offset can be used to specify the
alternate place from which to start the search (in bytes).
Note
Using $offset is not equivalent to passing substr($subject, $offset) to preg_match(3) in place of the subject string,
because $pattern can contain assertions such as ^, $ or (?<=x). Compare:
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3);
print_r($matches);
?>
The above example will output:
Array
(
)
while this example
<?php
$subject = "abcdef";
$pattern = '/^def/';
preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>
will produce
Array
(
[0] => Array
(
[0] => def
[1] => 0
)
)
RETURN VALUES preg_match(3) returns 1 if the $pattern matches given $subject, 0 if it does not, or FALSE if an error occurred.
Warning
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE. Please read the section on
Booleans for more information. Use the === operator for testing the return value of this function.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.3.6 | |
| | |
| | Returns FALSE if $offset is higher than $subject |
| | length. |
| | |
| 5.2.2 | |
| | |
| | Named subpatterns now accept the syntax |
| | (?<name>) and (?'name') as well as (?P<name>). |
| | Previous versions accepted only (?P<name>). |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
Find the string of text "php"
<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
Example #2
Find the word "web"
<?php
/* The in the pattern indicates a word boundary, so only the distinct
* word "web" is matched, and not a word partial like "webbing" or "cobweb" */
if (preg_match("/web/i", "PHP is the web scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
if (preg_match("/web/i", "PHP is the website scripting language of choice.")) {
echo "A match was found.";
} else {
echo "A match was not found.";
}
?>
Example #3
Getting the domain name out of a URL
<?php
// get host name from URL
preg_match('@^(?:http://)?([^/]+)@i',
"http://www.php.net/index.html", $matches);
$host = $matches[1];
// get last two segments of host name
preg_match('/[^.]+.[^.]+$/', $host, $matches);
echo "domain name is: {$matches[0]}
";
?>
The above example will output:
domain name is: php.net
Example #4
Using named subpattern
<?php
$str = 'foobar: 2008';
preg_match('/(?P<name>w+): (?P<digit>d+)/', $str, $matches);
/* This also works in PHP 5.2.2 (PCRE 7.0) and later, however
* the above form is recommended for backwards compatibility */
// preg_match('/(?<name>w+): (?<digit>d+)/', $str, $matches);
print_r($matches);
?>
The above example will output:
Array
(
[0] => foobar: 2008
[name] => foobar
[1] => foobar
[digit] => 2008
[2] => 2008
)
NOTES
Tip
Do not use preg_match(3) if you only want to check if one string is contained in another string. Use strpos(3) or strstr(3) instead
as they will be faster.
SEE ALSO
PCRE Patterns, preg_quote(3), preg_match_all(3), preg_replace(3), preg_split(3), preg_last_error(3).
PHP Documentation Group PREG_MATCH(3)