本博客是自己的学习笔记,主要参考自 PHP.net。
该笔记为浅研究,例子总是参考该函数首个例子。
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
function odd($var)
{
// returns whether the input integer is odd
return($var & 1);
}
function even($var)
{
// returns whether the input integer is even
return(!($var & 1));
}
$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
所以以上程序显示为:
Odd :
Array
(
[a] => 1
[c] => 3
[e] => 5
)
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
serialize ( mixed $value ) : string
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。
当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。
Note:
在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此限制,可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。
// $session_data 是包含了当前用户 session 信息的多维数组。
// 我们使用 serialize() 在请求结束之前将其存储到数据库中。
$conn = odbc_connect ("webdb", "php", "chicken");
$stmt = odbc_prepare ($conn,
"UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $PHP_AUTH_USER);
if (!odbc_execute ($stmt, &$sqldata)) {
$stmt = odbc_prepare($conn,
"INSERT INTO sessions (id, data) VALUES(?, ?)");
if (!odbc_execute($stmt, &$sqldata)) {
/* 出错 */
}
}
str_repeat ( string $input , int $multiplier ) : string
返回 input 重复 multiplier 次后的结果。
echo str_repeat("-=", 10);
所以以上程序显示为:
-=-=-=-=-=-=-=-=-=-=
intval ( mixed $var [, int $base = 10 ] ) : int
通过使用指定的进制 base 转换(默认是十进制),返回变量 var 的 integer 数值。 intval() 不能用于 object,否则会产生 E_NOTICE 错误并返回 1。
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34
echo intval('042'); // 42
echo intval(1e10); // 1410065408
echo intval('1e10'); // 1
echo intval(0x1A); // 26
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
ucfirst ( string $str ) : string
将 str 的首字符(如果首字符是字母)转换为大写字母,并返回这个字符串。
注意字母的定义取决于当前区域设定。例如,在默认的 “C” 区域,字符 umlaut-a(ä)将不会被转换。
$foo = 'hello world!';
$foo = ucfirst($foo); // Hello world!
echo $foo.'
';
$bar = 'HELLO WORLD!';
$bar = ucfirst($bar); // HELLO WORLD!
echo $bar.'
';
$bar = ucfirst(strtolower($bar)); // Hello world!
echo $bar.'
';
所以以上程序显示为:
Hello world!
HELLO WORLD!
Hello world!
preg_match_all ( string $pattern , string KaTeX parse error: Expected 'EOF', got '&' at position 18: …bject [, array &̲matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) : int
搜索subject中所有匹配pattern给定正则表达式 的匹配结果并且将它们以flag指定顺序输出到matches中.
在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索.
//\\2是一个后向引用的示例. 这会告诉pcre它必须匹配正则表达式中第二个圆括号(这里是([\w]+))
//匹配到的结果. 这里使用两个反斜线是因为这里使用了双引号.
$html = "bold textclick me";
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4] . "\n\n";
}
所以以上程序显示为:
matched: <b>bold text</b>
part 1: <b>
part 2: b
part 3: bold text
part 4: </b>
matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: a
part 3: click me
part 4: </a>
array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array
array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // returns "c", "d", and "e"
$output = array_slice($input, -2, 1); // returns "d"
$output = array_slice($input, 0, 3); // returns "a", "b", and "c"
// note the differences in the array keys
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
所以以上程序显示为:
Array
(
[0] => c
[1] => d
)
Array
(
[2] => c
[3] => d
)
fclose ( resource $handle ) : bool
将 handle 指向的文件关闭。
microtime ([ bool $get_as_float ] ) : mixed
microtime() 当前 Unix 时间戳以及微秒数。本函数仅在支持 gettimeofday() 系统调用的操作系统下可用。
如果调用时不带可选参数,本函数以 “msec sec” 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。
如果给出了 get_as_float 参数并且其值等价于 TRUE,microtime() 将返回一个浮点数。
Note: get_as_float 参数是 PHP 5.0.0 新加的。
/**
* Simple function to replicate PHP 5 behaviour
*/
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
var_dump(microtime());
exit;
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
// Sleep for a while
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Did nothing in $time seconds\n";
所以以上程序显示为:
string(21) "0.00268600 1553998336"
fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] ) : resource
fopen() 将 filename 指定的名字资源绑定到一个流上。
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w");
call_user_func_array ( callable $callback , array $param_arr ) : mixed
把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}
// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));
// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
所以以上程序显示为:
foobar got one and two
foo::bar got three and four
unlink ( string $filename [, resource $context ] ) : bool
删除 filename。和 Unix C 的 unlink() 函数相似。 发生错误时会产生一个 E_WARNING 级别的错误。
$fh = fopen('test.html', 'a');
fwrite($fh, 'Hello world!
');
fclose($fh);
unlink('test.html');
basename ( string $path [, string $suffix ] ) : string
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/passwd").PHP_EOL;
echo "3) ".basename("/etc/").PHP_EOL;
echo "4) ".basename(".").PHP_EOL;
echo "5) ".basename("/");
realpath ( string $path ) : string
realpath() 扩展所有的符号连接并且处理输入的 path 中的 ‘/./’, ‘/…/’ 以及多余的 ‘/’ 并返回规范化后的绝对路径名。返回的路径中没有符号连接,’/./’ 或 ‘/…/’ 成分。
echo realpath('/windows/system32');
call_user_func ( callable $callback [, mixed $parameter [, mixed $… ]] ) : mixed
第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。
error_reporting(E_ALL);
function increment(&$var)
{
$var++;
}
$a = 0;
//报错
call_user_func('increment', $a);
echo $a."\n";
call_user_func_array('increment', array(&$a)); // You can use this instead before PHP 5.3
echo $a."\n";
array_pop ( array &$array ) : mixed
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。
Note: 使用此函数后会重置(reset())array 指针。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
所以以上程序显示为:
Array
(
[0] => orange
[1] => banana
[2] => apple
)
array_values ( array $array ) : array
array_values() 返回 input 数组中所有的值并给其建立数字索引。
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
所以以上程序显示为:
Array
(
[0] => XL
[1] => gold
)
由于此散列算法的快速性,建议不要使用此功能来保护密码。 有关详细信息和最佳做法,请参阅密码哈希常见问题解答。
md5 ( string $str [, bool $raw_output = FALSE ] ) : string
使用 » RSA 数据安全公司的 MD5 报文算法计算 str 的 MD5 散列值。
$str = 'apple';
if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
echo "Would you like a green or red apple?";
}
所以以上程序显示为:
Would you like a green or red apple?
method_exists ( mixed $object , string $method_name ) : bool
检查类的方法是否存在于指定的 object中。
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
所以以上程序显示为:
bool(true)
file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] ) : int
和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
如果filename不存在,则创建该文件。 否则,将覆盖现有文件,除非设置了FILE_APPEND标志。
$file = 'people.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "John Smith\n";
// Write the contents back to the file
file_put_contents($file, $current);
strtoupper ( string $string ) : string
将 string 中所有的字母字符转换为大写并返回。
注意 “字母” 与当前所在区域有关。例如,在默认的 “C” 区域,字符 umlaut-a(ä)就不会被转换。
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; // 打印 MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
header ( string $string [, bool $replace = true [, int $http_response_code ]] ) : void
header() 用于发送原生的 HTTP 头。关于 HTTP 头的更多信息请参考 » HTTP/1.1 specification。
请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。这是个常见的错误,在通过include,require,或者其访问其他文件里面的函数的时候,如果在header()被调用之前,其中有空格或者空行。 同样的问题也存在于单独的 PHP/HTML 文件中。
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
rtrim ( string $str [, string $character_mask ] ) : string
该函数删除 str 末端的空白字符(或者其他字符)并返回。
不使用第二个参数,rtrim() 仅删除以下字符:
" " (ASCII 32 (0x20)),普通空白符。
"\t" (ASCII 9 (0x09)),制表符。
"\n" (ASCII 10 (0x0A)),换行符。
"\r" (ASCII 13 (0x0D)),回车符。
"\0" (ASCII 0 (0x00)),NUL 空字节符。
"\x0B" (ASCII 11 (0x0B)),垂直制表符。
$text = "\t\tThese are a few words :) ... ";
$binary = "\x09Example string\x0A";
$hello = "Hello World";
var_dump($text, $binary, $hello);
print "\n";
$trimmed = rtrim($text);
var_dump($trimmed);
$trimmed = rtrim($text, " \t.");
var_dump($trimmed);
$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);
// 删除 $binary 末端的 ASCII 码控制字符
// (包括 0 - 31)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);
所以以上程序显示为:
string(32) " These are a few words :) ... "
string(16) " Example string
"
string(11) "Hello World"
string(30) " These are a few words :) ..."
string(26) " These are a few words :)"
string(9) "Hello Wor"
string(15) " Example string"
json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] ) : mixed
接受一个 JSON 编码的字符串并且把它转换为 PHP 变量
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
//返回 array 而非 object 。
var_dump(json_decode($json, true));
所以以上程序显示为:
object(stdClass)#1 (5) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
["d"]=>
int(4)
["e"]=>
int(5)
}
array(5) {
["a"]=>
int(1)
["b"]=>
int(2)
["c"]=>
int(3)
["d"]=>
int(4)
["e"]=>
int(5)
}
is_dir ( string $filename ) : bool
判断给定文件名是否是一个目录。
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));
var_dump(is_dir('..')); //one dir up
所以以上程序显示为:
bool(false)
bool(false)
bool(true)
defined ( string $name ) : bool
检查该名称的常量是否已定义。
Note:
如果你要检查一个变量是否存在,请使用 isset()。 defined() 函数仅对 constants 有效。如果你要检测某个函数是否存在,使用 function_exists()。
/* Note the use of quotes, this is important. This example is checking
* if the string 'TEST' is the name of a constant named TEST */
if (defined('TEST')) {
echo TEST;
}
array_shift ( array &$array ) : mixed
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
Note: 使用此函数后会重置(reset())array 指针。
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
var_dump($fruit);
所以以上程序显示为:
Array
(
[0] => banana
[1] => apple
[2] => raspberry
)
string(6) "orange"
is_numeric ( mixed $var ) : bool
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
is_null ( mixed $var ) : bool
如果 var 是 null 则返回 TRUE,否则返回 FALSE。
查看 NULL 类型获知变量什么时候被认为是 NULL,而什么时候不是。
is_object ( mixed $var ) : bool
如果 var 是一个 object 则返回 TRUE,否则返回 FALSE。
time ( void ) : int
返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数。
$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 days; 24 hours; 60 mins; 60 secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
// or using strtotime():
echo 'Next Week: '. date('Y-m-d', strtotime('+1 week')) ."\n";
所以以上程序显示为:
Now: 2019-03-25
Next Week: 2019-04-01
Next Week: 2019-04-01
json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) : string
返回字符串,包含了 value 值 JSON 形式的表示。
编码受传入的 options 参数影响,此外浮点值的编码依赖于 serialize_precision。
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echo json_encode($arr);
所以以上程序显示为:
{"a":1,"b":2,"c":3,"d":4,"e":5}
date ( string $format [, int $timestamp ] ) : string
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。
Note:
有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54 到 2038 年 1 月 19 日 03:14:07。(此范围符合 32 位有符号整数的最小值和最大值)。不过在 PHP 5.1 之前此范围在某些系统(如 Windows)中限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日。
Note:
要将字符串表达的时间转换成时间戳,应该使用 strtotime()。此外一些数据库有一些函数将其时间格式转换成时间戳(例如 MySQL 的 » UNIX_TIMESTAMP 函数)。
// 设定要用的默认时区。自 PHP 5.1 可用
date_default_timezone_set('UTC');
// 输出类似:Monday
echo date("l").'
';
// 输出类似:Monday 15th of August 2005 03:12:46 PM
echo date('l dS \of F Y h:i:s A').'
';
// 输出:July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)).'
';
/* 在格式参数中使用常量 */
// 输出类似:Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822).'
';
// 输出类似:2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000)).'
';
所以以上程序显示为:
Monday
Monday 25th of March 2019 06:14:53 AM
July 1, 2000 is on a Saturday
Mon, 25 Mar 2019 06:14:53 +0000
2000-07-01T00:00:00+00:00
class_exists ( string $class_name [, bool $autoload = true ] ) : bool
检查指定的类是否已定义。
// 使用前检查类是否存在
if (class_exists('MyClass')) {
$myclass = new MyClass();
}
dirname ( string $path ) : string
给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or \ on Windows)
echo "3) " . dirname("."); // 3) .
function_exists ( string $function_name ) : bool
在已经定义的函数列表(包括系统自带的函数和用户自定义的函数)中查找 function_name。
if (function_exists('imap_open')) {
echo "IMAP functions are available.
\n";
} else {
echo "IMAP functions are not available.
\n";
}
所以以上程序显示为:
IMAP functions are not available.
array_map ( callable $callback , array $array1 [, array $… ] ) : array
array_map():返回数组,是为 array1 每个元素应用 callback函数之后的数组。 callback 函数形参的数量和传给 array_map() 数组数量,两者必须一样。
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
// callback 函数形参的数量和传给 array_map() 数组数量,两者必须一样。
$b = array_map("cube", $a);
print_r($b);
所以以上程序显示为:
Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)
get_class ([ object $object = NULL ] ) : string
返回对象实例 object 所属类的名字。
class foo {
function name()
{
echo "My name is " , get_class($this) , "\n";
}
}
// create an object
$bar = new foo();
// external call
echo "Its name is " , get_class($bar) , "\n";
// internal call
$bar->name();
所以以上程序显示为:
Its name is foo
My name is foo
array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] ) : array
array_keys() 返回 input 数组中的数字或者字符串的键名。
如果指定了可选参数 search_value,则只返回该值的键名。否则 input 数组中的所有键名都会被返回。
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
//搜索
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
print_r(array_keys($array));
所以以上程序显示为:
Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)
is_string ( mixed $var ) : bool
如果 var 是 string 则返回 TRUE,否则返回 FALSE。
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int KaTeX parse error: Expected 'EOF', got '&' at position 19: …it = -1 [, int &̲count ]] ) : mixed
搜索subject中匹配pattern的部分, 以replacement进行替换。
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
所以以上程序显示为:
April1,2003
file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) : string
和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。
file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。
Note:
如果要打开有特殊字符的 URL (比如说有空格),就需要使用 urlencode() 进行 URL 编码。
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
array_key_exists ( mixed $key , array $array ) : bool
数组里有键 key 时,array_key_exists() 返回 TRUE。 key 可以是任何能作为数组索引的值。
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
所以以上程序显示为:
The 'first' element is in the array
file_exists ( string $filename ) : bool
$filename = '/path/to/foo.txt';
if (file_exists($filename)) {
echo "The file $filename exists";
} else {
echo "The file $filename does not exist";
}
所以以上程序显示为:
The file /path/to/foo.txt does not exist
sprintf ( string $format [, mixed $… ] ) : string
返回格式化后的字符串。
$num = 5;
$location = 'tree';
$format = 'There are %d monkeys in the %s';
echo sprintf($format, $num, $location);
所以以上程序显示为:
There are 5 monkeys in the tree
trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] ) : string
此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:
" " (ASCII 32 (0x20)),普通空格符。
“\t” (ASCII 9 (0x09)),制表符。
“\n” (ASCII 10 (0x0A)),换行符。
“\r” (ASCII 13 (0x0D)),回车符。
“\0” (ASCII 0 (0x00)),空字节符。
“\x0B” (ASCII 11 (0x0B)),垂直制表符。
$text = "\t\tThese are a few words :) ... ";
var_dump($text);
print "
";
$trimmed = trim($text);
var_dump($trimmed);
所以以上程序显示为:
string(32) " These are a few words :) ... "
string(28) "These are a few words :) ..."
strtolower ( string $string ) : string
将 string 中所有的字母字符转换为小写并返回。
注意 “字母” 与当前所在区域有关。例如,在默认的 “C” 区域,字符 umlaut-A(ä)就不会被转换。
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
echo $str; // 打印 mary had a little lamb and she loved it so
preg_match ( string $pattern , string KaTeX parse error: Expected 'EOF', got '&' at position 18: …bject [, array &̲matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int
搜索subject与pattern给定的正则表达式的一个匹配.
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
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.";
}
所以以上程序显示为:
A match was found.
strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
返回 needle 在 haystack 中首次出现的数字位置。
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme);
// 注意这里使用的是 ===。简单的 == 不能像我们期待的那样工作,
// 因为 'a' 是第 0 位置上的(第一个)字符。
if ($pos === false) {
echo "The string '$findme' was not found in the string '$mystring'";
} else {
echo "The string '$findme' was found in the string '$mystring'";
echo " and exists at position $pos";
}
?>
所以以上程序显示为:
The string 'a' was found in the string 'abc' and exists at position 0
in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) : bool
大海捞针,在大海(haystack)中搜索针( needle),如果没有设置 strict 则使用宽松的比较。
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
//失败,因为 in_array() 是区分大小写的
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
所以以上程序显示为:
Got Irix
explode ( string $delimiter , string $string [, int $limit ] ) : array
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
// 赋值:
$bodytag = str_replace("%body%", "black", "");
var_dump($bodytag);
implode ( string $glue , array $pieces ) : string
implode ( array $pieces ) : string
Note:
因为历史原因,implode() 可以接收两种参数顺序,但是 explode() 不行。不过按文档中的顺序可以避免混淆。
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
strlen ( string $string ) : int
$str = 'abcdef';
echo strlen($str); // 6