一整套应用程序图标f3 Silk Icons 下载
这是由famfamfam提供 的一套完整的应用程序操作图标库。
该作品基于 Creative Commons Attribution 2.5 License 协议发布.
图标库的下载地址为:图 标库下载
不会ps的朋友有福了
这是由famfamfam提供 的一套完整的应用程序操作图标库。
该作品基于 Creative Commons Attribution 2.5 License 协议发布.
图标库的下载地址为:图 标库下载
不会ps的朋友有福了
脚本很简单,功能是,自动增加一个以输入域名命名的www根目录,自动生成一个ftp用户,自动创建一个mysql数据库,自动创建一个mysql用户
#!/bin/bash
#输入要增加的域名
echo “Input The Domain”
read
domain=$REPLY
#这里输入ftp密码
echo “Input The Password”
read
ftp_password=$REPLY
#mysql的超级用户名和密码
mysql_root=”root”
mysql_root_pass=”abcdefg”
database_name=${domain//./_}
database_user=${domain//./_}
vhost_file=”${domain}.conf”
echo “Input Mysql Password for Database ${database_name}”
read
database_password=$REPLY
cd /www/wwwroot/
mkdir $domain
chown daemon:daemon $domain
chmod 700 $domain
#生成虚拟机的配置文件
cd /usr/local/apache2/conf/vhost
cp 51rego.com.conf $vhost_file
sed “s/51rego.com/$domain/ig” $vhost_file >temp
cat temp>$vhost_file
#增加ftp虚拟用户和密码
cd /www/users/conf
echo $domain>>vusers.txt
echo $ftp_password>>vusers.txt
db_load -T -t hash -f vusers.txt /etc/vsftpd_login.db
#增加一个ftp账户
cd /etc/vsftpd_user_conf
cp 51rego.com $domain
sed “s/51rego.com/$domain/ig” $domain >temp
cat temp>$domain
#创建mysql数据库
mysql -u${mysql_root} -p${mysql_root_pass} -e “create database ${database_name}”
#创建mysql用户和密码
mysql -u${mysql_root} -p${mysql_root_pass} -e “grant all privileges on [...]
周鸿祎与金山之间的口水战还是战的不可开交,透过他们的周的口水炮弹,再次感受到了他的伟大人格魅力,赤裸裸的报复性的语言让我看清了他疯狂的报复心态,我感觉以前”迫害过”3721 的人是不是都头皮麻了一下,自认为一个人格端正的人是不会这样的,即便不相信金山网盾,但我宁愿相信可牛,和遨游,正式他们让我毫无犹豫的立刻卸载了360,这确实很恐怖,但一个软件控制了绝大部分电脑的时候,就像一个重磅炸弹,你不知道它什么时候就在你的电脑里爆炸。想当年3721在很多善良的国人心目中确实算是一个非常不错的软件,想上某一个网站的时候直接输入中文就行了,这是多么好的一款软件啊,为中国互联网也做出了不小的贡献,可是当它的狰狞面目露出来的时候,人们才恍然大悟,原来这款软件的背后竟是如此的肮脏龌龊不可告人。。。
顺便说句,最近电脑中了木马,经常刷新桌面时弹出网页广告窗口,用360杀了N遍,无效,在一个网友的推荐下用了下window的清理助手,成功解决,出现这种情况的网友不妨试试。
数据表里的结构还是非常简单
三个字段id , parentid ,name
算法也很简单递归,以前用递归的时候很傻,应该说极傻,因为在递归中通过查询数据表来获得子类的所有,最近开窍了,想到了一个地球人都能想得到的方法,下面是代码,一个class
<?php
class Tree {
/**
* 从数据库查询出的所有分类信息
* @var array
*/
var $arr;
/**
* 如下格式
* var $arr = array(
1 => array(‘id’=>’1′,’parentid’=>0,’name’=>’一级栏目一’),
2 => array(‘id’=>’2′,’parentid’=>0,’name’=>’一级栏目二’),
3 => array(‘id’=>’3′,’parentid’=>1,’name’=>’二级栏目一’),
);*/
/**
* 输出结构
* @var array
*/
var $tree = array();
/**
* 树形递归的深度
* @var int
*/
var $deep = 1;
/**
* 生成树形的修饰符号
* @var array
*/
var $icon = array(‘│’,’├’,’└’);
/**
* 生成指定id的下级树形结构
* @param [...]
网上最常用的做法是先在php中调用fckeditor类的createHtml方法生成一段html,直接assign给一个samrty变量即可
这里我通过smarty的插件机制,可以更方便的在smarty中集成fckeditor,在smarty的plugin目录中新建文件function.fck.php
内容如下
<?php
function smarty_function_fck($params, &$smarty)
{
if(!isset($params['InstanceName']) || empty($params['InstanceName']))
{
$smarty->trigger_error(‘fckeditor: required parameter “InstanceName” missing’);
}
static $base_arguments = array();
static $config_arguments = array();
if(!count($base_arguments))
$init = TRUE;
else
$init = FALSE;
if(isset($params['BasePath']))
{
$base_arguments['BasePath'] = $params['BasePath'];
}
else if(empty($base_arguments['BasePath']))
{
//这里设置默认的fck所在的目录,相对于要使用fck的程序的目录
$base_arguments['BasePath'] = ‘../plugins/fckeditor/’;
}
$base_arguments['InstanceName'] = $params['InstanceName'];
if(isset($params['Value'])) $base_arguments['Value'] = $params['Value'];
if(isset($params['Width'])) $base_arguments['Width'] = $params['Width'];
if(isset($params['Height'])) $base_arguments['Height'] = $params['Height'];
if(isset($params['ToolbarSet'])) $base_arguments['ToolbarSet'] = $params['ToolbarSet'];
if(isset($params['CheckBrowser'])) $base_arguments['CheckBrowser'] = $params['CheckBrowser'];
if(isset($params['DisplayErrors'])) $base_arguments['DisplayErrors'] = $params['DisplayErrors'];
// Use all other parameters for the config array (replace if needed)
$other_arguments [...]
经典的:
int IsPower(unsigned n)
{
if(n==0)
return 1;
while(n)
{
if(n%2==0)
{
n = n/2;
if(n==1)
return 1;
}
else return 0;
}
}
不必解释
超强的:
int IsPower(unsigned n)
{
return (n&&!(n&(n-1)));
}
解释:
如果一个数是2的次方,则转成2进制是首位为1,其余都为0,比如:
2(10) 4(100) 8(1000) 16(10000)……
如果一个数和全1的相与还是等于自己,则这个数就是2的次方
n&(n-1)计算的是全零的情况,故!(n&(n-1))是全1的情况
转自 http://hi.baidu.com/mzyse/blog/item/6b5f5517d5d9d30cc83d6da3.html
这次开发zencart的过程中要用过国内大名鼎鼎的支付宝接口,从zencart.cn上下了jack的 zen cart 支付宝模块从后台安装一切ok,可是测试购物的时候遇到了 ILLEGAL_SIGN错误,找了很多答案,仔仔细细看了阿里提供的api文档,还是找不出问题所在。看来得靠自己了,对着firebug,一个个核对网站传输给支付宝的post数据,发现多了 btn_submit.x,btn_submit.x 这两个参数,我把form 的method改成get,从地址栏中去掉这两个参数再打开,成功转向支付宝收银台页面,看来果然是两个参数搞得鬼!
google了下submit.x,得到如下答案
根据图形提交按钮行为W3C的描述 :
When a pointing device is used to click on the image, the form is submitted and the click coordinates passed to the server.
当指针设备用于在图像上点击,表单提交和点击坐标传递给服务器。
The x value is measured in pixels from the left of the image, and the y value in pixels from the top of the image.
在x值的单位是像素从左边的形象,以像素为单位从图像的顶部y值。
The [...]
先说下这本书确实很不错,先是因为朋友的推荐,下了电子版,立即被其中深入透彻的内容吸引了,然后从当当买了纸质的,这也是我买过的最贵的几本书之一了,后来为了方便在上下班路上用手机阅读,又自己根据电子版的pdf文件转成了txt格式的,无奈txt格式的没有目录结构,阅读查找起来实在是很不方便,于是又弄成了umd格式的,目录做到了每一章,呵呵,因为涉及到文件切割,编码问题,这个umd还是花了不少时间,当然好东西怎能一个人分享呢,下面是下载地址,喜欢的朋友可以留个脚印。
Think in java中文版
今天又摸了下cakephp,突然想研究一下cakephp中modle所提供的findbyfieldname..这样的方法,深入研究了一下,又发现了php的一个新技能!这确实是一个很有魔力的东西,简单代码如下
class OverLoadable{
//这个方法,当调用类中不存在的的方法时会调用这个方法,php自动把这个不存在的方法名和这个方法里的变量数组填充进这个方法并自动调用,于是我要findbyUsername时, 我就可以简单的通过正则提取出方法名中的Username这个字符串,然后传递给类中真正存在的方法findbyfield($field),这样就间接的实现了findbyUsername方法
于是这里,我就可以通过正则提出出方法名
function __call($method, $params){
if(preg_match(“/findby(?P.*)/i”,$method,$preg))
return $this->findbyfield($preg['field']);
}
function findbyfield($field)
{
echo $field;
}
//当读取类的成员变量不存在时,触发这个方法,以你要读取的变量名作为参数
function __get($name){
echo “Your val is $name,and is not exsit in this class!”;
}
//当写入类的成员变量不存在时,触发这个方法,以你要写入的变量名和值作为参数
function __set($name,$value){
echo ‘Your val is ‘.$name.’=>’.$value;
}
}
$oo = new OverLoadable();
$oo->findbyusername();
$oo->i = 5;
?>
最近评论