php手册笔记

<?php
getenv — 获取一个环境变量的值 
$ip  =  getenv ( 'REMOTE_ADDR' ); 
// 或简单仅使用全局变量($_SERVER 或 $_ENV)
$ip  =  $_SERVER [ 'REMOTE_ADDR' ];


getopt — 从命令行参数列表中获取选项 


当使用命令行执行时:php script.php arg1 arg2 arg3 
var_dump ( $argv ); 
//结果为
array(4) {
  [0]=>  string(10) "script.php"
  [1]=>   string(4) "arg1"
  [2]=>   string(4) "arg2"
  [3]=>  string(4) "arg3"
}
当使用命令行执行时:php script.php arg1 arg2 arg3 
var_dump ( $argc ); //结果为: int(4)

$GLOBALS — 引用全局作用域中可用的全部变量 
function  test () {
     $foo  =  "local variable" ; 
    echo  '$GLOBALS找全局变量所以找到Example content: '  .  $GLOBALS [ "foo" ] .  "\n" ;
    echo  '正常的找局部 local variable: '  .  $foo  .  "\n" ;
} 
$foo  =  "Example content" ;
test ();

迭代(目的实例化一个对象后可以遍历那个对象) 写类时我们要继承Iterator的话就必须多些5个方法 1.current() 2.key() 3.next() 4.rewind() 5.valid 
聚合式迭代器(目的实例化一个对象后可以遍历那个对象)   我们写类时要是继承 IteratorAggregate  就必须多写一个固定死的方法 getIterator(){ return new ArrayIterator($this); }  
数组式访问 (目的实例化一个对象后可以遍历那个对象)  我们写类时要是继承ArrayAccess()接口 就必须多写4个方法
序列化接口  多写2个方法

class_implements — 返回指定的类实现的所有接口。
class_parents — 返回指定类的父类。
class_uses — 返回给定的类使用的特征 trait foo{ }  class  bar { use  foo ;}  print_r ( class_uses (new  bar ));
 
iterator_apply — 为迭代器中每个元素调用一个用户自定义函数
例如:
function  print_caps ( Iterator $iterator ) {
    echo  strtoupper ( $iterator -> current ()) .  "\n" ;
    return  TRUE ;
}

$it  = new  ArrayIterator (array( "Apples" ,  "Bananas" ,  "Cherries" ));
iterator_apply ( $it ,  "print_caps" , array( $it ));

iterator_count — 计算迭代器中元素的个数
iterator_to_array — 将迭代器中的元素拷贝到数组
spl_autoload_call — 尝试调用所有已注册的__autoload()函数来装载请求类
spl_autoload_extensions — 注册并返回spl_autoload函数使用的默认文件扩展名。
spl_autoload_functions — 返回所有已注册的__autoload()函数。
spl_autoload_register — 注册__autoload()函数
spl_autoload_unregister — 注销已注册的__autoload()函数
spl_autoload — __autoload()函数的默认实现
spl_classes — 返回所有可用的SPL类
spl_object_hash — 返回指定对象的hash id

--------------------------------------------------------------------------------

套接字上下文选项 — 套接字上下文选项列表 
//   '7000'
$opts  = array(
     'socket'  => array(
         'bindto'  =>  '0:7000' ,
    ),
);   
$context  =  stream_context_create ( $opts ); 
echo  file_get_contents ( 'http://www.example.com' ,  false ,  $context );

 HTTP context 的选项列表 
$opts  = array( 'http'  =>
    array(
         'method'   =>  'POST' ,
         'header'   =>  'Content-type: application/x-www-form-urlencoded' ,
         'content'  =>  $postdata
     )
);
$context  =  stream_context_create ( $opts );
$result  =  file_get_contents ( 'http://example.com/submit.php' ,  false ,  $context );


FTP 上下文选项列表 
$stream_options = array('ftp' => array('overwrite' => true));
$stream_context = stream_context_create($stream_options);


CURL 上下文选项列表 
$opts  = array( 'http'  =>
    array(
         'method'   =>  'POST' ,
         'header'   =>  'Content-type: application/x-www-form-urlencoded' ,
         'content'  =>  $postdata
     )
);
$context  =  stream_context_create ( $opts );
$result  =  file_get_contents ( 'http://example.com/submit.php' ,  false ,  $context );


加载扩展 如果gd扩展已加载,返回 TRUE ,否则返回 FALSE 。  
if (! extension_loaded ( 'gd' )) {
    if (! dl ( 'gd.so' )) {
        exit;
    }
}

