点击换验证码

<a href="javascript:;"><img onclick="this.src='{:U('Reglog/vcode')}?'+Math.random()" width=""  src="{:U('Reglog/vcode')}" /></a>

TP上一条下一条

 $prev=$artical->where("id < $id")->where(array('cid'=>$cid))->order('id desc')->find();

 $next=$artical->where("id > $id")->where(array('cid'=>$cid))->order('id asc')->find();
<if condition='$next'>
下一篇:<a href='{:U("Artical/index",array(id=>$next['id']))}' class="f6">{$next.name}</a><br />
<else />
<strong>下一篇:没有了</strong><br/>
</if> <if condition='$prev'>
上一篇:<a href='{:U("Artical/index",array(id=>$prev['id']))}' class="f6">{$prev.name}</a>
<else />
<strong>上一篇:没有了</strong>
</if>

curl 模拟POST、GET请求 可以用于访问接口

//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
function curl_request($url,$post='',$cookie='', $returnCookie=){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, );
curl_setopt($curl, CURLOPT_AUTOREFERER, );
curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
if($post) {
curl_setopt($curl, CURLOPT_POST, );
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
}
if($cookie) {
curl_setopt($curl, CURLOPT_COOKIE, $cookie);
}
curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
curl_setopt($curl, CURLOPT_TIMEOUT, );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, );
$data = curl_exec($curl);
if (curl_errno($curl)) {
return curl_error($curl);
}
curl_close($curl);
if($returnCookie){
list($header, $body) = explode("\r\n\r\n", $data, );
preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
$info['cookie'] = substr($matches[][], );
$info['content'] = $body;
return $info;
}else{
return $data;
}
}

EXCEL导入

/**
* 数据导入
* @param string $file excel文件
* @param string $sheet
* @return string 返回解析数据
* @throws PHPExcel_Exception
* @throws PHPExcel_Reader_Exception
*/
function importExecl($file='', $sheet=){
$file = iconv("utf-8", "gb2312", $file); //转码
if(empty($file) OR !file_exists($file)) {
die('file not exists!');
}
require_once './Classes/PHPExcel.php'; //引入PHP EXCEL类
$objRead = new PHPExcel_Reader_Excel2007(); //建立reader对象
if(!$objRead->canRead($file)){
$objRead = new PHPExcel_Reader_Excel5();
if(!$objRead->canRead($file)){
die('No Excel!');
}
} $cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'); $obj = $objRead->load($file); //建立excel对象
$currSheet = $obj->getSheet($sheet); //获取指定的sheet表
$columnH = $currSheet->getHighestColumn(); //取得最大的列号
$columnCnt = array_search($columnH, $cellName);
$rowCnt = $currSheet->getHighestRow(); //获取总行数 $data = array();
for($_row=; $_row<=$rowCnt; $_row++){ //读取内容
for($_column=; $_column<=$columnCnt; $_column++){
$cellId = $cellName[$_column].$_row;
$cellValue = $currSheet->getCell($cellId)->getValue();
//$cellValue = $currSheet->getCell($cellId)->getCalculatedValue(); #获取公式计算的值
if($cellValue instanceof PHPExcel_RichText){ //富文本转换字符串
$cellValue = $cellValue->__toString();
} $data[$_row][$cellName[$_column]] = $cellValue;
}
} return $data;
}

EXCEL导出

