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个方法

套接字上下文选项 — 套接字上下文选项列表
//   ‘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
// 适用各个 PHP 版本的用法
if ( get_magic_quotes_gpc ()) {//为关闭时返回 0,否则返回 1
     $lastname  =  stripslashes ( $_POST [ ‘lastname‘ ]); //去掉反斜线
}else {
     $lastname  =  $_POST [ ‘lastname‘ ];
}

// 如果使用 MySQL
$lastname  =  mysql_real_escape_string ( $lastname );

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

getmyuid — 获取 PHP 脚本所有者的 UID 

获取当前 PHP 脚本拥有者的用户组 ID。  getmygid

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 — 设置脚本最大执行时间 

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 &lt;b&gt;bold&lt;/b&gt;
echo  $a = htmlentities ( $str ,  ENT_QUOTES );//引号也被转换
echo  html_entity_decode ( $a );//引号不被转换

// 注意,这里的引号不会被转换
echo  htmlspecialchars_decode ( $str ,  ENT_NOQUOTES );
echo htmlspecialchars ( "<a href=‘test‘>Test</a>" ,  ENT_QUOTES ); // &lt;a href='test'&gt;Test&lt;/a&gt;

// 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个参数,目的去除右边空白或字符  返回去除后的结果
/**/
时间: 2024-10-05 16:37:18

PHP手册笔记的相关文章

google hacking for penetration testers 手册笔记

参考链接: Advanced operators reference Google hacking database 注意:以下内容涉及到大量参考图表,图表均在本人相册<google hacking参数查询表>里 第一章 谷歌搜索基础知识 1.谷歌翻译 可看作透明代理 利用: “翻译此页” 2.黄金法则: 不区分大小写 通配符*代表一个单词,非单一字母或一系列字母,在一单词开始或结尾使用星号和直接使用单词效果相同 保留查询关键字权利 强制搜索:         加引号:“words” 或 用布

类型 - PHP手册笔记

原文:类型 - PHP手册笔记 类型简介 PHP 支持 8 种原始数据类型. 四种标量类型: boolean(布尔型,不区分大小写) integer(整型) float(浮点型,也称作double) string(字符串) 两种复合类型: array(数组) object(对象) 最后是两种特殊类型: resource(资源) NULL(无类型) 如果想查看某个表达式的值和类型,用var_dump()函数. <?php $a = array(1, 2, array("a", &q

表达式 - PHP手册笔记

原文:表达式 - PHP手册笔记 PHP是一种面向表达式的语言.表达式的定义可以描述为,任何有值的东西. PHP支持全等运算符===(值和类型均相同)和非全等运算符!==(值或者类型不同). PHP的三元条件运算符貌似和C语言不太一样,这里没提,那就先简单略过去吧. (全文完)

基本语法 - PHP手册笔记

原文:基本语法 - PHP手册笔记 PHP标记 如果文件内容是纯PHP代码,最好在文件末尾删除PHP结束标记.这可以避免在PHP结束标记之后万一意外加入了空格或者换行符,会导致PHP开始输出这些空白,而脚本中此时并无输出的意图.当然PHP开始标记<?php前的空格或者换行符依然会输出. 使用条件的高级分离术 下面这段代码的意思很容易理解,关键是if-else的用法,这样使用在文本输出是显的逻辑更加清晰. <?php $expression = false; ?> <?php if

入门指引 - PHP手册笔记

原文:入门指引 - PHP手册笔记 曾经简单的学习过PHP,看的是<PHP和MySQL Web开发>,还有万能的搜索引擎的帮助.这次准备系统的学习一下,参考资料是PHP Manual. PHP能做什么 PHP主要用于服务端的脚本程序,但PHP的功能远不局限于此.PHP主要用于以下三个领域: 服务端脚本 命令行脚本 编写桌面应用程序(PHP-GTK) 实用的脚本 $_SERVER是一个特殊的PHP保留变量,它包含了web服务器提供的所有信息,被称为超全局变量.可以通过$_SERVER['HTTP

Python学习手册笔记

之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我在这里推荐了几篇文章,有其他语言编程经验的人简单看一看就可以很快地开始编写Python程序了. 黑体表示章节, 下划线表示可以直接在原文对应位置查到的专有技术名词. 原书配套答案请到http://www.hzbook.com/Books/4572.html下载,简单注册即可. 第三章 如何运行程序 impor

异常处理 - PHP手册笔记

原文:异常处理 - PHP手册笔记 PHP代码中所产生的异常可被throw语句抛出,并被catch语句捕获.需要进行异常处理的代码都必须放入try代码块内,每一个try至少要有一个与之对应的catch.当一个异常被抛出时,所在代码块后面的代码将不会继续执行,此时PHP会尝试查找第一个能与之匹配的catch.当然,PHP允许在catch代码块内再次抛出throw异常.如果一个异常没有被捕获,且未使用set_exception_handler()作相应处理的话,PHP将会产生一个严重错误. 这里有一

类与对象 - PHP手册笔记

原文:类与对象 - PHP手册笔记 基本概念 PHP对待对象的方式与引用和句柄相同,即每个变量都持有对象的引用,而不是整个对象的拷贝. 当创建新对象时,该对象总是被赋值,除非该对象定义了构造函数并且在出错时抛出了一个异常.类应在被实例化之前定义. 创建对象时,如果该类属于一个名字空间,则必须使用其完整名称. 在类定义内部,可以用new self和new parent创建对象. <?php $instance = new stdClass(); $assigned = $instance; $re

命名空间 - PHP手册笔记

原文:命名空间 - PHP手册笔记 概述 命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念,比如在操作系统中,目录用来将相关文件分组,对于目录中的文件来说,目录就扮演了命名空间的角色.这个原理应用到程序设计领域就是命名空间的概念.PHP 5.3后的版本开始支持命名空间. 定义命名空间 命名空间通过关键字namespace来声明.任何合法的PHP代码都可以包含在命名空间中,但只有类.函数和常量这三种类型受命名空间的影响. 在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的de

函数 - PHP手册笔记

原文:函数 - PHP手册笔记 用户自定义函数 函数无需在调用前被定义,除非是有条件定义的. PHP中的所有函数和类都具有全局作用域.PHP不支持函数重载,也不可能取消定义或者重定义已声明的函数. 特意试了下,我的电脑上的PHP递归栈的最大深度为100. 函数参数 PHP支持按值传递参数(默认).通过引用传递参数以及默认参数.也支持可变长度参数列表.PHP允许使用数组和特殊类型NULL作为默认参数.如果希望允许函数修改参数值,必须通过引用传递参数. 注意!当使用默认参数时,任何默认参数必须放在任