php小功能集合

1.时间处理

刚刚 一天前 一个月前

public function timeCode($param)
{
    $now_time = time();
    if ($now_time - $param < 60 * 3) {
        $putTime = '刚刚';
    } else if ($now_time - $param < 60 * 60) {
        $putTime = ceil(($now_time - $param) / 60) . '分钟前';
    } else if ($now_time - $param < 60 * 60 * 24) {
        $putTime = ceil(($now_time - $param) / 60 / 60) . '小时前';
    } else if ($now_time - $param < 60 * 60 * 24 * 30) {
        $putTime = ceil(($now_time - $param) / 60 / 60 / 24) . '天前';
    } else {
        $putTime = ceil(($now_time - $param) / 60 / 60 / 24 / 30) . '月前';
        //$putTime = date('Y-m-d h:i:s', $param);
    }

    return $putTime;
}

2.敏感词判断和替换

/**
 * 
 * @param type $param
 * @return type  敏感词替换
 */
public function FilterWordReplace($param = '')
{
    $DisRedis = new \KIF\Cache\DisRedis();
    $senWord  = $DisRedis->get('senstive_word');
    $word     = preg_replace('/' . $senWord . '/i', "**", $param);
    return $word;
}

/**
 * 
 * @param type $pame
 * @return string
 * 敏感词判断
 */
public function doFilterWord($pame = '')
{
    $DisRedis = new \KIF\Cache\DisRedis();
    $senWord  = $DisRedis->get('senstive_word');

    $isWord = preg_match('/' . $senWord . '/i', $pame, $matchs);

    if ($isWord) {
        return $matchs;
    } else {
        return '';
    }
}

3.php转换\n 为html

nl2br();

4.获取文章的摘要

/**
 *  获取文章的摘要 
 *  
 * @param string $data
 * @param int $cut 字数 自定义
 * @param string $str
 * @return type
 */
public function cutArticle($data, $cut = 200, $str = "...")
{
    $data    = strip_tags($data);
    $pattern = "/&[a-zA-Z]+;/";
    $data    = preg_replace($pattern, '', $data);
    if (!is_numeric($cut)) {
        return $data;
    }
    if ($cut > 0) {
        $data = trim(mb_strimwidth($data, 0, $cut, $str));
    }
    return $data;
}

5.获取联想词

public function helper()
{
    $keyword = I('get.keyword', '', 'htmltotxt');
    $data    = file_get_contents("http://suggestion.baidu.com/su?wd={$keyword}&cb=");
    // $data =ltrim($data, "(");
    // $data =rtrim($data, ");");
    $data = iconv('GB2312', 'UTF-8', $data);
    //正则匹配所有中文
    $list   = preg_match_all("#(?:(?![,。?])[\xC0-\xFF][\x80-\xBF]+)+#", $data, $arr, PREG_PATTERN_ORDER);
    $tmpArr = $arr['0'];
    //去除重复
    $uniqueArr = array_unique($tmpArr);
    die(Json::minijson($uniqueArr));

}

6.大数据excel导出

/**
 * 导出数据 fput
 * @param type $param
 */
public static function exportCsvFile($file_name, $tArr = [], $dataArr = [], $num = 0)
{
    $file_name = iconv('utf-8', 'gb2312', $file_name);
    if (file_exists($file_name) && $num == 1) {
        unlink($file_name);
    }
    if ($num == 1) {
        $dataStr .= implode(',', $tArr);
        $dataStr .= "\n"; //用引文逗号分开
    }
    foreach ($dataArr as $key => $value) {
        $dataStr .= implode(',', $value);
        $dataStr .= "\n"; //用引文逗号分开
    }
    $dataStr = iconv('utf-8', 'gb2312', $dataStr);
    ob_flush();
    flush();
    file_put_contents($file_name, $dataStr, FILE_APPEND);
}

7.页面导出excel数据

/**
 * 导出数据
 * 在浏览器输出并下载
 */
public static function exportExcelHtml($title, $tArr = [], $dataArr = [])
{
    if ($tArr && $dataArr) {
        //文件名
        $filename = $title . ".xls";

        //生成HTML
        $htmlStr .= "<table border=1 style='text-align: center;'>";
        //生成头部
        $htmlStr .= "<tr>";
        foreach ($tArr as $value) {
            $htmlStr .= "<th>{$value}</th>";
        }
        $htmlStr .= "</tr>";

        //生成数据
        foreach ($dataArr as $key => $rt) {
            $htmlStr .= "<tr>";
            foreach ($rt as $k => $v) {
                $htmlStr .= "<td>{$v}</td>";
            }
            $htmlStr .= "</tr>\n";
        }

        $htmlStr .= "</table></body></html>";

        //输出数据流
        header("Content-Type: application/vnd.ms-excel;charset=utf-8");
        header("Content-type: application/octet-stream");
        header("Content-Disposition: attachment; filename=" . $filename);
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        header("Expires: 0");

        exit($htmlStr);
    }
}

8.使用phpexcel类导入导出excel

/**
 * 导入数据
 * 使用phpexcel类
 */
public function importExcel($filePath, $exts = 'xls')
{
    //如果excel文件后缀名为.xls,导入这个类
    if ($exts == 'xls') {
        Vendor('PHPExcel.PHPExcel.Reader.Excel5');
        $PHPReader = new \PHPExcel_Reader_Excel5();
    } elseif ($exts == 'xlsx') {
        Vendor('PHPExcel.PHPExcel.Reader.Excel2007');
        $PHPReader = new\PHPExcel_Reader_Excel2007();
    }
    //载入excel数据解析
    $PHPExcel           = $PHPReader->load($filePath);
    //初始化
    $objWorksheet       = $PHPExcel->getSheet(0);
    // 取得总行数  
    $highestRow         = $objWorksheet->getHighestRow();
    // 取得总列数  
    $highestColumn      = $objWorksheet->getHighestColumn();
    $highestColumnIndex = \PHPExcel_Cell::columnIndexFromString($highestColumn);

    $excelData = array();
    for ($row = 2; $row <= $highestRow; $row++) {
        for ($col = 0; $col < $highestColumnIndex; $col++) {
            $excelData[$row - 1][] = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
        }
    }
    return $excelData;
}

/**
 * 导出数据
 * 使用phpexcel类
 */
public function exportExcel($title, $tArr = [], $dataArr = [])
{
    //引入第三方excel类库
    Vendor('PHPExcel.PHPExcel');
    $objPHPExcel = new \PHPExcel();
    $objPHPExcel->setActiveSheetIndex(0);
    $dataArray   = [$tArr];
    foreach ($dataArr as $key => $value) {
        $dataArray[] = $value;
    }
    $objPHPExcel->getActiveSheet()->fromArray($dataArray, null, 'A1');
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="' . $title . xls . '"');
    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->save('php://output');
    $objPHPExcel->disconnectWorksheets();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,485评论 25 708
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,286评论 4 97
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,746评论 19 139
  • 这段时间,让我对后台产品有了一定的了解。 想尝试自己总结一下对后台产品设计和开发的一些知识。后台产品也有不同的分类...
    东东方阅读 613评论 0 7
  • 已往明星出轨,吸毒,酒驾...网友们顶多三言两语骂几天,吃瓜群众看看热闹,新闻淡了就散了。最近,一个案件当事人每每...
    37a3a0db43db阅读 318评论 0 0

友情链接更多精彩内容