// 引入一个扩展的例子,基于操作系统
if (! extension_loaded ( 'sqlite' )) {
    if ( strtoupper ( substr ( PHP_OS ,  0 ,  3 )) ===  'WIN' ) { //判断操作系统
         dl ( 'php_sqlite.dll' );
    } else {
         dl ( 'sqlite.so' );
    }
}

获取当前 PHP 脚本所有者名称   echo  'Current script owner: '  .  get_current_user ();

— 返回所有常量的关联数组,键是常量名,值是常量值
define ( "MY_CONSTANT" ,  1 ); print_r ( get_defined_constants ( true ));
 
输入模块名称 返回模块所以方法  print_r ( get_extension_funcs ( "xml" ));

查看php 引入了哪些文件 print_r(get_included_files());

 返回所有编译并加载的模块   print_r ( get_loaded_extensions ());
  
// 如果启用了魔术引号
echo  $_POST [ 'lastname' ];              // O\'reilly  //增加反斜线
echo  addslashes ( $_POST [ 'lastname' ]);  // O\\\'reilly 

get_magic_quotes_gpc() 用来检测php.ini中 magic_quotes_gpc 是否等于on
如果magic_quotes_gpc已经开启则  所有请求数据默认使用了addslashes()  


// 适用各个 PHP 版本的用法
if ( get_magic_quotes_gpc ()) {//为关闭时返回 0,否则返回 1
     $lastname  =  stripslashes ( $_POST [ 'lastname' ]); //去掉反斜线
	 // 关闭功能
     set_magic_quotes_runtime ( false );
}else {
     $lastname  =  $_POST [ 'lastname' ];
}

// sQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 
$lastname  =  mysql_real_escape_string ( $lastname );

echo  $lastname ;  // O\'reilly
$sql  =  "INSERT INTO lastnames (lastname) VALUES (' $lastname ')" ;

 
getmyuid — 获取 PHP 脚本所有者的 UID 
getmyinode — 获取当前脚本的索引节点(inode) 
getmypid — 获取 PHP 进程的 ID 

ini_get_all — 获取所有配置选项 
ini_get — 获取一个配置选项的值 
memory_get_peak_usage — 返回分配给 PHP 内存的峰值 
memory_get_usage — 返回分配给 PHP 的内存量 

php.ini文件的位置 echo php_ini_loaded_file ();

返回 web 服务器和 PHP 之间的接口类型  PHP 常量 PHP_SAPI 具有和 php_sapi_name() 相同的值。 


打印 PHP 贡献者名单  phpcredits ( CREDITS_ALL  -  CREDITS_FULLPAGE );
phpversion — 获取当前的PHP版本 
set_time_limit — 设置脚本最大执行时间 如果超时默认是30秒,在脚本运行了了25秒时调用 set_time_limit(20),那么,脚本在超时之前可运行总时间为45秒。 


sys_get_temp_dir — 返回用于临时文件的目录 
 对比两个「PHP 规范化」的版本数字字符串  
if ( version_compare( PHP_VERSION ,  '5.3.0' ) >=  0 ) {
    echo  'I am at least PHP version 5.3.0, my version: '  .  PHP_VERSION  .  "\n" ;
}
zend_thread_id — 返回当前线程的唯一识别符 
zend_version — 获取当前 Zend 引擎的版本 



 
array_combine($array(一维数组的值做键), 另一个一维数组的值做值);新数组创建成功
array_column($array, '多维数组中的某元素值做值', '某元素值做键');
 str_repeat ( "-=" ,  10 ); //-=-=-=-=-=-=-=-=-=-=

echo nl2br ( "foo isn't\n bar" );//foo isn't<br />bar
 
echo lcfirst ('HelloWorld' );   // helloWorld
 
// Outputs: A 'quote' is <b>bold</b>
echo  $a = htmlentities ( $str ,  ENT_QUOTES );//引号也被转换 
echo  html_entity_decode ( $a ); //还原被htmlentities()后的字符串
 
// 注意,这里的引号不会被转换
echo htmlspecialchars ( "<a href='test'>Test</a>" ,  ENT_QUOTES ); // <a href='test'>Test</a>
 echo  htmlspecialchars_decode ( $str ,  ENT_NOQUOTES ); //还原被htmlspecialchars()后的字符串

// count_chars ( string $string [, int $mode = 0 ] ) 
echo $str =convert_uuencode ( 'string' );//1个参数(string) 目的对string进行编码 返回结果

echo  convert_uudecode ( $str );//解码一个 uuencode 编码的字符串 
 
$str = chunk_split('abcdefghi', 2, '=');//3个参数,目的用指定字符串将其分割为一定长度,返回分割后的字符。 


