Submitted by admin on 2011, April 16, 11:35 PM
    - $fileURL=;   
 
    -   
 
    - $filename=;   
 
    - $file = @ fopen($fileURL,"r");   
 
    - if (!$file) {   
 
    -     echo "文件找不到";   
 
    - } else {   
 
    -     Header("Content-type: application/octet-stream");   
 
    -     Header("Content-Disposition: attachment; filename=" . $filename);   
 
    -     while (!feof ($file)) {   
 
    -         echo fread($file,50000);   
 
    -     }   
 
    -     fclose (file);   
 
    - }  
 
 
php | 评论:0
 | Trackbacks:0
 | 阅读:1083
Submitted by admin on 2011, April 14, 12:18 PM
select table_schema,
sum(data_length+index_length)/1024/1024 as total_mb,
sum(data_length)/1024/1024 as data_mb,
sum(index_length)/1024/1024 as index_mb,
count(*) as tables
from information_schema.tables
group by table_schema
order by 2 desc;
 
mysql/db | 评论:0
 | Trackbacks:0
 | 阅读:1153
Submitted by admin on 2011, April 13, 8:00 PM
先要搞清楚 fastcgi_temp 目录的作用。
先简单的说一下 Nginx 的 buffer 机制,对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。
比如如下配置:
fastcgi_buffers      8 4K;
fastcgi_buffer_size  4K;
fastcgi_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。所以总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k。而这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的。比如一个 8K 的页面,Nginx 会创建 2*4K 共 2 个 buffers。
当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。同时你会在 error.log 中看到一条类似 warning:
2010/03/13 03:42:22 [warn] 3994#0: *1 an upstream response is buffered to a temporary file
/usr/local/nginx/fastcgi_temp/1/00/0000000001 while reading upstream, client: 192.168.2.1,
 server: pma.verdana.cn, request: "POST /tbl_structure.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000",
host: "pma.verdana.cn", referrer: "http://pma.verdana.cn/tbl_structure.php"
显然,缓冲区设置的太小的话,Nginx 会频繁读写硬盘,对性能有很大的影响,但也不是越大越好,没意义,呵呵!
搞清楚了这些,再回到原来的问题上面,phpMyAdmin 生成的页面大小达到了 100+ Kb,内存中缓冲了 36Kb,剩下的会写入的文件中。而实际的情况是,运行 Nginx Process 的用户并没有 fastcgi_temp 目录的写权限,于是剩下的数据就丢失掉了
 
apache/web | 评论:0
 | Trackbacks:0
 | 阅读:1128
Submitted by admin on 2011, April 7, 9:05 PM
和Spreadsheet_Excel_Writer类似,Spreadsheet_Excel_Reader是用来读取Excel内容的工具。
可以方便的将Excel数据导入到数据或者其他用途。
如下代码:
<?php
//调用Reader
require_once 'Spreadsheet/Excel/Reader/reader.php';
//创建 Reader
$data = new Spreadsheet_Excel_Reader();
//设置文本输出编码
$data->setOutputEncoding('GB2312');
//读取Excel文件
$data->read("c:\test.xls");
//$data->sheets[0]['numRows']为Excel行数
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
  //$data->sheets[0]['numCols']为Excel列数
  for ($j = 1; $j <= $data->sheets[0]['numCols']; $j++) {
   //显示每个单元格内容
   echo $data->sheets[0]['cells'][$i][$j];
  }
}
?>
另,由于日期型的特殊性,在取值时可能会产生错误,可将Excel单元格类型设为Text,
将日期以文本形式读取,如需日期型字符再通过PHP对其进行处理即可(strtotime()结合date())。
 
php | 评论:0
 | Trackbacks:0
 | 阅读:1012
