当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪清除指定squid缓存文件的脚本代码分享       squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。   对于类似http:///index.html之.........
    ▪smarty实现PHP静态化的两种方法分享       方法一: 代码如下: <?php require_once("./config/config.php"); ob_start(); $id=$_GET[id]; $sql="select * from table_name where id='$id'"; $result=mysql_query($sql); $rs=mysql_fetch_object($result); $smarty->assign("showtitle",$rs->ti.........
    ▪.htaccess文件写法之作用范围       有太多的朋友会碰到一个问题,那就是htaccess文件冲突的问题,比如说,一个站点,全站是用伪静态,并且是用的虚拟主机,那就必须要用.htaccess文件规则来实现,同时用CMS文件做门户用DZ.........

[1]清除指定squid缓存文件的脚本代码分享
    来源: 互联网  发布时间: 2013-12-24
squid会根据用户请求网页的URL进行哈希,生成缓存文件,存放在某一个目录中。squid启动之后,将在内存中建立一个哈希表,记录硬盘中缓存文件配置的情形。

  对于类似http:///index.html之类的网页,squid只会生成一个缓存文件。可以用squid附带的squidclient工具清除:

squidclient -m PURGE -p 80 “http:///index.html”

  而对于带有参数的网页,例如新浪播客的Flash播放器http://vhead.blog.sina.com.cn/player/outer_player.swf?auto=0&vid=4469852&uid=1278987704,因”?”后面的参数不同,导致URL也不同,squid会生成多个缓存文件,哈希分散存放在不同的目录。如果修改了这个outer_player.swf文件,要更新squid缓存就要去清除不同目录下及内存中的很多个缓存文件,十分麻烦,于是我编写了一个Linux下的shell脚本,去完成这件麻烦的事:

  脚本文件名:clear_squid_cache.sh

下载:
代码如下:

clear_squid_cache.sh#!/bin/sh
squidcache_path="/cache/"
squidclient_path="/usr/local/squid/bin/squidclient"
grep -a -r $1 $squidcache_path/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}' > cache_list.txt
for url in `cat cache_list.txt`; do
$squidclient_path -m PURGE -p 80 $url
done

  注意:请赋予clear_squid_cache.sh可执行权限(命令:chmod +x ./clear_squid_cache.sh)。请确保脚本所在目录可写。

  设置:
  squidcache_path= 表示squid缓存目录的路径
  squidclient_path= 表示squidclient程序所在的路径,默认为squid安装目录下的bin/squidclient

  用法:
  1、清除所有Flash缓存(扩展名.swf):

  ./clear_squid_cache.sh swf
  2、清除URL中包含sina.com.cn的所有缓存:

  ./clear_squid_cache.sh
  3、清除文件名为zhangyan.jpg的所有缓存:

  ./clear_squid_cache.sh test.jpg
  效率:
  经测试,在DELL 2950上清除26000个缓存文件用时2分钟左右。平均每秒可清除缓存文件177个。

    
[2]smarty实现PHP静态化的两种方法分享
    来源: 互联网  发布时间: 2013-12-24

方法一:

代码如下:

<?php
require_once("./config/config.php");
ob_start();
$id=$_GET[id];
$sql="select * from table_name where id='$id'";
$result=mysql_query($sql);
$rs=mysql_fetch_object($result);
$smarty->assign("showtitle",$rs->title);
$smarty->assign("showcontent",$rs->content);
$smarty->display("content.html");
$this_my_f= ob_get_contents();
ob_end_clean();
$filename = "$id.html";
tohtmlfile_cjjer($filename,$this_my_f);
// 文件生成函数
function tohtmlfile_cjjer($file_cjjer_name,$file_cjjer_content){
if (is_file ($file_cjjer_name)){
@unlink ($file_cjjer_name); //存在,就删除
}
$cjjer_handle = fopen ($file_cjjer_name,"w"); //创建文件
if (!is_writable ($file_cjjer_name)){ //判断写权限
return false;
}
if (!fwrite ($cjjer_handle,$file_cjjer_content)){
return false;
}
fclose ($cjjer_handle); //关闭指针
return $file_cjjer_name; //返回文件名
}
?>

方法二:
smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的:
代码如下:

<?php
function fetch($resource_name, $cache_id = null,
$compile_id = null, $display = false)
?>

第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为是否显示模板内容. 生成静态页我们就需要用到这个方法.
代码如下:

<?php
$smarty = new Smarty();
//其它模板替换语法...
//下面这句取得页面中所有内容, 注意最后一个参数为false
$content = $smarty->fetch('模板名称.tpl', null, null, false);
//下面将内容写入至一个静态文件
$fp = fopen('news.html', 'w');
fwrite($fp, $content);
fclose($fp);
//OK, 到这里这个news.html静态页就生成了, 你可以处理你下一步的工作了
?>

    
[3].htaccess文件写法之作用范围
    来源: 互联网  发布时间: 2013-12-24
有太多的朋友会碰到一个问题,那就是htaccess文件冲突的问题,比如说,一个站点,全站是用伪静态,并且是用的虚拟主机,那就必须要用.htaccess文件规则来实现,同时用CMS文件做门户用DZ做BBS,用WP做BLOG,我只知道WP与DZ程序的静态化就会存在着冲突,可能会导致DZ的静态化文件失效。这样的话,就用到了htaccess文件的作用范围。
下面写一个最基本,也是最标准的htaccess文件:
代码如下:

# BEGIN
<IfModule mod_rewrite.c>
RewriteBase /products
RewriteEngine on
RewriteRule ^index-page([0-9]*)(/)?$ index.php?page=$1
RewriteRule ^([0-9]+)(/)?$ products.php?id=$1
</IfModule>
# END

此文件的RewriteBase 属性就是作用范围,不单单是.htaccess文件放置位置,这个属性是一个绝对路径,当然也是.htaccess的存放的路径,而下面的所有规则将相对于此路径生效。
这样的话,WP与DZ冲突的问题就可以解决了,可以把WP的htaccess文件放在blog下,然后把bbs目录下放上dz的htaccess。当然,如果全是放在了根目录下,可能还会冲突,不过,又有几个人把不同样的程序放在一个目录下呢?那样不但不容易管理,对以后程序的升级也带来很多的麻烦。

    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
php iis7站长之家
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3