stripslashes — 反引用一个引用字符串 
addcslashes(string, 'A-z')//两个参数 目的转义 字符串  返回转以后的字符串
addslashes(string);//一个参数  目的转义4个特殊符号 ‘ “ \ null 返回转以后的字符串
string stripcslashes ( string $str ) 反引用一个使用 addcslashes() 转义的字符串 
  
bin2hex(二进制) //一个参数  目的2进制转16进制 返回16进制
hex2bin — 转换十六进制字符串为二进制字符串 

chop() rtrim() 的别名  //2个参数,目的去除右边空白或字符  返回去除后的结果
/**/

查找字符串的首次出现 
 strstr ( '[email protected]' ,  '@' ); // 打印 @example.com
//显示最后一次找到,要查找的字符串,以及后面的字符串。
strrchr( 'name@[email protected]' ,  '@' ); 
// 在字符串中查找一组字符的任何一个字符 
// 输出 "is is a Simple text.",因为 'i' 先被匹配
echo  strpbrk ('This is a Simple text.' ,  'mi' );
// 输出 "Simple text.",因为字符区分大小写
echo  strpbrk ('This is a Simple text.' ,  'S' );



 strtr — 转换指定字符 
echo  strtr ( "baab" ,  "ab" ,  "01" ), "\n" ; //结果  1001  
echo  strtr ( "baab" ,  array( "ab"  =>  "01" ) ); //结果 ba01
 
 //打断字符串为指定数量的字串 
$newtext  =  wordwrap ( "The quick brown fox jumped over the lazy dog." ,  20 ,  "<br />\n" );

//返回格式化字符串
print  vsprintf ( "%04d-%02d-%02d" ,  explode ( '-' ,  '1988-8-1' ));  // 1988-08-01

//替换字符串的子串  
echo implode("<br>",substr_replace(array("1: AAA","2: AAA","3: AAA"),'BBB',3,3));
//结果:  1: BBB<br>2: BBB<br>3: BBB

//从字符串的第 6 个位置开始替换(把 "world" 替换成 "Shanghai")
substr_replace("Hello world","Shanghai",6);

//在 "world" 开头插入 "Hello":
echo substr_replace("world","Hello ",0,0);


//关键字在一个字符串中出现的次数
substr_count ( 'This is a test' ,  'is' );  //结果 2

 strip_tags — 从字符串中去除 HTML 和 PHP 标记 

//二进制安全字符串比较
strcmp ( string $str1 , string $str2 )
strcasecmp — 二进制安全比较字符串 不区分大小写

strncmp(string $str1 , string $str2, 长度) //二进制安全比较字符串开头的若干个字符 区分大小写
strncasecmp //不区分大小写

strcoll( string $str1 , string $str2 ) — 基于区域设置的字符串比较 不是二进制安全的。 



$arr1  =  $arr2  = array( "img12.png" ,  "img10.png" ,  "img2.png" ,  "img1.png" );
usort ( $arr1 ,  "strcmp" );
print_r ( $arr1 );

usort ( $arr2 ,  "strnatcmp" );
print_r ( $arr2 );


输出在字符串 "Hello world!" 中找到字符 "w" 之前查找的字符数:
echo strcspn("Hello world!", "w");



str_word_count — 返回字符串中单词的使用情况 
str_split(string, 每一段的长度) //— 将字符串转换为数组 

str_shuffle — 随机打乱一个字符串
echo  str_pad ( $input ,  '10填充到指定长度' ,  "-=" ,  STR_PAD_LEFT );   // 输出 "-=-=-Alien"   STR_PAD_BOTH往左 往右  STR_PAD_RIGHT 往右

$str  =  "first=value&arr[]=foo+bar&arr[]=baz" ;
parse_str ( $str );
echo  $first ;   // value
echo  $arr [ 0 ];  // foo bar
echo  $arr [ 1 ];  // baz

http_build_query($array);


1.flush — 刷新输出缓冲
2.ob_clean — 清空(擦掉)输出缓冲区
3.ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲
4.ob_end_flush — 冲刷出(送出)输出缓冲区内容并关闭缓冲
5.ob_flush — 冲刷出(送出)输出缓冲区中的内容
6.ob_get_clean — 得到当前缓冲区的内容并删除当前输出缓。
7.ob_get_contents — 返回输出缓冲区的内容
8.ob_get_flush — 刷出(送出)缓冲区内容,以字符串形式返回内容,并关闭输出缓冲区。
9.ob_get_length — 返回输出缓冲区内容的长度
10.ob_get_level — 返回输出缓冲机制的嵌套级别
11.ob_get_status — 得到所有输出缓冲区的状态
12.ob_gzhandler — 在ob_start中使用的用来压缩输出缓冲区中内容的回调函数。ob_start callback function to gzip output buffer
13.ob_implicit_flush — 打开/关闭绝对刷送
14.ob_list_handlers — 列出所有使用中的输出处理程序。
15.ob_start — 打开输出控制缓冲
16.output_add_rewrite_var — 添加URL重写器的值(Add URL rewriter values)
17.output_reset_rewrite_vars — 重设URL重写器的值(Reset URL rewriter values)