Submitted by admin on 2011, April 7, 8:49 PM
aria2 是 Linux 下一个不错的高速下载工具。由于它具有分段下载引擎,所以支持从多个地址或者从一个地址的多个连接来下载同一个文件。这样自然就大大加快了文件的下载速 度。aria2 也具有断点续传功能,这使你随时能够恢复已经中断的文件下载。除了支持一般的 http(s) 和 ftp 协议外,aria2 还支持 BitTorrent 协议。这意味着,你也可以使用 aria2 来下载 torrent 文件。
安装 aria2
aria2 目前已被包含到许多 Linux 发行版中,因此你可以通过所用的系统直接加以安装。例如,在 Debian/Ubuntu 中,你可以在终端执行如下指令来安装 aria2:
sudo apt-get install aria2
如果你使用 Fedora Core,那么可以使用下列命令:
sudo yum install aria2
你也可以获取 aria2 的源代码,自行编译安装。当前 aria2 的最新版本为aria2-1.10.8.tar.gz,可从这里下载。
aria2 的使用方法
aria2 是命令行程序,使用非常简单。
    - 一般使用 使用 aria2 下载文件,只需在命令后附加地址即可。如: 
aria2c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 
    - 分段下载 利用 aria2 的分段下载功能可以加快文件的下载速度,对于下载大文件时特别有用。为了使用 aria2 的分段下载功能,你需要在命令中指定 s 选项。如: 
aria2c -s 2 http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 这将使用 2 个连接来下载该文件。s 后面的参数值介于 1~5 之间,你可以根据实际情况选择。 
    - 断点续传 在命令中使用 c 选项可以断点续传文件。如: 
aria2c -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.6.tar.bz2 
    - 下载 torrent 文件 你也可以使用 aria2 下载 BitTorrent 文件。如: 
aria2c -o gutsy.torrent http://cdimage.ubuntu.com/daily-live/current/gutsy-desktop-i386.iso.torrent 
关于 aria2 的更多用法,可以通过 man aria2c 查阅。
 
linux | 评论:0
 | Trackbacks:0
 | 阅读:1021
Submitted by admin on 2011, April 7, 8:48 PM
1)Linux下有许多软件可以从终端进行BT下载。rtorrent 可能是其中最使用简单而且使用范围广的。下载时,你只需要向他提供简单的种子文件地址而不需要下载整个种子文件。比如:rtorrent <torrent文件地址>
rtorrent是高度自定义化的。默认情况下,你可以编辑位于~.rtorrent.rc的配置文件来对它进行设置。你也可以用这样的命令:rtorrent -n -o import=~/自定义.rc来为rtorrent指定你自己的自定义设置文件。
一些特殊情况下你可以使用自己的设置文件,而默认情况下rtorrent不加载设置文件。
在线程中暂停和恢复下载:session = ~/Download/session
为新的下载监视目录:schedule = watch_directory,10,10,load_start=~/Download/watch/*.torrent
在下载结束后移动文件:on_finished = move_complete,”execute=mv,-u,$d,get_base_path=,~/Download/ ;d.set_directory=~/Download/”
到达上传限额后停止上传:schedule = ratio,60,60,”stop_on_ratio=200,50M,300”
完整的选项和下载请看下面的网站:http://libtorrent.rakshasa.no/
2)另一个重要的BT下载工具Transmission也有命令行版本。使用transmission下载文件,你需要提供已下载的种子文件,而不像rtorrent那样只提供一个链接。比如:transmissioncli /home/pays/Desktop/test.torrent
此外,你可以使用-d和-u选项自定义下载和上传的速度限制。Transmission为Debian准备的命令行版本可以从这里下载:http://packages.debian.org/unstable/net/transmission-cli
3)命令行下载BT的的三个选择是ctorrent。虽然它在2006年就停止研发了,不过在多数时候仍然可以正常工作。它使用和transmission的命令行版本类似的命令格式,比如:ctorrent /home/pays/Desktop/test.torrent你可以从ctorrent的网站来了解它的更多信息:http://ctorrent.sourceforge.net/
 
linux | 评论:0
 | Trackbacks:0
 | 阅读:924
Submitted by admin on 2011, April 7, 5:53 PM
修改方法:
/etc/sysctl.conf文件中加入
kernel.panic = 30 #panic错误中自动重启,等待时间为30秒
kernel.sysrq = 1 #激活Magic SysRq! 否则,键盘鼠标没有响应
 
linux | 评论:0
 | Trackbacks:0
 | 阅读:1520
Submitted by admin on 2011, April 3, 9:35 PM
if [[ "$1" =~ "^[0-9]+$" ]] ;then
 
TEST=`echo $num|sed 's/[0-9]//g'`
if [ "$TEST" != "" ]
 
shell | 评论:0
 | Trackbacks:0
 | 阅读:1007