Hot For Coding
PHP用strpos函数屏蔽关键字

现在网络信息监管很严格,特别是屏蔽关键字。特别是现在Web2.0时代,网站的内容几乎都是来自网民发布,站长管理即可。如果你希望别人在你站点禁止发布某个关键字,那么就需要预先做处理。用PHP做关键字屏蔽的功能样式有多种多样,如正则是最普遍的一种,这里就不一一例举,本文介绍使用PHP函数strpos()屏蔽关键字的功能

思路

  • 把关键字专门写在一个文本文件里,每行一个,数量不限,有多少写多少。
  • PHP读取关键字文本,存入一个数组
  • 遍历关键字数组,挨个用strpos()函数去看看内容有没有关键字,如果有,返回true,没有则返回false

...

READ ALL

去掉Linux中rz命令后冷却时间

由于程序开发需要,经常在Linux环境下操作,而我用的ssh工具是SecureCRT。每次传送文件无论大小数量多少都要打开专门的传送工具,非常不方便。某日闲逛发现rzsz于命令状态下传送文件非常方便,按奈不住立即下载安装到虚拟机中。输入rz在弹出的对话框中选择文件就可以上传了,还可以同时选择多个,心里一阵狂喜。有了这个工具几乎就不怎么需要打开专门的传送工具了,比如ftp等。

但每次rz后,命令行已经显示传送完成了,但都会有一个烦人的冷却时间,一直卡在

**** UNREGISTERED COPY *****
Please read the License Agreement in rz.doc

...

READ ALL

Smarty中变量调节器

几乎所有PHP开发对Smarty并不陌生吧?但绝大多数人只是意识到Smarty是PHP代码与HTML分离的一个功能,其实Smarty还有许多非常的小功能,如果你能把Smarty的这些小功能都应用的非常好,不仅非常方便程序编写还减少重复性操作。

今天要介绍Smarty的变量调节器功能,什么是变量调节器呢?即输入在模板上的变量可以通过某个函数处理返回值达到某种效果。

举个最简单的例子,如所有小写字母变大写!那么在模板页你可以在变量后边加上|upper即可,如 { $word | upper } 这样就可以把$word变量中所有的小写字母变成大写字母了。挺方便的吧!

...

READ ALL

PHP升级后eAccelerator罢工

前几天,在一次PHP升级到5.3.10之后发现eAccelerator没有开启,phpinfo()里直接显示全部为false

full

很是纳闷中...

急忙打开ssh把php-fpm进程杀掉重启,结果提示

[eAccelerator] This build of "eAccelerator" was compiled for PHP version 5.3.6. Rebuild it for your PHP version (5.3.10) or download precompiled binaries.

...

READ ALL

PHP巧用vdisk制作网络硬盘

利用vdisk提供的API接口制作网络硬盘空间,大大节省了自己的硬盘空间,还能一定程度上放置盗链,这应该是众多小站的选择。本文仅提供设计步骤,具体代码不贴上,如需要可以联系屋主索取哦。废话不多说,开始计步骤

申请账号

到vdisk申请一个帐号,并开通API接口服务。

如何申请帐号,这里就不罗嗦了,只要是会打字的童鞋都能申请。目前所有申请到的帐号,默认空间大小就是2G空间,我感觉2G空间已经够用了。上传大文件的请绕道,不在本文讨论范围之内。然后申请开通API接口服务,获得相应的授权码值等等,把这些值记下。

设计表结构

这里重点说明一下,虽然通过API接口你也能获取到文件列表详细信息。但不推荐通过API接口获取文件列表,因为不方便不说,还一个字:慢。用户体验非常不好,所以本篇文章采取的架构是本地存储文件列表模式。就是用户上传或者删除后,就在本地数据库上进行增加或删除。用户打开网页后,加载的是从本地数据库读取的文件列表。

...

READ ALL

Nginx禁止IP直接访问

现在IP资源短缺,许多站长都是在一台服务器或VPS上跑多个Web站点,最大程度上缓解了IP地址的泛滥使用。通过配置基于域名的虚拟主机配置几乎都是通过域名访问Web服务器,直接通过IP访问站点可能性很小。除非是一些特殊的系统,内部人自己用的以外。

目前Nginx成为WebServer得首选,因为它非常稳定高效,当你配置好基于域名的虚拟主机以后也许你会发现通过IP直接可以访问你的Web服务器,这一点非常不好,通过在nginx.conf中添加以下代码即可防止通过IP直接访问

server {
  listen 80 default_server;
  server_name _;
  return 403;
}

...

READ ALL

SWFUpload在PHP中使用实例

前几天,介绍了PHP上传文件,应该说是普通模式上传文件。在网速畅通,上传的文件不大的情况下普通模式看起来还是很使用的。但如果要上传很大的一个文件,假如说几百兆,一部电影等等。那普通模式就有点欠缺了,因为上传大文件通常时间长,如果页面长时间处于处理状态用户会误以为死机了,然后直接把网页关掉,结果上传到一半的文件被终止了。

如果使用Flash来实现上传,这样不仅可以计算上传所需时间,上传进度,状态等等,还可以在浏览器端就能判断文件的大小。所以今天介绍如何使用SWFUpload组件上传文件,大家可以到官网下载SWFUpload程序。这里就不在赘述的介绍SWFUpload的特性了

...

READ ALL

JavaScript解析JSON或者生成JSON字符串

解析与JSON化

在JavaScript中解析JSON字符串可以使用浏览器自带得JSON.parse()方法,这个方法使用非常简单,只需要把要解析的字符串传入即可

// Nicholas Lee www.qttc.net

var json = '{"name": "zhangsan"}'
var obj = JSON.parse(json)
console.log(obj) // Output: {name: "zhangsan"}

你也可以把对象JSON化,使用JSON.stringify()方法

// Nicholas Lee www.qttc.net

var obj = { name: 'zhangsan' };
var json = JSON.stringify(obj);
console.log(json); // Output: {"name":"zhangsan"}

...

READ ALL

PHP上传文件

HTML页面

form表单要注意几点

  • enctype属性必须multipart/form-data
  • method属性必须post

如以下这个表单

upload.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">
  <label for="file">Filename:</label>
  <input type="file" name="file" id="file" /> 
  <br />
  <input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

...

READ ALL

PHP时间大小比较

什么是PHP时间比较呢?

最简单的例子就是可以把两个时间用大于小于号进行两个时间的对比。有时候我们设计程序,需要控制用户操作某个功能时只能在某个时间段内可以操作,其余时间段不允许。

比如,有一个发布消息的网站,然后我在通过这个消息群发给上千用户。按照普通做法,应该就是一旦发布消息,就立即把消息群发给上千用户。这样一来,只要一有最新消息,用户就第一时间收到手机短信。可是,问题来了。比如我要是在深夜凌晨发布信息,那可就遭到所有用户投诉了。

所以,这里可以用到时间比较,要是在白天时间就可以发布,晚上则阻止。我们假设白天时间段从早上七点(七点估计好多人都没睡醒)到下午六点,那么我们可以这么干

...

READ ALL