//导出
function outExecl($data){
//var_dump($data);
require_once './Classes/PHPExcel.php'; // 首先创建一个新的对象 PHPExcel object
$objPHPExcel = new PHPExcel(); // 设置文件的一些属性,在xls文件——>属性——>详细信息里可以看到这些值,xml表格里是没有这些值的
$objPHPExcel
->getProperties() //获得文件属性对象,给下文提供设置资源
->setCreator( "Maarten Balliauw") //设置文件的创建者
->setLastModifiedBy( "Maarten Balliauw") //设置最后修改者
->setTitle( "Office 2007 XLSX Test Document" ) //设置标题
->setSubject( "Office 2007 XLSX Test Document" ) //设置主题
->setDescription( "Test document for Office 2007 XLSX, generated using PHP classes.") //设置备注
->setKeywords( "office 2007 openxml php") //设置标记
->setCategory( "Test result file"); //设置类别
// 位置aaa *为下文代码位置提供锚
// 给表格添加数据
$objPHPExcel->setActiveSheetIndex() //设置第一个内置表(一个xls文件里可以有多个表)为活动的
->setCellValue( 'A1', '姓名' ) //给表的单元格设置数据
->setCellValue( 'B1', '球队名称' ) //数据格式可以为字符串
->setCellValue( 'C1', '场上位置' ) //数字型
->setCellValue( 'D1', '称号资历' ) //
->setCellValue( 'E1', '籍贯省份' ) //布尔型
->setCellValue( 'F1', '籍贯城市' ) //布尔型
->setCellValue( 'G1', '联系电话' ) //布尔型
->setCellValue( 'H1', '注册状态' ) //布尔型
->setCellValue( 'I1', '经纪人' ) //布尔型
->setCellValue( 'J1', '比赛打分' ) //布尔型
->setCellValue( 'K1', '伤病状态' ) //布尔型
->setCellValue( 'L1', '比赛时间' ); //布尔型 $i=;
foreach ($data as $k => $v) {
// echo "1";
// var_dump($v); if($v['z_state']==''){
$v['z_state']="已注册";
} $objPHPExcel->setActiveSheetIndex() //设置第一个内置表(一个xls文件里可以有多个表)为活动的
->setCellValue( 'A'.$i, $v['bname'] ) //给表的单元格设置数据
->setCellValue( 'B'.$i, $v['tname'] ) //数据格式可以为字符串
->setCellValue( 'C'.$i, $v['position'] ) //数字型
->setCellValue( 'D'.$i, $v['qualifications'] ) //
->setCellValue( 'E'.$i, $v['pname'] ) //布尔型
->setCellValue( 'F'.$i, $v['cname'] ) //布尔型
->setCellValue( 'G'.$i, $v['phone'] ) //布尔型
->setCellValue( 'H'.$i, $v['z_state'] ) //布尔型
->setCellValue( 'I'.$i, $v['name'] ) //布尔型
->setCellValue( 'J'.$i, $v['score'] ) //布尔型
->setCellValue( 'K'.$i, $v['b_state'] ) //布尔型
->setCellValue( 'L'.$i, $v['time'] ); //布尔型
$i++;
} //得到当前活动的表,注意下文教程中会经常用到$objActSheet
$objActSheet = $objPHPExcel->getActiveSheet();
// 位置bbb *为下文代码位置提供锚
// 给当前活动的表设置名称
$objActSheet->setTitle('Simple2222'); // 生成2007excel格式的xlsx文件
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="01simple.xlsx"');
header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory:: createWriter($objPHPExcel, 'Excel2007');
$objWriter->save( 'php://output');
exit;
}

PHPExcel包:http://www.jb51.net/codes/194070.html

