Myeclipse8.0/8.5丢失配置和默认workspace问题
修改Myeclipse根目录下的configuration/config.ini文件
osgi.instance.area.default=file:\D\:\\projects\\myeclipse
完美解决
修改Myeclipse根目录下的configuration/config.ini文件
osgi.instance.area.default=file:\D\:\\projects\\myeclipse
完美解决
<?php
$month = $_GET['m']?$_GET['m']:date(‘n’);
$year = $_GET['y']?$_GET['y']:date(‘Y’);
$start_week = date(‘w’,mktime(0,0,0,$month,1,$year));
$day_num = date(‘t’,mktime(0,0,0,$month,1,$year));
$end = false;
?>
<table>
<tr>
<td>星期日</td><td>星期一</td><td>星期二</td><td>星期三</td><td>星期四</td><td>星期五</td><td>星期六</td>
</tr>
<tr>
<?php
for($i = 0; $i<$start_week; $i++)
{
echo “<td></td>”;
}
$j=1;
while($j<=$day_num)
{
echo “<td>$j</td>”;
$week = ($start_week+$j-1)%7;
if($week ==6){
echo “\n\t</tr>\n”;
if($j != $day_num)
echo “\t<tr>\n\t\t”;
else $end = true;
}
$j++;
}
while($week%7 != 6)
{
echo “<td></td>”;
$week++;
}
if(!$end)
echo “\n</tr>”;
?>
</table>
做个简单的表单验证,调用表单对象的submit对象竟然出现submit is not a function这样的错误,花了半个晚上的时间,终于找出了原因
原来 js对submit关键字敏感,而我的表单中有按钮name=”submit”…
把所有的name=”submit”去掉一切正常
吐血。。。
这是由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 ${database_name}.* to ${database_user}@localhost identified by ‘${database_password}’”
echo “Ftp User Name: ${domain}”
echo “Ftp Password: ${ftp_password}”
echo “Mysql database: ${database_name}”
echo “Mysql user: ${database_user}”
echo “Mysql password: ${database_password}”
echo “success! restart httpd…”
#重启httpd
/usr/local/apache2/bin/httpd -S
service httpd graceful
exit
周鸿祎与金山之间的口水战还是战的不可开交,透过他们的周的口水炮弹,再次感受到了他的伟大人格魅力,赤裸裸的报复性的语言让我看清了他疯狂的报复心态,我感觉以前”迫害过”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 int $rootid 要获取树形结构的id
* @param string $add 递归中使用的前缀
* @param bool $parent_end 标识上级分类是否是最后一个
*/
function getTree($rootid = 0,$add = ”,$parent_end =true){
$is_top = 1;
$child_arr = $this->getChild($rootid);
if(is_array($child_arr)){
$cnt = count($child_arr);
foreach($child_arr as $key => $child){
$cid = $child['id'];
$child_child = $this->getChild($cid);
if($this->deep >1){
if($is_top == 1 && $this->deep > 1){
$space = $this->icon[1];
if(!$parent_end)
$add .= $this->icon[0];
else $add .= ‘ ’;
}if($is_top == $cnt){
$space = $this->icon[2];
$parent_end = true;
}else {
$space = $this->icon[1];
$parent_end = false;
}
}
$this->tree[] = array(‘spacer’=>$add.$k.$space,
‘name’=>$child['name'],
‘id’=>$cid
);
$is_top++;$this->deep++;
if($this->getChild($cid))
$this->getTree($cid,$add,$parent_end);
$this->deep–;}
}
return $this->tree;
}/**
* 获取下级分类数组
* @param int $root
*/
function getChild($root = 0){$a = $child = array();
foreach($this->arr as $id=>$a){
if($a['parentid'] == $root){
$child[$a['id']] = $a;
}
}
return $child?$child:false;
}
/**
* 设置源数组
* @param $arr
*/
function setArr($arr = array()){
$this->arr = $arr;
}
}
通过一次查询把结构保存进一个数组,再数组进行递归运算,无疑极大的提高了程序运行效率
使用代码很简单,得到查询结构后setArr,直接调用getTree, 皆可以得到按照程序排序号并带有前缀修饰等信息的数组,到这里通过foreach这个数组就可以得到如下的树状列表了
水果
├香蕉
├苹果
│├红富士
│└海南苹果
└桃子
网上最常用的做法是先在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 = array_diff_assoc($params, $base_arguments);
$config_arguments = array_merge($config_arguments, $other_arguments);$out = ”;
if($init)
{
$out .= ‘<script type=”text/javascript” src=”‘ . $base_arguments['BasePath'] . ‘fckeditor.js”></script>’;
}$out .= “\n<script type=\”text/javascript\”>\n”;
$out .= “var oFCKeditor = new FCKeditor(‘” . $base_arguments['InstanceName'] . “‘);\n”;foreach($base_arguments as $key => $value)
{
if(!is_bool($value))
{
// Fix newlines, javascript cannot handle multiple line strings very well.
$value = ‘”‘ . preg_replace(“/[\r\n]+/”, ‘” + $0″‘, addslashes($value)) . ‘”‘;
}
$out .= “oFCKeditor.$key = $value; “;
}foreach($config_arguments as $key => $value)
{
if(!is_bool($value))
{
$value = ‘”‘ . preg_replace(“/[\r\n]+/”, ‘” + $0″‘, addslashes($value)) . ‘”‘;
}
$out .= “oFCKeditor.Config[\"$key\"] = $value; “;
}$out .= “\noFCKeditor.Create();\n”;
$out .= “</script>\n”;return $out;
}
?>
使用代码
{fck InstanceName=”body” BasePath=“../plugins/fckeditor/” Value=$news_info.body Width=”100%” Height=”400″}
可以自定义参数 ToolbarSet-使用的工具栏, BasePath-fck相对于当前脚本的目录,InstanceName-要赋予的$_POST变量名, Value-默认值等
停止mysql服务
sudo /etc/init.d/mysql stop
建新数据库目录
mkdir /media/hda11/db
复制linux下原数据到新目录下
cp -r /var/lib/mysql/* /media/hda11/db
给新目录重命属性(很 重要,不然出现无法访问目录情况)
chown mysql:mysql /media/hda11/db
修改 配置文件
sudo nano /etc/mysql/my.cnf
把
datadir = /var/mysql换成datadir = /media/hda11/db
#在my.cnf中有提到如果修改了 datadir这几部分,最好也调整/etc/apparmor.d/usr.sbin.mysqld
修改文件 /etc/apparmor.d/usr.sbin.mysqld(似乎跟安全配置有关)
sudo nano /etc/apparmor.d/usr.sbin.mysqld
把
/var/lib/mysql r,
/var/lib/mysql/** rwk,
改成
/media/hda11/db r,
/media/hda11/db/** rwk,
再开服务器(这一步很重要)
sudo /etc/init.d/apparmor restart
重启mysql服务
sudo /etc/init.d/mysql restart
附:apparmor也是个权限控制的东东。。
参考文章:http://forum.ubuntu.org.cn/viewtopic.php?f=44&p=1074517
近期评论