代码如下 |
复制代码 |
/*
* 使用POI读取EXCEL文件
*/
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
*
* @author Hanbin
*/
public class ReadExcel {
/**
* @param args the command line arguments
*/
public static void main(String[] args)throws Exception {
read("d:\demo.xls");
}
public static ArrayList read(String fileName){
ArrayList list = new ArrayList();
String sql = "";
try{
File f = new File(fileName);
FileInputStream fis = new FileInputStream(f);
HSSFWorkbook wbs = new HSSFWorkbook(fis);
HSSFSheet childSheet = wbs.getSheetAt(0);
System.out.println("行数:" + childSheet.getLastRowNum());
for(int i = 4;i<childSheet.getLastRowNum();i++){
HSSFRow row = childSheet.getRow(i);
System.out.println("列数:" + row.getPhysicalNumberOfCells());
if(null != row){
for(int k=1;k<row.getPhysicalNumberOfCells();k++){
HSSFCell cell;
cell = row.getCell((short)k);
// System.out.print(getStringCellValue(cell) + "t");
list.add(getStringCellValue(cell) + "t");
}
}
}
}catch(Exception e){
e.printStackTrace();
}
return list;
}
/**
* 获取单元格数据内容为字符串类型的数据
*
* @param cell Excel单元格
* @return String 单元格数据内容
*/
private static String getStringCellValue(HSSFCell cell) {
String strCell = "";
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
strCell = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
strCell = String.valueOf(cell.getNumericCellValue());
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
strCell = String.valueOf(cell.getBooleanCellValue());
break;
case HSSFCell.CELL_TYPE_BLANK:
strCell = "";
break;
default:
strCell = "";
break;
}
if (strCell.equals("") || strCell == null) {
return "";
}
if (cell == null) {
return "";
}
return strCell;
}
}
|
在php中采集我们用的是简单的采集方式(例如file_get_contents)就无法做到了,但是如果想模拟登录用户并采集利用它就没办法了,我们可利用CURL函数来实现模拟登录并采集数据
这里要说一些,默认情况下,PHP的CURL功能是没有开启的,所以你要自己去开启这个功能,需要在php.ini中把 ;extension= php_curl.dll 前面的 " ; " 号去掉!!!
好,我讲讲昨天晚上的程序吧,虽然最后没有成功,但是还是学习到一些东西的。
代码如下 |
复制代码 |
$login="http://www.phpyu.com/index.php?action=login";
$post_file="user=××&pw=××";
$cookie_file = tempnam('./temp','cookie');
|
/////创建一个具有唯一文件名的临时文件。 若成功,则该函数返回新的临时文件名。若失败,则返回 false。
代码如下 |
复制代码 |
$ch=curl_init($login_url); /////初始化一个CURL对象
curl_setopt($ch,CURLOPT_HEADER,0);
|
//如果你想把一个头包含在输出中,设置这个选项为一个非零值。
代码如下 |
复制代码 |
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); ///设置不输出在浏览器上
curl_setopt($ch,CURLOPT_POST,1);
|
/////如果你想PHP去做一个正规的HTTP POST,设置这个选 项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
代码如下 |
复制代码 |
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_file); ////传递一个作为HTTP "POST"操作的所有数据的字符串。
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); /////把返回来的cookie信息保存在$cookie_jar文件中
curl_exec($ch);///执行
curl_close($ch);////关闭
|
上面已经完成了模拟登录的过程
下面要做的就是进入具有权限的页面了,要记得你现在已经登录了,你应该把登录的凭证cookie保存了起来。
代码如下 |
复制代码 |
$url="http://www.phpyu.com/admin/××";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
|
////把这个页面显示在浏览器上,这里要特别注意!!就是如果把它显示在浏览器上的时候 下面的$contents 就会变成 一个布尔类型 true
代码如下 |
复制代码 |
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$contents = curl_exec($ch);
|
例2
代码如下 |
复制代码 |
<?php
$cookie_path = './'; //设置cookie保存路径
//-----登录要提交的表单数据---------------
$vars['username'] = '张三';
$vars['pwd'] = '123';
//-------------------------------------
$method_post = true;
//登录提交的url地址(表单中的action的绝对地址)
$url = 'http://****.com/login';
//----------------------------
$ch = curl_init();
$params[CURLOPT_URL] = $url; //请求url地址
$params[CURLOPT_HEADER] = true; //是否返回响应头信息
$params[CURLOPT_RETURNTRANSFER] = true; //是否将结果返回
$params[CURLOPT_FOLLOWLOCATION] = true; //是否重定向
$params[CURLOPT_USERAGENT] = 'Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1';
$postfields = '';
foreach ($vars as $key => $value){
$postfields .= urlencode($key) . '=' . urlencode($value) . '&';
}
$params[CURLOPT_POST] = true;
$params[CURLOPT_POSTFIELDS] = $postfields;
//判断是否有cookie,有的话直接使用
if (isset($_COOKIE['cookie_jar']) && ($_COOKIE['cookie_jar'] || is_file($_COOKIE['cookie_jar'])))
{
$params[CURLOPT_COOKIEFILE] = $_COOKIE['cookie_jar']; //这里判断cookie
}
else
{
$cookie_jar = tempnam($cookie_path, 'cookie'); //产生一个cookie文件
$params[CURLOPT_COOKIEJAR] = $cookie_jar; //写入cookie信息
setcookie('cookie_jar', $cookie_jar); //保存cookie路径
}
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
echo '
'; echo $content; //输出登录结果
/*
//---------登录成功后再次请求其他地址,如果有多个可以循环执行---------
echo '
--------------------------------------------------------------------------------
';
$nexturl = 'http://****.com/test';
$params[CURLOPT_URL] = $nexturl;
$params[CURLOPT_POSTFIELDS] = '';
curl_setopt_array($ch, $params); //传入curl参数
$content = curl_exec($ch); //执行
echo $content; //输出请求结果
//-------------------------------------------------
*/
curl_close($ch); //关闭连接
?>
|
注:如果遇到无法请求https站点的情况,可能是因为无法验证证书或者域名,只要在curl_setopt_array前增加以下两项就可以了:
代码如下 |
复制代码 |
$params[CURLOPT_SSL_VERIFYPEER] = false;
$params[CURLOPT_SSL_VERIFYHOST] = false;
|
php上传Excel文件时如何判断文件中有图片 有需要的朋友可参考参考。
代码如下 |
复制代码 |
$excelPath = 'Test.xls';
$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load($excelPath);
$currentSheet = $objPHPExcel->getActiveSheet();
$AllImages= $currentSheet->getDrawingCollection();
if(count($AllImages) > 0) {
//处理
} |
分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互联网上,分页是一般用于搜索结果或是浏览全部信息
php基本分页
代码如下 |
复制代码 |
<?php
// database connection info
$conn = mysql_connect('localhost','dbusername','dbpass') or trigger_error("SQL", E_USER_ERROR);
$db = mysql_select_db('dbname',$conn) or trigger_error("SQL", E_USER_ERROR);
// find out how many rows are in the table
$sql = "SELECT COUNT(*) FROM numbers";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];
// number of rows to show per page
$rowsperpage = 10;
// find out total pages
$totalpages = ceil($numrows / $rowsperpage);
// get the current page or set a default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
// cast var as int
$currentpage = (int) $_GET['currentpage'];
} else {
// default page num
$currentpage = 1;
} // end if
// if current page is greater than total pages...
if ($currentpage > $totalpages) {
// set current page to last page
$currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
// set current page to first page
$currentpage = 1;
} // end if
// the offset of the list, based on current page
$offset = ($currentpage - 1) * $rowsperpage;
// get the info from the db
$sql = "SELECT id, number FROM numbers LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
// while there are rows to be fetched...
while ($list = mysql_fetch_assoc($result)) {
// echo data
echo $list['id'] . " : " . $list['number'] . "<br />";
} // end while
/****** build the pagination links ******/
// range of num links to show
$range = 3;
// if not on page 1, don't show back links
if ($currentpage > 1) {
// show << link to go back to page 1
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
// get previous page num
$prevpage = $currentpage - 1;
// show < link to go back to 1 page
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
} // end if
// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
// if it's a valid page number...
if (($x > 0) && ($x <= $totalpages)) {
// if we're on current page...
if ($x == $currentpage) {
// 'highlight' it but don't make a link
echo " [<b>$x</b>] ";
// if not current page...
} else {
// make it a link
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
} // end else
} // end if
} // end for
// if not on last page, show forward and last page links
if ($currentpage != $totalpages) {
// get next page
$nextpage = $currentpage + 1;
// echo forward link for next page
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";
// echo forward link for lastpage
echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
} // end if
/****** end build pagination links ******/
?>
|
先看一个常用的php分页类
代码如下 |
复制代码 |
<?php
/*
Place code to connect to your DB here.
*/
include('config.php'); // include your code to connect to DB.
$tbl_name=""; //your table name
// How many adjacent pages should be shown on each side?
$adjacents = 3;
/*
First get total number of rows in data table.
If you have a WHERE clause in your query, make sure you mirror it here.
*/
$query = "SELECT COUNT(*) as num FROM $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
/* Setup vars for query. */
$targetpage = "filename.php"; //your file name (the name of this file)
$limit = 2; //how many items to show per page
$page = $_GET['page'];
if($page)
$start = ($page - 1) * $limit; //first item to display on this page
else
$start = 0; //if no page var is given, set start to 0
/* Get data. */
$sql = "SELECT column_name FROM $tbl_name LIMIT $start, $limit";
$result = mysql_query($sql);
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<div class="pagination">";
//previous button
if ($page > 1)
$pagination.= "<a href="$targetpage?page=$prev">� previous</a>";
else
$pagination.= "<span class="disabled">� previous</span>";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class="current">$counter</span>";
else
$pagination.= "<a href="$targetpage?page=$counter">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<span class="current">$counter</span>";
else
$pagination.= "<a href="$targetpage?page=$counter">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href="$targetpage?page=$lpm1">$lpm1</a>";
$pagination.= "<a href="$targetpage?page=$lastpage">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a href="$targetpage?page=1">1</a>";
$pagination.= "<a href="$targetpage?page=2">2</a>";
$pagination.= "...";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<span class="current">$counter</span>";
else
$pagination.= "<a href="$targetpage?page=$counter">$counter</a>";
}
$pagination.= "...";
$pagination.= "<a href="$targetpage?page=$lpm1">$lpm1</a>";
$pagination.= "<a href="$targetpage?page=$lastpage">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href="$targetpage?page=1">1</a>";
$pagination.= "<a href="$targetpage?page=2">2</a>";
$pagination.= "...";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class="current">$counter</span>";
else
$pagination.= "<a href="$targetpage?page=$counter">$counter</a>";
}
}
}
//next button
if ($page < $counter - 1)
$pagination.= "<a href="$targetpage?page=$next">next �</a>";
else
$pagination.= "<span class="disabled">next �</span>";
$pagination.= "</div>n";
}
?>
<?php
while($row = mysql_fetch_array($result))
{
// Your while loop here
}
?>
<?=$pagination?>
|
实例
代码如下 |
复制代码 |
<?php
class PageView{
/**页码**/
public $pageNo = 1;
/**页大小**/
public $pageSize = 20;
/**共多少页**/
public $pageCount = 0;
/**总记录数**/
public $totalNum = 0;
/**偏移量,当前页起始行**/
public $offSet = 0;
/**每页数据**/
public $pageData = array();
/**是否有上一页**/
public $hasPrePage = true;
/**是否有下一页**/
public $hasNextPage = true;
public $pageNoList = array();
public $jsFunction ='jsFunction';
/**
*
* @param unknown_type $count 总行数
* @param unknown_type $size 分页大小
* @param unknown_type $string
*/
public function __construct($count=0, $size=20,$pageNo=1,$pageData =array(),$jsFunction='jsFunction'){
$this->totalNum = $count;//总记录数
$this->pageSize = $size;//每页大小
$this->pageNo = $pageNo;
//计算总页数
$this->pageCount = ceil($this->totalNum/$this->pageSize);
$this->pageCount = ($this->pageCount<=0)?1:$this->pageCount;
//检查pageNo
$this->pageNo = $this->pageNo == 0 ? 1 : $this->pageNo;
$this->pageNo = $this->pageNo > $this->pageCount? $this->pageCount : $this->pageNo;
//计算偏移
$this->offset = ( $this->pageNo - 1 ) * $this->pageSize;
//计算是否有上一页下一页
$this->hasPrePage = $this->pageNo == 1 ?false:true;
$this->hasNextPage = $this->pageNo >= $this->pageCount ?false:true;
$this->pageData = $pageData;
$this->jsFunction = $jsFunction;
}
/**
* 分页算法
* @return
*/
private function generatePageList(){
$pageList = array();
if($this->pageCount <= 9){
for($i=0;$i<$this->pageCount;$i++){
array_push($pageList,$i+1);
}
}else{
if($this->pageNo <= 4){
for($i=0;$i<5;$i++){
array_push($pageList,$i+1);
}
array_push($pageList,-1);
array_push($pageList,$this->pageCount);
}else if($this->pageNo > $this->pageCount - 4){
array_push($pageList,1);
array_push($pageList,-1);
for($i=5;$i>0;$i--){
array_push($pageList,$this->pageCount - $i+1);
}
}else if($this->pageNo > 4 && $this->pageNo <= $this->pageCount - 4){
array_push($pageList,1);
array_push($pageList,-1);
array_push($pageList,$this->pageNo -2);
array_push($pageList,$this->pageNo -1);
array_push($pageList,$this->pageNo);
array_push($pageList,$this->pageNo + 1);
array_push($pageList,$this->pageNo + 2);
array_push($pageList,-1);
array_push($pageList,$this->pageCount);
}
}
return $pageList;
}
/***
* 创建分页控件
* @param
* @return String
*/
public function echoPageAsDiv(){
$pageList = $this->generatePageList();
$pageString ="<div class='pagination'><div class='page-bottom'>";
if(!empty($pageList)){
if($this->pageCount >1){
if($this->hasPrePage){
$pageString = $pageString ."<a class='page-next' href="javascript:" .$this->jsFunction . "(" . ($this->pageNo-1) . ")">上一页</a>";
}
foreach ($pageList as $k=>$p){
if($this->pageNo == $p){
$pageString = $pageString ."<span class='page-cur'>" . $this->pageNo . "</span>";
continue;
}
if($p == -1){
$pageString = $pageString ."<span class='page-break'>...</span>";
continue;
}
$pageString = $pageString ."<a href="javascript:" .$this->jsFunction . "(" . $p . ")">" . $p . "</a>";
}
if($this->hasNextPage){
$pageString = $pageString ."<a class='page-next' href="javascript:" .$this->jsFunction . "(" . ($this->pageNo+1) . ")">下一页</a>";
}
}
}
$pageString = $pageString .("</div></div>");
return $pageString;
}
}
?>
|
css代码
代码如下 |
复制代码 |
<style type="text/css">
<!--
.pagination {font-family: Tahoma;overflow: hidden; padding-top: 12px; text-align: center;}
.pagination-tab { margin-bottom: 20px;}
.pagination a, .pagination .page-cur, .pagination .page-prev_g, .pagination .page-prev, .pagination .page-next, .pagination .page-next_g, .pagination .page-break, .pagination .page-skip {
display: inline-block;font-family: Tahoma,SimSun,Arial; height: 22px;line-height:22px; margin: 0; min-width: 16px;padding: 0 5px; text-align: center; vertical-align: top; white-space: nowrap;}
.pagination a, .pagination .page-prev_g, .pagination .page-prev, .pagination .page-next, .pagination .page-next_g, .pagination .page-cur, .pagination .page-break {
border: 1px solid #ed3d83; color:#e9357d; font-weight:bold;}
.pagination a:hover { border: 1px solid #ed3d83;text-decoration: none; background-color:#f95f9d; color:#fff;}
.pagination .page-prev_g, .pagination .page-prev, .pagination .page-next, .pagination .page-next_g { width: 36px; background-image: url(../static/img/page.gif);}
.pagination .page-prev { background-position: -0px -38px; padding-left: 16px;}
.pagination .page-prev_g { background-position:0px -59px; padding-left: 16px; color:#cbcbcb; font-weight:normal;}
.pagination .page-next { background-position: 0px 0px; padding-right: 16px; font-weight:normal;}
.pagination .page-next_g { background-position: -0px -19px; padding-right: 16px; color:#cbcbcb;}
.pagination .page-cur {background-color: #f95f9d; border: 1px solid #ed3d83;color: #fff;font-weight: bold;}
.pagination .page-break {border: medium none; background:none transparent; color:#333;}
-->
</style>
|
在php页面中的调用方法
代码如下 |
复制代码 |
$pageNo = $_GET['pageNo'];
if(empty($pageNo)){
$pageNo = 1;
}
//分页数据
$pageData = News::getNewsPage($pageNo,$pageSize);
//取得总行数
$count = News::getNewsCount();
//创建分页器
$p = new PageView($count['0']['TOTAL'],$pageSize,$pageNo,$pageData);
//生成页码
$pageViewString = $p->echoPageAsDiv();
|
在php中缓存分为很多种类型如,内存缓存,文件缓存,页面缓存本文章要来讲述关于php中内存缓存的一些方法,下面我们介绍Memcached缓存和php自带的APC缓存方法。
1.Memcached缓存。
memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度。memcached 使用了“Key=>Value”方式组织数据。可以允许不同主机上的多个用户同时访问这个缓存系统,一般用于大型网站使用。memcached使用内存缓存数据,所以它是易失的,当服务器重启,或者memcached进程中止,数据便会丢失,所以 memcached不能用来持久保存数据。
过php_memcache的人都会觉得 PHP内存缓存是一个很复杂的东西,其实不然。
memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。
这里介绍memcached在WIN32下的配置及其使用。
一、PHP内存缓存的配置(WIN32环境)
1、下载php_memcache.rar,请从附件下载。
解压压缩包:php_memcache.rar
php_memcache.rar压缩包里主包含的文件有:
/memcached-1.2.1-win32/memcached.exe
/php_memcache/php_memcache.dll
2、打开命令提示符,指向到memcached.exe所在路径,运行memcached.exe -d start。
3、将php_memcache.dll文件拷贝到PHP的动态文件库的文件夹下。
4、在php.ini文件中加入一行extension=php_memcache.dll。
5、重新启动Apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!
例:
代码如下 |
复制代码 |
<?php
//包含 memcached 类文件
require_once('memcached-client.php');
//选项设置
$options = array(
'servers' => array('www.hxsd.com:11211'),//memcached 服务的地址、端口
'debug' => true,//是否打开debug
'compress_threshold' => 10240,//超过多少字节的数据时进行压缩
'persistant' => false//是否使用持久连接
);
//实例化memcached对象
$memcached = new memcached($options);
$sql = 'SELECT * FROM table1';
$key = md5($sql);
//如果在memcached中没有缓存数据,把缓存数据写入memcached
if(!($datas = $memcached->get($key)))
{
$conn = mysql_connect('localhost', 'hxsd', '123456');
mysql_select_db('hxsd');
$result = mysql_query($sql);
while($row = mysql_fetch_object($result))
{
$datas[] = $row;
}
//将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用。
$memcached->add($key, $datas);
}
else
{
//直接使用memcached中的缓存数据$datas
}
?>
|
内存缓存二
APC、EC、Zend加速器的比较
一、APC
APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。
主页是 http://pecl.php.net/package/apc
php帮助手册页面: http://cn.php.net/apc
APC是个优化器,自安装之日起,就默默地在后台为您的PHP应用服务了.您的所有PHP代码会被缓存起来. (针对php opcode)
另外,APC可提供一定的内存缓存功能.但是这个功能并不是十分完美,有报告说如果频繁使用APC缓存的写入功能,会导致不可预料的错误.如果想使用这个功能,可以看看apc_fetch,apc_store等几个与apc缓存相关的函数.
安装:
代码如下 |
复制代码 |
# pecl install APC
|
配置:(/etc/php.inc)
代码如下 |
复制代码 |
extension=apc.so
|
[apc]
代码如下 |
复制代码 |
apc.enabled = 1
apc.shm_segments = 1
apc.shm_size = 30
apc.optimization = 0
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 1000
apc.mmap_file_mask = /tmp/apc.XXXXXX
|