php常用function(1)

冷门的function:

一、mb_substr()  //用来截取中文或英文的函数

function sub_str($str, $length = 0, $append = true)
{
    $str = trim($str);
    $strlength = strlen($str);

    if ($length == 0 || $length >= $strlength)
    {
        return $str;  //截取长度等于0或大于等于本字符串的长度,返回字符串本身
    }
    elseif ($length < 0)  //如果截取长度为负数
    {
        $length = $strlength + $length;//那么截取长度就等于字符串长度减去截取长度
        if ($length < 0)
        {
            $length = $strlength;//如果截取长度的绝对值大于字符串本身长度,则截取长度取字符串本身的长度
        }
    }

    if (function_exists('mb_substr'))
    {
        $newstr = mb_substr($str, 0, $length, EC_CHARSET);
    }
    elseif (function_exists('iconv_substr'))
    {
        $newstr = iconv_substr($str, 0, $length, EC_CHARSET);
    }
    else
    {
        //$newstr = trim_right(substr($str, 0, $length));
        $newstr = substr($str, 0, $length);
    }

    if ($append && $str != $newstr)
    {
        $newstr .= '...';
    }

    return $newstr;
}

  http://www.php100.com/html/php/hanshu/2013/0905/4695.html

  http://www.cnblogs.com/whendream/archive/2011/10/02/2198124.html

 

二、mb_strimwidth — 获取按指定宽度截断的字符串,截取中文等常用

  

按字符宽度获取

mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

参数说明:

$str //指定字符串

$start //指定从何处开始截取

$width //截取文字的宽度

$trimmarker //超过$width数字后显示的字符串

$encoding //设置字符编码【例如:UTF-8】

举个例子来说明

<?php

$string="242432反对感是456犯得上广泛大使馆地方7890";
echo mb_strimwidth($string,0,14,'...','UTF-8');
?>

输出的结果就是:242432反对...

  http://www.cnblogs.com/devcjq/articles/3211783.html

 

三、strip_tags  //从字符串中删除html和php的标记

  

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>

output:

Test paragraph. Other text
<p>Test paragraph.</p> <a href="#fragment">Other text</a>

http://php.net/manual/en/function.strip-tags.php

 

四、htmlspecialchars() //转换html特殊字符

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

http://php.net/manual/en/function.htmlspecialchars.php

 

五、get_cfg_var() //获取php配置选项的值

<?php
//#my ini file
//A = 1
//B = any-thing
//C = yes
//D = /some/path/file

get_cfg_var('A') // returns '1'
get_cfg_var('B') // returns 'any-thing'
get_cfg_var('C') // returns '1', wait, why?
get_cfg_var('D') // returns '/some/path/file'
?>

I had my setting = yes and then checked it as ==="yes" for epic fail.

http://php.net/manual/zh/function.get-cfg-var.php

 

六、uniqid()  //返回以微秒计的当前时间,生成一个唯一id

//state参数用于防止CSRF攻击,成功授权后回调时会原样带回
     $_SESSION['state'] = md5(uniqid(rand(), TRUE));  //生成唯一的方法

http://www.w3school.com.cn/php/func_misc_uniqid.asp

 

七、curl_init()  //用curl发送

function do_post($url, $data)    //qq oauth里面的代码,封装的不错
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
    curl_setopt($ch, CURLOPT_POST, TRUE); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_URL, $url);
    $ret = curl_exec($ch);

    curl_close($ch);
    return $ret;
}

 

八、strpos + stripos + strrpos + strripos

  都是查找一个字符串在另一个字符串中的位置, strrpos 是表示最后一次出现的位置, strripos,多个 i ,表示大小不敏感。

<?php
echo strrpos("hello world, my love", "o"); //返回查找到的最后一次出现的位置
?>
输出:
17

 

九、parse_str 把字符串解析到变量中,通常用来解析url带的参数

  parse_url

echo "<br/>==============parse_str================<br/>";
parse_str("id=23&name=bill&age=26");
echo "不带参数,以变量形式输出:".$id.' '.$name." ".$age;
echo "<br/>==============parse_str带参数================<br/>";
parse_str("id=23&name=bill&age=26",$myarray);
print_r($myarray);

输出:
==============parse_str================
不带参数,以变量形式输出:23 bill 26
==============parse_str带参数================
Array ( [id] => 23 [name] => bill [age] => 26 ) 

十、pase_url 其实没啥意思,不如用上面的parse_str呢

echo "<br/>==============parse_url================<br/>";
$url1 = "http://www.baidu.com/age/5/name/blabla/index.php";
$url2 = "http://www.hi-nancy.com/index.html?name=wuhaha&age=78";
print_r(parse_url($url1));
print_r(parse_url($url2));

输出
Array ( [scheme] => http [host] => www.baidu.com [path] => /age/5/name/blabla/index.php ) 

Array ( [scheme] => http [host] => www.hi-nancy.com [path] => /index.html [query] => name=wuhaha&age=78 ) 

 

十一、strtotime的一个坑,将英文或字符,转换为时间戳

echo '<br/>==============测试时间戳位数===============<br/>';
echo time();
$str = time();
echo "长度是:".strlen($str).'<br/>';  //1435821467长度是:10  时间戳长度为10位

echo $str2 = pow(2, 31); //2147483648长度是:10 mysql int的范围是,2的31次方 +-1 ,单但如果是unsigned的话,就是32次方
echo "长度是:".strlen($str2).'<br/>';  //时间戳长度为10位

echo strtotime("2038/1/19 04:14:07");   //2147483647 , 超过这个时间点,变成空了,注意啊

 

 

 

 

常用function()

posted @ 2015-03-26 13:33  zyliang  阅读(509)  评论(0编辑  收藏  举报