可爱熊个人博客

php修改文件名函数

修改文件名的函数,rename($o,$n),$o是旧文件名,$n要被修改成的新文件名哦。下面我们来看一款关于重名命文件名的实例

<?php session_start();
if($submit==”提交”){
if (file_exists( $old_name)){
if (rename($old_name,$new_name )) //把原文件重新命名
{echo “修改成功!”;}
}else{ print $old_name.”文件不存在!<br>” ; }
}
?>

为UIWebView实现离线浏览

智能手机的流行让移动运营商们大赚了一笔,然而消费者们却不得不面对可怕的数据流量账单。因为在线看部电影可能要上千块通讯费,比起电影院什么的简直太坑爹了。
所以为了减少流量开销,离线浏览也就成了很关键的功能,而UIWebView这个让人又爱又恨的玩意弱爆了,居然只在Mac OS X上提供webView:resource:willSendRequest:redirectResponse:fromDataSource:这个方法,于是只好自己动手实现了。

原理就是SDK里绝大部分的网络请求都会访问[NSURLCache sharedURLCache]这个对象,它的cachedResponseForRequest:方法会返回一个NSCachedURLResponse对象。如果这个NSCachedURLResponse对象不为nil,且没有过期,那么就使用这个缓存的响应,否则就发起一个不访问缓存的请求。
要注意的是NSCachedURLResponse对象不能被提前释放,除非UIWebView去调用NSURLCache的removeCachedResponseForRequest:方法,原因貌似是UIWebView并不retain这个响应。而这个问题又很头疼,因为UIWebView有内存泄露的嫌疑,即使它被释放了,也很可能不去调用上述方法,于是内存就一直占用着了。

顺便说下NSURLRequest对象,它有个cachePolicy属性,只要其值为NSURLRequestReloadIgnoringLocalCacheData的话,就不会访问缓存。可喜的是这种情况貌似只有在缓存里没取到,或是强制刷新时才可能出现。
实际上NSURLCache本身就有磁盘缓存功能,然而在iOS上,NSCachedURLResponse却被限制为不能缓存到磁盘(NSURLCacheStorageAllowed被视为NSURLCacheStorageAllowedInMemoryOnly)。
不过既然知道了原理,那么只要自己实现一个NSURLCache的子类,然后改写cachedResponseForRequest:方法,让它从硬盘读取缓存即可。

于是就开工吧。这次的demo逻辑比较复杂,因此我就按步骤来说明了。

先定义视图和控制器。
它的逻辑是打开应用时就尝试访问缓存文件,如果发现存在,则显示缓存完毕;否则就尝试下载整个网页的资源;在下载完成后,也显示缓存完毕。
不过下载所有资源需要解析HTML,甚至是JavaScript和CSS。为了简化我就直接用一个不显示的UIWebView载入这个页面,让它自动去发起所有请求。
当然,缓存完了还需要触发事件来显示网页。于是再提供一个按钮,点击时显示缓存的网页,再次点击就关闭。
顺带一提,我本来想用Google为例的,可惜它自己实现了HTML 5离线浏览,也就体现不出这种方法的意义了,于是只好拿百度来垫背。

Read More…

Mysql的空值判断

MySql里面空值是NULL

于是,理所当然地写了一条SQL语句

Select count(*) from table1 where name1=NULL;

而实际上得到的的结果是不符合实际的,在MSSQL应该也是这种情况。

经过查找资料,发现,正确的语法应该是这样写:

Select count(*) from table1 where name1 is NULL;

问题解决。

 

同时可以使用 <> 来代表不等于

Win2008(IIS7)Asp上传文件不能超过200K的解决方案

在 Win2008(iis 7.0)和Win2003(iis 6.0) 中,默认设置是特别严格和安全的,这样可以最大限度地减少因以前太宽松的超时和限制而造成的攻击。
指定 ASP 请求的实体主体中允许大小为 200,000 (IIS6为204,800) 个字节,在 iis 6.0 之前的版本中,没有限制。

这就造成了文件上传不能超过200k,而事实上是提交数据不能超过200k,你可以发一个很长的帖子试试,也会出现这个错误。

IIS7.0的修改方法如下:
打开IIS管理器–双击“IIS”中的“ASP”– 打开“配置 ASP 应该程序的属性”–展开“限制属性”;
修改“最大请求实体主体限制”的值,默认值为200000(即不到200KB);
把它修改为你想修改的大小,如:52000000(50MB)。
修改完成点击“应用”OK!

IIS6.0的修改方法如下:
在服务里关闭iis admin service服务
找到windows\system32\inetsrv\下的MetaBase.xml,
打开,找到AspMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200k
把它修改为51200000(50MB)
然后重启iis admin service服务

在 IIS 6.0 中,无法下载超过4M的附件时,可以按以下步骤解决
1、先在服务里关闭 iis admin service 服务。
2、找到 windows\system32\inetsrv\ 下的 metabase.xml 文件。
3、用纯文本方式打开,找到 AspBufferingLimit 把它修改为需要的值,默认为4194304(可修改为20M即:20480000)。
4、存盘,然后重启 iis admin service 服务。

