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; // <a href='test'>Test</a> ?>
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()
2、解构技能,找出实现80%效果的那20%
3、不要一心二用
4、练习练习再练习!然后获得即时反馈
5、坚持,不要在低谷期放弃