--------------------------------------------------------------------------------

// 连接、选择数据库
$link  =  mysql_connect ( 'mysql_host' ,  'mysql_user' ,  'mysql_password' )
    or die( 'Could not connect: '  .  mysql_error ());
echo  'Connected successfully' ;
mysql_select_db ( 'my_database' ) or die( 'Could not select database' );

// 执行 SQL 查询
$query  =  'SELECT * FROM my_table' ;
$result  =  mysql_query ( $query ) or die( 'Query failed: '  .  mysql_error ());

// 以 HTML 打印查询结果
echo  "<table>\n" ;
while ( $line  =  mysql_fetch_array ( $result ,  MYSQL_ASSOC )) {
    echo  "\t<tr>\n" ;
    foreach ( $line  as  $col_value ) {
        echo  "\t\t<td> $col_value </td>\n" ;
    }
    echo  "\t</tr>\n" ;
}
echo  "</table>\n" ;

// 释放结果集
mysql_free_result ( $result );

// 关闭连接
mysql_close ( $link );




日期

Monday  星期一
Tuesday 
Wednesday
Thursday
Friday
Saturday
Sunday 星期日



公共的
  t  给定月份所应有的天数 28 到 31  
c  ISO 8601 格式的日期(PHP 5 新加) 2004-02-12T15:19:21+00:00 
r  RFC 822 格式的日期 例如:Thu, 21 Dec 2000 16:01:07 +0200  
U  从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数 参见 time()  


代表年的有 
     Y  4 位数字完整表示的年份 
	 y  2 位数字表示的年份 
     L  是否为闰年 如果是闰年为 1,否则为 0  
	 
代表月的有 
     m  数字表示的月份,有前导零 
	 n  数字表示的月份,没有前导零 	 
	 F  月份,完整的文本格式,例如 January 或者 March 
	 M  三个字母缩写表示的月份 Jan 到 Dec
   
代表日的有:
     d  月份中的第几天,有前导零的 2 位 
	 j  月份中的第几天,没有前导零 
	 z  年份中的第几天 0 到 365 
	 
代表时的有 
     a  小写的上午和下午值 am 或 pm  
     A  大写的上午和下午值 AM 或 PM  
	 B  Swatch Internet 标准时 000 到 999  
	 g  小时,12 小时格式,没有前导零 1 到 12  
	 G  小时,24 小时格式,没有前导零 0 到 23  
	 h  小时,12 小时格式,有前导零 01 到 12  
	 H  小时,24 小时格式,有前导零 00 到 23  
 
代表分的有 
    i  有前导零的分钟数 00 到 59> 
	
代表秒的有
     s  秒数,有前导零 00 到 59> 
	 
代表星期的有  
    D   .3 个字母(Mon 到 Sun)
    l(“L”的小写字母) (Sunday 到 Saturday )
	N   1(表示星期一)到 7(表示星期天)
	w  星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
    W   例如:42(当年的第 42 周)

	
echo  getcwd () .  "\n" ;//当前目录名
 
chdir ( '/var/www/' ); //改变目录
chroot — 改变根目录 


dir ( "/etc/php5" );  — 返回一个 Directory 类实例 

 $dir = "/etc/php5";
if ( is_dir ( $dir )) {
    if ( $dh  =  opendir ( $dir )) {
        while (( $file  =  readdir ( $dh )) !==  false ) {
            echo  "filename:  $file  : filetype: "  .  filetype ( $dir  .  $file ) .  "\n" ;
        }
         closedir ( $dh );
    }
}
rewinddir — 倒回目录句柄 
scandir — 列出指定路径中的文件和目录   返回数组元素为目录名




realpath ( './../../etc/passwd' ); — 返回规范化的绝对路径名 

clearstatcache ();//清除文件状态缓存 

// $df 包含根目录下可用的字节数
$df  =  disk_free_space ( "/" );
disk_total_space( "/" ); — 返回一个目录的磁盘总大小 




feof — 测试文件指针是否到了文件结束的位置 
fclose — 关闭一个已打开的文件指针 
fflush — 将缓冲内容输出到文件 
fgetc — 从文件指针中读取字符 
fgetcsv — 从文件指针中读入一行并解析 CSV 字段 
fgets — 从文件指针中读取一行 
fgetss — 从文件指针中读取一行并过滤掉 HTML 标记 

 

你可能感兴趣的:(php手册笔记)