每天五个PHP函数记忆

每天五个PHP函数记忆

  • 说明
  • 2019年4月1日 星期一
    • array_filter — 用回调函数过滤数组中的单元
    • serialize — 产生一个可存储的值的表示
    • str_repeat — 重复一个字符串
    • intval — 获取变量的整数值
    • ucfirst — 将字符串的首字母转换为大写
  • 2019年3月31日 星期日
    • preg_match_all — 执行一个全局正则表达式匹配
    • array_slice — 从数组中取出一段
    • fclose — 关闭一个已打开的文件指针
    • microtime — 返回当前 Unix 时间戳和微秒数
    • fopen — 打开文件或者 URL
  • 2019年3月30日 星期六
    • call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数
  • 2019年3月29日 星期五
    • unlink — 删除文件
    • basename — 返回路径中的文件名部分
    • realpath — 返回规范化的绝对路径名
    • call_user_func — 把第一个参数作为回调函数调用
    • array_pop — 弹出数组最后一个单元(出栈)
  • 2019年3月28日 星期四
    • array_values — 返回数组中所有的值
    • md5 — 计算字符串的 MD5 散列值
    • method_exists — 检查类的方法是否存在
    • file_put_contents — 将一个字符串写入文件
    • strtoupper — 将字符串转化为大写
  • 2019年3月27日 星期三
    • header — 发送原生 HTTP 头
    • rtrim — 删除字符串末端的空白字符(或者其他字符)
  • 2019年3月26日 星期二
    • json_decode — 对 JSON 格式的字符串进行解码
    • is_dir — 判断给定文件名是否是一个目录
    • defined — 检查某个名称的常量是否存在
    • array_shift — 将数组开头的单元移出数组
    • is_numeric — 检测变量是否为数字或数字字符串
    • is_null — 检测变量是否为 NULL
  • 2019年3月25日 星期一
    • is_object — 检测变量是否是一个对象
    • time — 返回当前的 Unix 时间戳
    • json_encode — 对变量进行 JSON 编码
    • date — 格式化一个本地时间/日期
    • class_exists — 检查类是否已定义
  • 2019年3月24日 星期日
    • dirname — 返回路径中的目录部分
    • function_exists — 如果给定的函数已经被定义就返回 TRUE
    • array_map — 为数组的每个元素应用回调函数
    • get_class — 返回对象的类名
    • array_keys — 返回数组中部分的或所有的键名
  • 2019年3月23日 星期六
    • is_string — 检测变量是否是字符串
    • preg_replace — 执行一个正则表达式的搜索和替换
    • file_get_contents — 将整个文件读入一个字符串
    • array_key_exists — 检查数组里是否有指定的键名或索引
    • file_exists — 检查文件或目录是否存在
  • 2019年3月22日 星期五
    • sprintf - 返回格式化的字符串
    • trim — 去除字符串首尾处的空白字符(或者其他字符)
    • strtolower — 将字符串转化为小写
    • preg_match — 执行匹配正则表达式
    • strpos — 查找字符串首次出现的位置
  • 2019年3月21日 星期四
    • in_array — 检查数组中是否存在某个值
    • explode — 使用一个字符串分割另一个字符串
    • str_replace — 子字符串替换
    • implode — 将一个一维数组的值转化为字符串
    • strlen — 获取字符串长度

说明

本博客是自己的学习笔记,主要参考自 PHP.net。
该笔记为浅研究,例子总是参考该函数首个例子。

2019年4月1日 星期一

array_filter — 用回调函数过滤数组中的单元

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 — 产生一个可存储的值的表示

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 — 重复一个字符串

str_repeat ( string $input , int $multiplier ) : string

返回 input 重复 multiplier 次后的结果。


echo str_repeat("-=", 10);
所以以上程序显示为: 
-=-=-=-=-=-=-=-=-=-=

intval — 获取变量的整数值

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 — 将字符串的首字母转换为大写

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!

2019年3月31日 星期日