php常用代码段的更多相关文章

  1. PyTorch常用代码段整理合集

    PyTorch常用代码段整理合集 转自:知乎 作者:张皓 众所周知,程序猿在写代码时通常会在网上搜索大量资料,其中大部分是代码段.然而,这项工作常常令人心累身疲,耗费大量时间.所以,今天小编转载了知乎 ...

  2. Java常用代码段 - 未完待续

    记录一些自己写项目常用的代码段. 格式化常用日期格式 Date date = new Date(System.currentTimeMillis()); DateFormat d3 = DateFor ...

  3. PyTorch 常用代码段整理

    基础配置 检查 PyTorch 版本 torch.__version__               # PyTorch version torch.version.cuda              ...

  4. JavaScript常用代码段

    总结一下在各种地方看到的还有自己使用的一些实用代码 1)区分IE和非IE浏览器 if(!+[1,]){ alert("这是IE浏览器"); } else{ alert(" ...

  5. C#获取本地IP地址[常用代码段]

    获得当前机器的IP代码,假设本地主机为单网卡 string strHostName = Dns.GetHostName(); //得到本机的主机名 IPHostEntry ipEntry = Dns. ...

  6. Erlang常用代码段

    十六进制字符串转为二进制 hex_to_bin(Bin) -> hex2bin(Bin). hex2bin(Bin) when is_binary(Bin) -> hex2bin(bina ...

  7. SQL常用代码段

    --STUFF 函数将字符串插入另一字符串.它在第一个字符串中从开始位置删除指定长度的字符:然后将第二个字符串插入第一个字符串的开始位置. STUFF ( character_expression , ...

  8. PHP常用代码段:

    1.PHP加密解密   function encryptDecrypt($key, $string, $decrypt){      if($decrypt){          $decrypted ...

  9. php 常用代码段

    1.写文件 $fp = fopen("jsapi_ticket.json", "w+"); fwrite($fp, $str); fclose($fp); 2. ...

随机推荐

  1. 【Linux】- 对find,xargs,grep和管道的一些理解

    问题 相信大家都知道在目录中搜索含有固定字符串文件的命令: find . -name '*.py' |xargs grep test 刚开始的时候,我不熟悉xargs命令,所以直接使用的命令是: fi ...

  2. 因为NLS_LANG 造成 Oracle数据库丢失 中文字符集兼容问题的处理.

    接着上一封blog. 因为sqlplus的 乱码问题 我修改了 注册表里面 NLS_LANG 的 value值.主要改动为: NLS_LANG source: SIMPLIFIED CHINESE_C ...

  3. Mysql中关键词执行顺序

    MySQL的语句执行顺序 MySQL的语句一共分为11步,最先执行的总是FROM操作,最后执行的是LIMIT操作.其中每一个操作都会产生一张虚拟的表,这个虚拟的表作为一个处理的输入,只是这些虚拟的表对 ...

  4. 双主双写、只备份某些表且要在建表ID自增

    先展示下最终实现的配置 主1的配置(重要的,其他略) log-bin = mysql-bin #必须要有binlog auto_increment_offset = 1 #自增ID的初始值 auto_ ...

  5. ETL工具之Kettle的简单使用一(不同数据库之间的数据抽取-转换-加载)

    ETL工具之Kettle将一个数据库中的数据提取到另外一个数据库中: 1.打开ETL文件夹,双击Spoon.bat启动Kettle 2.资源库选择,诺无则选择取消 3.选择关闭 4.新建一个转换 5. ...

  6. [一]SpringBoot 之 HelloWorld

    (1)新建一个Maven Java工程 (2)在pom.xml文件中添加Spring BootMaven依赖 2.1在pom.xml中引入spring-boot-start-parent spring ...

  7. [洛谷P1642]规划

    题目大意:有一棵$n(n\leqslant100)$个点的树,每个点有两个权值$a,b$,要求选择一个$m$个点的连通块$S$,最大化$\dfrac{\sum\limits_{i\in S}a_i}{ ...

  8. Tajo--一个分布式数据仓库系统(设计架构)

    上一篇Tajo--一个分布式数据仓库系统(概述)废话了一通,下面介绍一下Tajo的体系结构.以及官方的实验成果吧 一.体系架构 Tajo采用了Master-Worker架构(下图虚线框目前还在计划中) ...

  9. Codeforces709

    A Kolya is going to make fresh orange juice. He has n oranges of sizes a1, a2, ..., an. Kolya will p ...

  10. 【BZOJ1068】压缩(动态规划)

    [BZOJ1068]压缩(动态规划) 题面 BZOJ 洛谷 题解 比较简单的\(dp\) 设\(f[i][j]\)表示当前已经匹配到了原串的第\(i\)个位置,上一个\(M\)在第\(j\)个字符之后 ...