热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

直接可以拿来用的PHP惯用功能代码片段(16~20)

直接可以拿来用的PHP常用功能代码片段(16~20)文章来源:jquery教程?-?http://www.jq-school.com/Show.aspx?id=328?前面已经分享了1、PHP常用功能代码片段(1~5)2、PHP
直接可以拿来用的PHP常用功能代码片段(16~20)

文章来源:jquery教程?-?http://www.jq-school.com/Show.aspx?id=328

?

前面已经分享了

1、PHP常用功能代码片段(1~5)

2、PHP常用功能代码片段(6~10)

3、PHP常用功能代码片段(11~15)

今天是第4篇,主要有截取字符串、计算一年多少个星期,返回一个星期的开始时间和结束时间(可选返回时间戳或日期)、实现递归创建多级目录、递归删除目录、检测QQ状态等功能,也就是第16到20这5个实用代码片段,希望可以帮到jquery学堂群里面的成员和广大对PHP开发的网友们提高开发效率,以下是第4篇文章。


16、PHP实现截取字符串的通用方法

/**
  * 截取字符串
  * params $string 要截取的字符串
  * params $length: 保留长度(字符数)
  * params $dot: 多余部分显示
**/
function _cutstr($string, $length, $dot = ' ...') {
    if(strlen($string) <= $length) {
        return $string;
    }
    $string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);
    $strcut = '';
    $n = $tn = $noc = 0;
    while($n = $length) {
            break;
        }    
    }
    if($noc > $length) {
        $n -= $tn;
    }
    $strcut = substr($string, 0, $n);        
    $strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);
    return $strcut.$dot;
}


17、PHP实现计算一年多少个星期,返回一个星期的开始时间和结束时间(可选返回时间戳或日期)

function getWeekStartAndEnd ($year,$week=1) {
    header("Content-type:text/html;charset=utf-8");
    date_default_timezone_set("Asia/Shanghai");
    $year = (int)$year;
    $week = (int)$week;
    //按给定的年份计算本年周总数
    $date = new DateTime;
    $date->setISODate($year, 53);
    $weeks = max($date->format("W"),52);
    //如果给定的周数大于周总数或小于等于0
    if($week>$weeks || $week<=0){
        return false;
    }
    //如果周数小于10
    if($week<10){
        $week = '0'.$week;
    }
    //当周起止时间戳
    $timestamp['start'] = strtotime($year.'W'.$week);
    $timestamp['end'] = strtotime('+1 week -1 day',$timestamp['start']);
    //当周起止日期
    $timeymd['start'] = date("Y-m-d",$timestamp['start']);
    $timeymd['end'] = date("Y-m-d",$timestamp['end']);    
    //返回起始时间戳
    return $timestamp;
    //返回日期形式
    //return $timeymd;
}


18、PHP实现递归创建多级目录的通用方法

/**
 *
 +--------------------------------------------------------------------
 * Description 递归创建目录
 +--------------------------------------------------------------------
 * @param  string $dir 需要创新的目录
 +--------------------------------------------------------------------
 * @return 若目录存在,或创建成功则返回为TRUE
 +--------------------------------------------------------------------
 * @author gongwen
 +--------------------------------------------------------------------
 */
function mkdirs($dir, $mode = 0777){ 
	if (is_dir($dir) || mkdir($dir, $mode)) return TRUE; 
	if (!mkdirs(dirname($dir), $mode)) return FALSE; 
	return mkdir($dir, $mode); 
}


19、PHP实现递归删除目录的通用方法

/**
 *
 +--------------------------------------------------------------------
 * Description 递归删除目录
 +--------------------------------------------------------------------
 * @param  string $dir 需要删除的目录
 +--------------------------------------------------------------------
 * @return 若目录不存在或册除成功则返回为TRUE
 +--------------------------------------------------------------------
 * @author gongwen
 +--------------------------------------------------------------------
 */
function rmdirs($dir){
	if (!is_dir($dir) || rmdir($dir)) return TRUE;
	if($dir_handle=opendir($dir)){
		while($filename=readdir($dir_handle)){
			if($filename!='.' && $filename!='..'){
				$subFile=$dir.'/'.$filename;
			}
			is_dir($subFile)?rmdirs($subFile):unlink($subFile);
		}
		closedir($dir_handle);
		return rmdir($dir);
	}
}


20、PHP实现检测QQ状态的通用方法

function qq_status(){
    if (empty($qq))$qq = 429590191;
    $url = 'http://wpa.qq.com/pa?p=2:'.$qq.':52';
    $Headers = get_headers($url, 1);
    if ($Headers['Location']=='http://pub.idqqimg.com/qconn/wpa/button/button_121.gif'){
        $Status = 1;  //QQ在线
    }elseif ($Headers['Location']=='http://pub.idqqimg.com/qconn/wpa/button/button_120.gif'){
        $Status = 2;  //QQ离线
    }else {
        $Status = 0;  //未知
    }
        
    Return $Status;
        
}
//测试数据
$qqwp = qq_status('429590191');  //测试QQ是否在线,返回1=在线,返回2=离线,返回0=错误
if ($qqwp==1){
    echo 'QQ在线';
}elseif ($qqwp==2){
    echo 'QQ离线';
}else {
    echo '出错了';
}


?


推荐阅读
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • ASP.NET jQuery 实例6 - 实现CheckBoxList成员全选或全取消
    本文介绍了在ASP.NET中使用jQuery实现CheckBoxList成员的全选或全取消操作。通过提供的页面代码示例,可以轻松实现该功能。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 随着前端技术的发展,越来越多的开发者开始使用react、vue等web框架,但很少有人深入理解这些框架的源码。然而,这些框架底层都是由原生的javascript构建而成。对于初学前端的人来说,可能会认为javascript很容易上手,但实际上只是因为它被高度封装了。与能够使用封装类的人相比,能够理解框架原理的人则处于另一个层面。本文将深入剖析jquery源码,探寻框架底层的原理,帮助读者更好地理解web框架的运行机制。 ... [详细]
  • 本文讨论了如何使用jQuery的load方法来获取被load页面中所有a标签的集合,类似于$("a")的用法。 ... [详细]
  • 本文介绍了在满足特定条件时如何在输入字段中使用默认值的方法和相应的代码。当输入字段填充100或更多的金额时,使用50作为默认值;当输入字段填充有-20或更多(负数)时,使用-10作为默认值。文章还提供了相关的JavaScript和Jquery代码,用于动态地根据条件使用默认值。 ... [详细]
  • jQuery实现简单的动画效果及用法详解
    本文详细介绍了使用jQuery实现简单动画效果的方法,包括显示/隐藏、向上收缩/向下展开、淡入/淡出、自定义动画等。同时提供了具体的用法示例,并解释了参数的含义和使用技巧。通过本文的学习,读者可以掌握如何使用jQuery实现各种动画效果,为网页增添生动和互动性。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • jQuery如何判断一个元素是否被点击?
    本文介绍了使用jQuery判断一个元素是否被点击的方法,并通过示例进行了具体说明。注意要指定父级,否则会执行多次。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 本文介绍了如何在Jquery中通过元素的样式值获取元素,并将其赋值给一个变量。提供了5种解决方案供参考。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
author-avatar
雨霖铃111130
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有