mysql source命令

今天碰到个问题要用phpmyadmin导入1G的数据,但是在怎么都导入不了,用命令行就可以轻松搞定了。用mysql source命令可以导入比较大的文件。

mysql>use dbtest;
mysql>set names utf8;
mysql>source D:/www/sql/back.sql;

通过source命令导入多个文件,可以新建一个sou.sql文件,里面存放下面的命令
例如:
source d:/a1.sql;
source d:/a2.sql;
当你运行

这样就可以在一个source命令里面导入多个sql文件了。

Kloxo下FTP无法连接解决方法

今天重启后,ftp不能连接,查了端口没有被占用,FTP就一直无法连接,刚开始以为是抽风引起的,过会儿就好了,也没怎么关心,可这几天FTP一直都是无法连接,FlashFXP、Net2ftp都不行,这才开始重视。

后台想想可能是ftp没有启用。

解决方法:登陆SSH执行命令:
/etc/init.d/xinetd restart

介绍Linux中cp直接覆盖不提示的方法

新做了服务器,cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,这在大量cp覆盖操作的时候是不能忍受的。

把a目录下的文件复制到b目录

以下是代码片段:

cp –r a/* b

执行上面的命令时,b存在的每个文件都会提示是否覆盖;

以下是代码片段:

cp –r –f a/* b

执行上面的命令时,b存在的每个文件都不再会提示;

这是我们希望的理想状态,但是有时加了-f了,怎么还会有提示呢?原来一些服务器会默认增加别名 alias cp=’cp -i’,当你执行cp时,其实执行的是cp –i。

在终端执行alias就可以看出来了。

以下是代码片段:

[root@devdb ~]# alias

alias cp=’cp -i’

可以这样解决

以下是代码片段:

[root@devdb ~]# vi ~/.bashrc

在alias cp=’cp -i’前加上”#”注释掉这行,:wq!保存推出,然后重新登陆就可以了。

KLOXO6.1.7乱码问题解决办法

KLOXO升级到最新版后,会自动修改/etc/httpd/conf/httpd.conf文件,将其中的AddDefaultCharset OFF一项改为AddDefaultCharset UTF-8,使得APACHE解析时发生乱码!

1、进入httpd.conf所在目录 cd /etc/httpd/conf 在SSH中执行以上命令。

2、先按《Kloxo自带Apache中文乱码解决方法》将AddDefaultCharset后面的UTF-8修改为OFF。

3、锁定文件 chattr -V +i httpd.conf SSH中执行以上命令,则该文件在Linux第2扩展文件系统中设置状态为i:不能对文件进行任何修改。 当然,这只是个临时性的解决方案,完全解决还是要根据官方的脚步走。若官方提供6.1.8以上版本,请在升级前先执行以下命令解除锁定文件,以免出现不必要的错误。 chattr -V -i httpd.conf

MySQL故障:got error 127 when reading table 的错误的原因及解决办法

今天处理效劳器上网站翻开慢的问题的时分,还发现了另外一个MySQL毛病:Got error 127 when reading table \’.\\bbs\\uchome_friend\’,呈现这个问题的缘由和处理方法如下:
MySQL毛病:Got error 127 when reading table \’.\\bbs\\uchome_friend\’缘由:数据库正在停止存取的时分,忽然自动重惹起数据库文件损坏了。
MySQL毛病:Got error 127 when reading table \’.\\bbs\\uchome_friend\’处理方法:
应用命令行,执行MySQL的bin目录下MySQL.exe;
输入以下命令(括号及括号内内容为命令行的解释,不用输入):
use bbs;(将执行数据库切换到bbs)
CHECK TABLE uchome_friend;(检查数据库uchome_friend能否存在问题,普通肯定有问题,没有问题就不会报错了)
REPAIR TABLE uchome_friend;(修复数据库uchome_friend)
CHECK TABLE uchome_friend;(再次检查数据库uchome_friend能否存在问题,普通如今状态是OK了)
退出命令行。
这样MySQL毛病:Got error 127 when reading table \’.\\bbs\\uchome_friend\’的问题就处理了.

Read More…

Changed limits: max_open_files: 2048 max_connections: 2038 table_cache: 64

在windows下安装Mysql系统日志出 现 max_open_files: 2048  max_connections: 510  table_cache: 764 类似错误是因 为 max_connections 最大连接数和max_open_files、table_cache 不匹配。适当的降低 max_connections 或调整其他两个数值

解决办法在 mysql bin > 中输入 mysql-nt –table_cache=764

mysql-nt –innodb_open_files=2048   即可!!

table_cache和max_connections 在my.ini 里可调

 

Changed limits: max_open_files: 2048  max_connections: 1024  table_cache: 507

max_connections=1024

table_cache=500

OK,问题解决

——————————————————————————- Read More…