preg_match_all — 执行一个全局正则表达式匹配

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_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 — 关闭一个已打开的文件指针

fclose ( resource $handle ) : bool

将 handle 指向的文件关闭。

microtime — 返回当前 Unix 时间戳和微秒数

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 — 打开文件或者 URL

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");

2019年3月30日 星期六

call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数

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

2019年3月29日 星期五

unlink — 删除文件

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 — 返回路径中的文件名部分

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 — 返回规范化的绝对路径名

realpath ( string $path ) : string

realpath() 扩展所有的符号连接并且处理输入的 path 中的 ‘/./’, ‘/…/’ 以及多余的 ‘/’ 并返回规范化后的绝对路径名。返回的路径中没有符号连接,’/./’ 或 ‘/…/’ 成分。


echo realpath('/windows/system32');

call_user_func — 把第一个参数作为回调函数调用

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_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
)

2019年3月28日 星期四

array_values — 返回数组中所有的值

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 — 计算字符串的 MD5 散列值

由于此散列算法的快速性,建议不要使用此功能来保护密码。 有关详细信息和最佳做法,请参阅密码哈希常见问题解答。

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 — 检查类的方法是否存在

method_exists ( mixed $object , string $method_name ) : bool

检查类的方法是否存在于指定的 object中。


$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
所以以上程序显示为: 
bool(true)

file_put_contents — 将一个字符串写入文件

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 — 将字符串转化为大写

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

2019年3月27日 星期三

header — 发送原生 HTTP 头

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 — 删除字符串末端的空白字符(或者其他字符)

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"

2019年3月26日 星期二

json_decode — 对 JSON 格式的字符串进行解码

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 — 判断给定文件名是否是一个目录

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 — 检查某个名称的常量是否存在

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_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 — 检测变量是否为数字或数字字符串

is_numeric ( mixed $var ) : bool
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。

is_null — 检测变量是否为 NULL

is_null ( mixed $var ) : bool
如果 var 是 null 则返回 TRUE,否则返回 FALSE。
查看 NULL 类型获知变量什么时候被认为是 NULL,而什么时候不是。

2019年3月25日 星期一

is_object — 检测变量是否是一个对象

is_object ( mixed $var ) : bool
如果 var 是一个 object 则返回 TRUE,否则返回 FALSE。

time — 返回当前的 Unix 时间戳

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 — 对变量进行 JSON 编码

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 — 格式化一个本地时间/日期

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 — 检查类是否已定义

class_exists ( string $class_name [, bool $autoload = true ] ) : bool
检查指定的类是否已定义。


// 使用前检查类是否存在
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

2019年3月24日 星期日

dirname — 返回路径中的目录部分

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 — 如果给定的函数已经被定义就返回 TRUE

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 — 为数组的每个元素应用回调函数

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 — 返回对象的类名

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_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
)


2019年3月23日 星期六

is_string — 检测变量是否是字符串

is_string ( mixed $var ) : bool
如果 var 是 string 则返回 TRUE,否则返回 FALSE。

preg_replace — 执行一个正则表达式的搜索和替换

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 — 将整个文件读入一个字符串

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 — 检查数组里是否有指定的键名或索引

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 — 检查文件或目录是否存在

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

2019年3月22日 星期五

sprintf - 返回格式化的字符串

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 — 去除字符串首尾处的空白字符(或者其他字符)

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 — 将字符串转化为小写

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 — 执行匹配正则表达式

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 — 查找字符串首次出现的位置

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

2019年3月21日 星期四

in_array — 检查数组中是否存在某个值

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 — 使用一个字符串分割另一个字符串

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

str_replace — 子字符串替换

该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。


// 赋值: 
$bodytag = str_replace("%body%", "black", "");
var_dump($bodytag);

implode — 将一个一维数组的值转化为字符串

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 — 获取字符串长度

strlen ( string $string ) : int


$str = 'abcdef';
echo strlen($str); // 6

你可能感兴趣的:(PHP)