• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!
首页 > IT技术 > PHP > 内容

php编程常用函数方法等

2015-06-10 21:42:06   来源:叶景网络
   叶景网络(www.cngxit.com),致力于互联网品牌建设与网络营销,专业领域包括网站建设、电子商务、移动互联网营销、系统平台开发, 与其他网站建设等。下面来为您分享php编辑过程中常用的函数方法:
    isset() 变量是否存在
    boolean empty() 检查变量是否存在,并判断值是否为非空或非0
    void unset() 销毁变量
    header('Content-Type: text/html; charset=utf-8');
    method_exists($obj, $method) 判断对象的方法是否可用
    file_exists($file) 判断文件是否存在
    function_exists();
    class_exists($class_name);
    gettype();获取数据类型
    set_magic_quotes_runtime() 0 for off, 1 for on 当遇到反斜杆、单引号,将会自动加上一个反斜杆,保护系统和数据库的安全
    ini_set(,);
    数据类型转换
    强制转换
    $i = 1;
    $j = (int)$i;
    settype
    $i = 1;
    settype($i,'float');
    floatval
    $i = 1;
    $j = floatval ($i)
    安全
    function strReplace($str)
    {
    $strResult = $str;
    if(!get_magic_quotes_gpc())//判断设置是否开启
    {
    $strResult = addslashes($strResult);//转换sql语句特殊字符
    }
    return $strResult;
    }
    function quotes($content)
    {
    //如果magic_quotes_gpc=Off,那么就开始处理
    if (!get_magic_quotes_gpc())
    {
    //判断$content是否为数组
    if (is_array($content))
    {
    //如果$content是数组,那么就处理它的每一个单无
    foreach ($content as $key=>$value)
    {
    $content[$key] = addslashes($value);
    }
    }
    else
    {
    //如果$content不是数组,那么就仅处理一次
    addslashes($content);
    }
    }
    //返回$content
    return $content;
    }
    编码转换
    string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
    iconv();
    时间
    date_default_timezone_set("PRC");
    date("Y-m-d H:i:s");
    time();
    date("Y-m-d H:i:s",time()+3600)
    ini_set('date.timezone', 'PRC');
    msec sec microtime() 以秒返回时间戳 explode(' ', microtime())
    魔术方法
    __construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。
    __destruct() 当删除一个对象或对象操作终止的时候,调用该方法。
    __get() 当试图读取一个并不存在的属性的时候被调用。
    __set() 当试图向一个并不存在的属性写入值的时候被调用。
    __call() 当试图调用一个对象并不存在的方法时,调用该方法。
    __toString() 当打印一个对象的时候被调用
    __clone() 当对象被克隆时,被调用
    __isset()
    __unset()
    __autoload($classname)
    __sleep()
    __wakeup()
    系统常量
    __FILE__ 当前文件名
    __LINE__ 当前行数
    __FUNCTION__ 当前函数名
    __CLASS__ 当前类名
    __METHOD__ 当前对象的方法名
    PHP_OS 当前系统
    PHP_VERSION php版本
    DIRECTORY_SEPARATOR 根据系统决定目录的分隔符 /\
    PATH_SEPARATOR 根据系统决定环境变量的目录列表分隔符 ; :
    E_ERROR 1
    E_WARNING 2
    E_PARSE 4
    E_NOTICE 8
    M_PI    3.141592
    $_SERVER
    $_ENV 执行环境提交至脚本的变量
    $_GET
    $_POST
    $_REQUEST
    $_FILES
    $_COOKIE
    $_SESSION
    $_GLOBALS
    输出
    echo   //Output one or more strings
    print    //Output a string
    print_r()  //打印关于变量的易于理解的信息。
    var_dump()  //打印变量的相关信息
    var_export()  //输出或返回一个变量的字符串表示
    printf("%.1f",$num)  //Output a formatted string
    sprintf()  //Return a formatted string
    错误处理
    @1/0
    error_reporting(E_ALL) 显示所有错误
    error_reporting(0)
    trigger_error("Cannot divide by zero", E_USER_ERROR);
    try
    {
    throw new Exception("执行失败");
    }
    catch (Exception $ex)
    {
    echo $ex;
    }
    error_reporting(E_ERROR | E_WARNING | E_PARSE); 用来配置错误信息回报的等级
    字符串处理
    string trim("eee ") trim ('ffffe','e')  //ltrim rtrim
    array explode(".", "fff.ff.f") 按指定字符切割
    string implode(".", $array)  别名:join   把数组值数据按指定字符连接起来
    array str_split("eeeeeeee",4) 按长度切割字符串
    array split("-","fff-ff-f") 按指定字符切割
    int strlen('ffffffff')  取字符长度
    string substr ( string $string , int $start [, int $length ] )
    substr($a,-2, 2) 截取字符
    int substr_count($text, 'is') 字符串出现的次数
    string strstr($text, 'h') 第一次出现h后的字符串   //别名:strchr
    int strpos($text, 'h') 第一次出现h的位置
    strrpos();最后一次出现h的位置
    strrchr('aa.jpg','.'); .jpg
    str_replace('a', 'ttt', $t) 把$t里的'a'替换为'ttt'
    strtr($t,'is','pef') 把$t中i替换成p,s替换成e,f被忽略
    strtr("hi all, I said hello", array("hello" => "hi")) 把'hello'转换成'hi'
    string md5_file('1.txt',false) 文件数据md5加密
    int strcmp(string str1, string str2) 字符串比较
    int strcasecmp(string str1, string str2) 忽略大小写
    string str_pad($i, 10, "-=", STR_PAD_LEFT) 在原字符左边补'-=',直到新字符串长度为10
    STR_PAD_RIGHT
    STR_PAD_BOTH
    string str_repeat('1', 5) 重复5个1
    void parse_str('id=11'); echo $id; 将字串符解析为变量
    array preg_grep("/    (\d+)?\.\d+$/", array(11.2,11,11.2)) 匹配数据
    array preg_split ("/[\s,]+/", "hypertext language,programming"); 按指定的字符切割
    array pathinfo(string path [, int options]) 返回文件路径的信息
    string basename ( string path [, string suffix] ) 返回路径中的文件名部分
    string dirname ( string path )  $_SERVER[PHP_SELF]  返回路径中的目录部分
    string nl2br("foo isn't\n bar") "foo isn't<br> bar" 把换行转成<br>
    string chr ( int ascii )  chr(97) ---> a
    int ord('a')  97
    mixed str_word_count ( string string [, int format [, string charlist]] )
    string str_shuffle ('abc') 打乱字符串顺序
    string strrev($str) *         翻转一个字符串
    string strtolower($str) *     将字符串 $str 的字符全部转换为小写的
    string strtoupper($str) *     将字符串 $str 的字符全部转换为大写的
    string ucfirst ($str)   *       将字符串 $str 的第一个单词的首字母变为大写。
    string ucwords($str)    *        将字符串 $str 的每个单词的首字母变为大写。
    string addslashes("I'm") I\'m 使用反斜线引用字符串 这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)
    get_magic_quotes_gpc()
    string stripcslashes("I\'m") I'm 将用addslashes()函数处理后的字符串返回原样
    strip_tags("<p>tt</p>", '<p>') 去除html、xml、php标记,第二个参数用来保留标记
    string urlencode(string str)
    string urldecode(string str)
    string htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES) 转换特殊字符为HTML字符编码
    &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
    ENT_COMPAT –对双引号进行编码,不对单引号进行编码
    ENT_QUOTES –对单引号和双引号进行编码
    ENT_NOQUOTES –不对单引号或双引号进行编码
    string htmlentities('<p>ff</p>', ENT_QUOTES) 转换特殊字符为HTML字符编码,中文会转成乱码
    数组处理
    int count( mixed var [, int mode] ) 别名:sizeof() 取数组长度
    string implode(".", $array)  别名:join   把数组值数据按指定字符连接起来
    array explode(".", "fff.ff.f") 按指定字符切割
    array range(0, 6, 2) 返回数组 array(0,2,4,6) 第一个参数为起使数,第二个参数为结束数,第三个参数为数据增加步长
    void unset ( mixed var [, mixed var [, ...]] )
    array array_pad ($a, 5, 's')用's'将数组填补到指定长度
    bool shuffle ( array $array )  将数组打乱
    mixed array_rand ( array input [, int num_req] )从数组中随机取出一个或多个单元的索引或键名
    array array_count_values ( array input )统计数组中所有的值出现的次数
    array array_combine ( array keys, array values ) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
    bool array_key_exists ( mixed key, array search )检查给定的键名或索引是否存在于数组中
    mixed array_search ( mixed needle, array haystack [, bool strict] )在数组中搜索给定的值,如果成功则返回相应的键名
    bool is_array ( mixed var )
    bool in_array ( mixed needle, array haystack [, bool strict] )检查数组中是否存在某个值
    number array_sum ( array array )计算数组中所有值的和
    array array_unique ( array array )移除数组中重复的值
    mixed array_shift ( array &array )将数组开头的单元移出数组
    int array_unshift ( array &array, mixed var [, mixed ...] )在数组开头插入一个或多个单元
    int array_push($a, "3", 1) 把'3'、'1'压入$a,将一个或多个单元压入数组的末尾(入栈),第二个参数开始就是压入的数据
    mixed array_pop ( array &array )将数组最后一个单元弹出(出栈)
    mixed reset ( array &array )将数组的内部指针指向第一个单元
    mixed current ( array &array ) 返回数组中的当前单元 值
    mixed next ( array &array )
    mixed prev ( array &array )
    mixed end ( array &array ) 返回数组中的最后一个单元 值
    mixed key ( array &array ) 返回数组中的当前个单元 键
    array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回数组中所有的键名
    array array_values ( array input ) 返回数组中所有的值
    array array_splice ( array $input, int offset [, int length [, array replacement]] ) 把数组中的一部分去掉并用其它值取代
    array array_merge ( array array1 [, array array2 [, array ...]] )合并一个或多个数组
    array array_flip ( array trans )交换数组中的键和值
    int extract( array var_array [, int extract_type [, string prefix]] ) 从数组中将变量导入到当前的符号表
    array compact ( mixed varname [, mixed ...] ) 建立一个数组,包括变量名和它们的值
    bool sort ( array &array [, int sort_flags] )从最低到最高重新安排
    bool natsort($a) 用“自然排序”算法对数组排序
    bool rsort ( array &array [, int sort_flags] )对数组进行逆向排序(最高到最低)
    bool asort ( array &array [, int sort_flags] )对数组进行排序并保持索引关系
    bool arsort ( array &array [, int sort_flags] ) 对数组进行逆向排序并保持索引关系
    bool ksort ( array &array [, int sort_flags] )对数组按照键名排序
    bool krsort ( array &array [, int sort_flags] )对数组按照键名逆向排序
    array array_filter ( array input [, callback callback] ) 用回调函数过滤数组中的单元
    bool array_walk ( array &array, callback funcname [, mixed userdata] ) 对数组中的每个成员应用用户函数
    array array_map ( callback callback, array arr1 [, array ...] )将回调函数作用到给定数组的单元上
    array array_fill ( int start_index, int num, mixed value ) 用给定的值填充数组
    array_fill(5, 3, 'a')-->array(5=>'a',6=>'a',7=>'a')
    array array_chunk ( array input, int size [, bool preserve_keys] )将一个数组分割成多个
    smarty
    模板引擎将不分析
    <!--{literal}-->
    <script>
    function t() {
    }
    </script>
    <!--{/literal}-->
    读取配置文件
    <!--{config_load file="config.s"}-->
    <!--{#site_url#}-->
    <!--{$smarty.config.site_url}-->
    引入文件
    <!--{include file="index2.html"}-->
    <!--{include_php file="/path/to/load_nav.php"}--> $trusted_dir 指定目录下的文件
    捕获模板输出的数据
    <!--{capture name='eee'}-->
    fffffffff
    <!--{/capture}-->
    <!--{$smarty.capture.eee}-->
    循环
    <{section name=loop loop=$News_IN}>
    <{$News_IN[loop].NewsID}>
    <{/section}>
    <!--{section name=t loop=$data}-->
    <tr>
    <td><!--{$data[t].username}--></td>
    </tr>
    <!--{/section}-->
    <{foreach from=$newsArray item=newsID key=k}>
    新闻编号:<{$newsID.newsID}><br>
    新闻内容:<{$newsID.newsTitle}><br><hr>
    <{/foreach}>
    判断
    <!--{if true}-->
    1111
    <!--{else}-->
    22222222
    <!--{/if}-->
    时间
    {$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}
    %Y年%m月%d日 乱码
    <!--{$smarty.now|date_format:"%Y年%m月%d日 %H时%M分%S秒"}-->
    修改插件:plugins/modifier.date_format.php
    $format = mb_convert_encoding($format,'gbk','utf-8');
    return mb_convert_encoding(strftime($format, $timestamp),'utf-8','gbk');
    局部不缓存
    html:
    <!--{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}-->
    <!--{cacheless  a="aaa" b="bbbb"}-->
    <!--{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}-->
    <!--{/cacheless}-->
    php:
    $smarty->register_block('cacheless', 'smarty_block_dynamic', false);//true:缓存,false:不缓存
    function smarty_block_dynamic($param, $content, &$smarty)
    {
    return $content;
    }
    php:
    function insert_kk()//方法名前必须有"insert"
    {
    return date('Y-m-d H:i:s');
    }
    html:
    <!--{insert name="kk"}-->
    自定义方法
    注册方法
    php
    $smarty->register_function('test1', 'test');
    function test($p)
    {
    return 'ffffffffff';
    }
    html:
    <!--{test1 name="ff"}-->
    ------------------------------------------------
    方法自定义
    插件文件方式定义方法
    function.test.php 文件存在plugins目录下,方法名:smarty_function_test($params, &$smarty)
    function smarty_function_test($params, &$smarty)
    {
    return 'fff';
    }
    html调用:
    <!--{test name='aa' p='ff'}-->
    ----------------------------------------------------
    插入方法
    插件文件:insert.kk.php文件存于plugins目录下
    function smarty_insert_kk()
    {
    return date('Y-m-d H:i:s');
    }
    php:
    function insert_kk()//方法名前必须有"insert"
    {
    return date('Y-m-d H:i:s');
    }
    html:
    <!--{insert name="kk"}-->
    -------------------------------------------------
    管道符自定义方法
    插件文件方式定义方法
    modifier.test.php 文件存在于plugins目录下,方法名: function smarty_modifier_test($str, $str2)
    function smarty_modifier_test($str, $str2)
    {
    return $str.$str2;
    }
    html调用:
    <!--{'ff'|test:'tt'}-->
    php:
    function eee($a)
    {
    return 'ffffffffffffff';
    }
    html:
    <!--{''|@eee}-->
    if语句
    eq相等,
    ne、neq不相等,
    gt大于
    gte、ge大于等于,
    lte、le 小于等于,
    not非, mod求模。
    is [not] div by是否能被某数整除,
    is [not] even是否为偶数,
    $a is [not] even by $b 即($a / $b) % 2 == 0
    is [not] odd是否为奇
    $a is not odd by $b即($a / $b) % 2 != 0
    XML
    sax
    xml:
    <--?xml version="1.0" encoding="utf-8"?-->
    <books>
    <book>
    <author>Jack Herrington</author>
    <title>PHP Hacks</title>
    <publisher>O'Reilly</publisher>
    </book>
    <book>
    <author>Jack Herrington</author>
    <title>Podcasting Hacks</title>
    <publisher>O'Reilly</publisher>
    </book>
    <book>
    <author>作者</author>
    <title>标题</title>
    <publisher>出版者</publisher>
    </book>
    </books>
    php:
    $g_books = array();
    $g_elem = null;
    function startElement( $parser, $name, $attrs )
    {
    global $g_books, $g_elem;
    if ( $name == 'BOOK' ) $g_books []= array();
    $g_elem = $name;
    }
    function endElement( $parser, $name )
    {
    global $g_elem;
    $g_elem = null;
    }
    function textData( $parser, $text )
    {
    global $g_books, $g_elem;
    if ( $g_elem == 'AUTHOR' ||
    $g_elem == 'PUBLISHER' ||
    $g_elem == 'TITLE' )
    {
    $g_books[ count( $g_books ) - 1 ][ $g_elem ] = $text;
    }
    }
    $parser = xml_parser_create();
    xml_set_element_handler( $parser, "startElement", "endElement" );
    xml_set_character_data_handler( $parser, "textData" );
    $f = fopen( '1.xml', 'r' );
    while($data = fread( $f, 4096 ))
    {
    xml_parse( $parser, $data );
    }
    xml_parser_free( $parser );
    foreach( $g_books as $book )
    {
    echo $book['TITLE']." - ".$book['AUTHOR']." - ";
    echo $book['PUBLISHER']."<br>";
    }
    DomDocument()
    xml:
    <--?xml version="1.0" encoding="utf-8"?-->
    <books>
    <book>
    <author>Jack Herrington</author>
    <title>PHP Hacks</title>
    <publisher>O'Reilly</publisher>
    </book>
    <book>
    <author>Jack Herrington</author>
    <title>Podcasting Hacks</title>
    <publisher>O'Reilly</publisher>
    </book>
    <book>
    <author>作者</author>
    <title>标题</title>
    <publisher>出版者</publisher>
    </book>
    </books>
    php读取:
    $doc = new DOMDocument();
    $doc->load( "1.xml");
    $books = $doc->getElementsByTagName( "book" );
    foreach( $books as $book )
    {
    $authors = $book->getElementsByTagName( "author" );
    $author = $authors->item(0)->nodeValue;
    $publishers = $book->getElementsByTagName( "publisher" );
    $publisher = $publishers->item(0)->nodeValue;
    $titles = $book->getElementsByTagName( "title" );
    $title = $titles->item(0)->nodeValue;
    echo "$title - $author - $publisher<br>";
    }
    php生成:
    $books = array();
    $books [] = array(
    'title' => 'PHP Hacks',
    'author' => 'Jack Herrington',
    'publisher' => "O'Reilly"
    );
    $books [] = array(
    'title' => 'Podcasting Hacks',
    'author' => 'Jack Herrington',
    'publisher' => "O'Reilly"
    );
    $doc = new DOMDocument();
    $doc->formatOutput = true;
    $r = $doc->createElement( "books" );
    $doc->appendChild( $r );
    foreach( $books as $book )
    {
    $b = $doc->createElement( "book" );
    $author = $doc->createElement( "author" );
    $author->appendChild($doc->createTextNode( $book['author'] ));
    $b->appendChild( $author );
    $title = $doc->createElement( "title" );
    $title->appendChild($doc->createTextNode( $book['title'] ));
    $b->appendChild( $title );
    $publisher = $doc->createElement( "publisher" );
    $publisher->appendChild($doc->createTextNode( $book['publisher'] ));
    $b->appendChild( $publisher );
    $r->appendChild( $b );
    }
    echo $doc->saveXML();
    echo $doc->save('222.xml');
    SimpleXML
    xml:
    <books>
    <book>
    <author>Jack Herrington</author>
    <title>PHP Hacks</title>
    <publisher>O'Reilly</publisher>
    </book>
    </books>
    php:
    $xml = new SimpleXMLElement('1.xml', NULL, TRUE);
    echo $xml->book[0]->author."___".$xml->book[0]->title."___".$xml->book[0]->publisher;
    正则
    ereg系列的正则表达式不需要定届符,preg系列的才需要,并且定界符可以自己选择,只有前后一对就行,比如我们一般使用/符号,但是如果里面有/需要匹配那么就需要使用\/来表示,当/需要出现多次的时候,这样就不方便,我们就可以使用其他的定界符,比如|
    正则特殊字符
    . \ + * ? [     ] $ ( ) { } = ! < > | :
    由原子(普通字符,如英文字符)、
    元字符(有特殊功用的字符)
    模式修正字符
    一个正则表达式中,至少包含一个原子
    全部符号解释
    \  将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。
    匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,    也匹配 '\n' 或 '\r' 之后的位置。
    « mysql一个表中导入另一个表某个字段的...常用的CSS命名规范 »
    -->
叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
PHP通过soap调用.net接口asmx文件 PHP通过soap调用.ne
PHP开发环境配置 PHP开发环境配置
wamp集成环境的虚拟域名配置方法 wamp集成环境的虚拟
wamp独立安装配置 wamp独立安装配置
关注排行RANKING
1

PHP通过soap调用.net接口asmx文件

PHP通过soap调用.net接口asmx文件 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

2

PHP开发环境配置

PHP开发环境配置 下载PHP安装程序,并解压缩。(下载页面为http: www php net downloads php,下...

3

wamp集成环境的虚拟域名配置方法

wamp集成环境的虚拟域名配置方法 最近,发现身边很多人用wamp集成环境,这个虽然比较快捷,一步到位,但是只能访...

4

wamp独立安装配置

wamp独立安装配置 apache 中的 httpd conf LoadModule php5_module "D: lamp php5 php5apache2_2 dll " 加载模块并开启

5

php 获取今天明天昨天时间戳

php 获取今天明天昨天时间戳 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

6

PHP获取服务器信息 MySql版本和浏览器信息

PHP获取服务器信息 MySql版本和浏览器信息 1、$_SESSION[ PHP_SELF ] -- 获取当前正在执行脚本的文件名 2...

7

smarty 截取字符串函数 truncate的用法

smarty 截取字符串函数 truncate的用法 smarty truncate 截取字符串,从字符串开始处截取某长度的字符,默认的长度为8...

8

php编程常用函数方法等

php编程常用函数方法等 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网站...

9

如何让ThinkPHP的模板引擎达到最佳效率

如何让ThinkPHP的模板引擎达到最佳效率 默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎。内置模板引擎支持模板文...