安装kernel-devel和gcc:
# yum install kernel-devel gcc gcc-c++
安装增强功能。
转载:http://my.oschina.net/VincentJiang/blog/142759
]]>2009年2月,辞去包装设计的工作,便自己去做户外广告业务,开小门面和自己的弟弟一起创业。
2009年6月,和我弟弟不合闹翻了。我弟弟去打工去了,我自己支撑门市,那一刻我感觉离关门不远了。
2009年12月,正式将苦心经验的门市和设备转手给别人,届时亏掉2W块钱,忍痛割爱了。
2010年1月,重整旗鼓租铺面专业从事网站开发!
从2009年4月到2010年4月,一年的时间里网站开发的费用合计5万元左右,甚是欣慰。
目前正是铁心了在这个市场上立足,因为我已经没有别的选择了,有人说,男人一生只做一件事,希望和祝福,不求赚多少。只求一家平安,便足以。
在我们这个小城市,那点钱不足为奇,对于有钱的人来说,那点微乎其微,我只是感叹老天不曾忘记我,高兴的是通过那么多年的自学,那么多的年的努力终于通过这种方式赚到了钱,可以养家糊口。
最近也开发了一个微博,最近真是微博四起啊,确实如此。但是总还是希望数据在自己的手里,自己的东西想怎么折腾就这么折腾,那么接下来就晒晒样子:
访问地址:http://t.fvzone.com
下载地址:http://t.fvzone.com/front/online/down.fv
转自:http://blog.chinaunix.net/u/14696/showart.php?id=153398
]]>第一个是开发销售系统,这个其实对于我来说很难了,不过正在努力的进行着,也从这次开发中学到很多东西。
对PHP操作Excel有了更深入的了解,当然,如果你也需要这样的操作,那我推荐你使用Excel Explorer,很不错的一个Excel php类,但是他是一个商业程序,我目前只在google里面找到3.0的版本。
那么看看这张图吧,很丑陋:
数据库结构:
参考了typecho和wordpress的,主要是tag功能和附件,甚至自定义字段。
会话:
采用MYSQL储藏,说实话,受不了session,cookie又不是很强,这两种可控性都太差了。
URL路由映射
这个词太专业了,我也不是写程序的料子,但是我在努力,关于路由分发正在研究…
编辑器
采用Textile语法了,为什么?因为我实在控制不了可视化编辑器的行为,和他生成的那些复杂而凌乱的html代码。
暂时就说这么多吧,正在努力缓慢的进行着…
]]>一直在找像TextMate 一样的编辑器,其实之前我发布了SCITE编辑器的配色方案,说实话,SCITE很强大,功能也很多,高度的自定制我更是喜欢,基于SciLexer高亮语法所以很容易配出很好的颜色,但是还比较年轻吧,不稳定,不过我倒是没有遇到崩溃过。最大的问题是多编码的支持对UTF-8都支持不好,如果使用utf-8 no bom需要在文件头部加coding:utf-8字样来识别UTF-8编码文件,可是我每次手动加入这个代码实在有点累,也不符合人的使用习惯。
我今天对EditPlus的语言高亮进行研究,结果是支持的还算可以,只是很不完善,配置的时候定义也不清楚,总之编辑器是很强大了。
记住哦,在你使用之前一定要把EditPlus的配置目录指向Configs目录,否则无法使用,关于Configs目录请看后面!
先看看图片:
别的我想我不用说了,因为EditPlus这款编辑器使用的人非常多了,专业的介绍也随处可见。
我修改了PHP、JS、HTML、CSS、SQL这几种配色方案,别的没有改动过,因为我是做前台设计的,所以经常写CSS和HTML,有时候也写一点PHP和JS什么的,所以对视觉要求有点高,太丑的编辑器实在无法使用。
想要显示好的效是还需要安装dejavu字体,这个字体是开源的,很好的等宽字体,使用这种字体后代码看起来特别舒服
官方网站:http://dejavu.sourceforge.net/wiki/index.php/Main_Page
PHP调试:
请将你的PHP.exe的文件地址添加到系统的Path里,当然你也可以在EditPlus的用户工具组里面改这个地址,改成绝对路径就行了,使用是的时候EditPlus菜单工具组里面会列出来,分别会显示他的快捷键,第一个工具是Ctrl+1第二个就是Ctrl+2,依次排列。
CSS 格式化和优化:
集成了csstidy 1.3 C语言版,工具菜单有一个叫CSS Format的,主要用于格式化代码,格式化后代码还是竖排的,只是优化了一些写法。然使用这个工具后原来工作台上的代码会被格式化过的代码代替,也会在顶部和尾部留下一些软件运行后的记录数据,删掉他们就可以了。
还有一个叫CSS Optimization的菜单,他主要是优化代码,他会把代码压缩的极小注释也会被删掉,所以作为发布之用很好,但是建议还是用CSS Format吧!
目录说明:
我总觉得将所有的文件放在一个目录里面绝对不是一个好的主意
Configs; 这个目录放的是我们配置的数据,就是语言着色等了,所有的配置都在这里面
Documents; 说明文档目录,放了一些EditPlus的更新记录,帮助文件
Others; 这里面放了一个注册机和两个字典工具
Scripts; 这个里面放了一些CSS优化工具,PHPCB工具等
Template; 各个语言的模板文件
好了多的不说了,想看看怎么样就下载来试试吧!
有什么问题请在这里告诉我,谢谢支持!
我使用的最久的是UltraEdit和EmEditor,但是后来EmEditor出现了无法复制的问题,使我很郁闷,就没有使用了。
UltraEdit有点笨重,打开文件比较慢,着色方法还是很容易配置的。
后来无意中接触到了SCITE,多平台,开源,完全绿色,而且很小,由于集成了lua语言环境很容易扩增功能。
我目前只配了PHP、CSS、XML、HTML等语言着色,喜欢的就下载来使用吧。
以下是效果图:
PHP调试和格式化:
目前已经集成phpCB格式化代码工具,只需要在打开PHP文件后按Ctrl+F1就OK了,然后编辑器下面会打开输出窗口,拷贝下面的代码就行了。
PHP执行,在使用之前请将PHP的路径写入WIN和系统路径,然后打开PHP文件,按F5执行,作为调试用。
CSS格式化:
已经集成了CSSTidy 1.3版,当你打开CSS文件后可以按Ctrl+F1进行格式化,这样代码会竖排,只是优化了一些写法,如果你是作为发布那么你可以按Ctrl+F2进行高度压缩,压缩后的代码很紧密,很节约空间哦~!
还有许多功能和定义请自行研究吧~!
]]>获得当前日志的分类
你可以把他复制到模板文件functions.php中去
function category_id($post) { global $wpdb, $table_prefix, $post; $sql = "SELECT tt.term_id FROM ". $table_prefix ."term_taxonomy tt, " . $table_prefix . "term_relationships tr WHERE tt.taxonomy = 'category' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id = $post->ID"; $cats = $wpdb->get_results($sql); foreach($cats as $cat) { $result = $cat->term_id; } return $result; }
要使用他很简单
只要将你的日志全局变量传入就OK了,像这样:
echo $c = category_id($post);
获得日志内容的全部图片函数
function getImgTags($s) { $result=array(); $p = "#<img\s+(?:[^>]+\s+)*src=[\"']?([^>]+?)[\"']?(?:\s+[^>]+)*\s*/?>#sim"; $r=preg_match_all($p,$s,$o); if (!$r) {return false;} else { foreach ($o[0] as $k=>$v) { $result[$k]["tagStr"]=$v; $result[$k]["src"]=$o[1][$k]; $p2 = "#<img\s+(?:[^>]+\s+)*(alt|title)=[\"']?([^>]+?)[\"']?(?:\s+[^>]+)*\s*/?>#sim"; $r2=preg_match($p2,$v,$o2); if ($r2) $result[$k][$o2[1]]=$o2[2]; } } return $result;
这个函数可能有些复杂,不过他可是相当的强大,前些日子为了应付一个摄影网站写的,他可以获得下面这种格式的图片地址和说明:
<img src="a.gif" alt="a" />
使用方法:
<?php $result = getImgTags(get_the_content()); if($result) : foreach ($result as $v) : ?> <a href="<?php echo $v["src"]; ?>" class="lightview" rel="gallery[credit]" title="<?php echo $v["alt"]; ?>"><img src="<?php echo $img_link; ?>" alt="<?php echo $v["alt"]; ?>" title="<?php echo $v["alt"]; ?>" /></a> <?php endforeach; ?> <?php endif; ?>
首先是将我们日志的正文传入getImgTags函数,然后得到一个数组,通过使用foreach循环一一将数组取出,
图片名为<?php echo $v["src"]; ?>alt信息为<?php echo $v["alt"]; ?>
当然这些都只是实验性的,并不保证性能会很好,但是就我使用以来没有出现过问题。
还有很多很多技巧,因为实在不想写东西,所以很少发布…
使用他很方便只要插入:
<code><?php echo $test; ></code>
效果演示:
/* 我就是演示了 */ <?php phpinfo(); ?> <html> <!-- test --> </html>
就能显示代码了,这也符合我平时的习惯,还很好的向以后更换插件做好了兼容工作,如果像使用
之类的特殊符号,那以后会很麻烦的。
因为太小所以就不放下载了
直接帖出代码,下面是PHP代码和CSS样式表
<?php # -*- coding: utf-8 -*- /* Plugin Name: FVcode Plugin URI: http://sc35.com/blog/fvcodefvcode.fv Description: 这是一个小东西 Author: FV.zone Version: 0.0.0.2 Author URI: http://sc35.com/blog/ */ require_once(ABSPATH.'wp-config.php'); require_once(ABSPATH.'wp-settings.php'); function fvcode_style() { $css_url = get_bloginfo("wpurl") . '/' . PLUGINDIR . '/' . dirname(plugin_basename (__FILE__))."/fvcode.css"; echo "\n".'<link rel="stylesheet" href="' . $css_url . '" type="text/css" media="screen" />'."\n"; } function fvcode_code($match) { foreach ($match as $value) { $value = htmlspecialchars($value); $content = nl2br($value); } $o = '<div class="fvcode">'; $o .= '<div class="code">'.$content.'</div>'; $o .= '</div>'; $o .= '<div class="clear"></div>'; return $o; } function fvcode($content) { $content = preg_replace_callback("/\s*<code>\s*(.+?)\s*<\/code>\s*/sim", 'fvcode_code', $content); return $content; } function fvcode_format($content) { $content = str_replace("–", "--", $content); return $content; } add_action('wp_head', 'fvcode_style'); add_filter ('the_content','fvcode_format'); add_filter ('the_excerpt','fvcode_format'); add_filter ('comment_text','fvcode_format'); add_filter('the_content', 'fvcode',9); add_filter('the_excerpt', 'fvcode',9); add_filter('comment_text', 'fvcode',9); ?>
你只要将这个代码复制保存命名随便,然后建立一个文件夹或是不建立也行,放到plugins目录里,在后台激活就可以了。
CSS样式:
/* coding: utf-8 */ .clear{clear:both;} .fvcode { margin:6px 0; font:12px "Lucida Grande",Verdana,Arial,Sans-Serif; text-align:left; } .code { padding:6px; float:left; line-height:18px; background:#ECF6FF; color:#666; border:1px solid #D6E9FC; display: inline; }
CSS要把保存的名字命为:fvcode.css才行,当然你也可以改掉PHP里面的定义,这个随便你。
]]>其他的细节差别
当你在写css的时候,特别是用float: left(或right)排列一窜图片时,会发现在firefox里面正常而IE里面有问题。无论你用margin:0,还是border: 0来约束,都无济于事。
其实这里还有另外一个问题,就是IE对于空格的处理,firefox是忽略的而IE对于块与块之间的空格是处理的。也就是说一个div结束后要紧接着一个div写,中间不要有回车或者空格。不然也许会有问题,比如3px的偏差,而且这个原因很难发现。
非常不走运的是我又碰到了这样的问题,多个img标签连着,然后定义的float: left,希望这些图片可以连起来。但是结果在firefox里面正常而IE里面显示的每个img都相隔了3px。我把标签之间的空格都删除都没有作用。
后来的解决方法是在img外面套li,并且对li定义margin: 0,这样就解决了IE和firefox的显示偏差。IE对于一些模型的解释会产生很多错误问题,只有多多尝试才能发现原因。
2、嵌套DIV:父DIV的高度不能根据子DIV自动变化的解决方案
<div id="parent"> <div id="content"> </div> </div>
当Content内容多时,即使parent设置了高度100%或auto,在不同浏览器下还是不能完好的自动伸展。 解决方案
<div id="parent"> <div id="content"></div> <div style="font: 0px/0px sans-serif;clear: both;display: block"> </div> </div>
在层的最下方产生一个高度为1的空格,可解除这个问题
五、随机的切换图片:
#random {
BACKGROUND: url(/rotate.php);
}
这个方法很巧妙。
关于div的高度自适应
今天小尿让我帮他的页子解决一个问题,就是div的高度自适应,也就是在一个父级div中嵌套一左一右两个子div,右边的子div内容可无限扩展,而可以使得父级div的高度能被无限拉长,用一般的布局方法,在IE中可以正确浏览,在Mozilla中父级div的高度就固定在10px左右,无法自适应高度,height:auto也不行,怎么办呢。网上参考到一篇资料,要实现自适应高度,div层必须具有float属性,于是我开始动手试验,float:left的话,div就跑到页面最左边去了,这好办,我在它的外面再套一层div,把位置定好,那么里面的就算float:left也不会被移动位置了。
<div id="container_father"> <div id="container"> <div id="panel"> test<br /> test<br /> test<br /> <!-- id="panel" --> </div> <div id="sidebar"> <ul> <li class="current">预安装检查</li> <li>阅读 PFC 授权协议</li> <li>初始化数据库</li> <li>完成安装</li> </ul> <!-- id="sidebar" --> </div> <!-- id="container" --> </div> </div> #container_father { margin-left: auto; margin-right: auto; padding: 0px; width: 750px; } #container { width: 750px; border: 1px solid #cccccc; padding: 8px; margin: 0px; background-color: #F1F3F5; float: left; }
深入标准 ~ The IE Doubled Float-Margin Bug(IE双倍浮动边界Bug)
什么发生故障?
一段无错的代码把一个居左浮动(float:left)的元素放置进一个容器盒(box),并在浮动元素上使用了左边界(margin-left) 来令它和容器的左边产生一段距离。看起来相当的简单,对吗?但直至它被在IE/Win中浏览为止,在浏览器中居左浮动元素的边界长度被神秘地翻了一倍!
情况应该如何?
下面的图释展示了一个简单的div(茶色的盒子)包含着一个居左浮动的div(绿色的盒子)。浮动元素有一个100px的左边界,使容器盒与它的左边缘之间产生了一个100px的间隙。到现在为止,一直都还不错。
.floatbox { float: left; width: 150px; height: 150px; margin: 5px 0 5px 100px; /*This last value applies the 100px left margin */ }
陈旧的IE“双倍占据”
原样的相同代码被在IE/Win中浏览时以些微不同的方式显示,下面的图释展示了IE/Win在布局上所做的。
这为什么会发生?别问这种傻问题!这就是IE,记得吗?符合标准只是理想的状况,不指望实现,这个简单的事实正验证了。
重点
这个Bug仅当浮动边界和浮动元素的方向相同时出现在浮动元素和容器盒的内边缘之间,在这之后的任意有着相似边界的浮动元素不会呈现双倍边界。只有特定的浮动行的第一个浮动元素会遭遇这个Bug。像居左的情况一样,双倍边界同样神秘地显示在居右的相同方式。
修复办法!
直到现在(04年1月)这个Bug一直被认为是无法修复的,通常用来替代错误的边界的控制方法如:一个不可视浮动元素的左边距,连同一个内嵌的盒子一起,可视的盒子装在不可视浮动元素里;或者使用技巧仅对IE/Win设定边界的1/2值。这办法生效了,但是是混乱的而且搞糟了干净的源代码。不过现在全部结束了。
Steve Clason发现了一个修复办法,描述在他的Guest Demo里,修复了双倍边界和围绕文字缩进Bug。这是一个经典的IE的Bug修复办法,使用一个属性来修复影响不相关属性的Bug。
现在如何来做?
研究它,简单地将{display: inline;}设置给浮动元素就是全部所需做的!是的,听起来太简单了,不是吗?不过这是真的,仅仅一个display的”inline”声明已经能够胜任了。
熟悉规则的人知道浮动元素自动设置为”block”元素,而不管他们之前是什么。就如Steve从W3C里指出:
9.5.1 Positioning the float: the ‘float’ property
“This property specifies whether a box should float to the left, right, or not at all. It may be set for elements that generate
boxes that are not absolutely positioned. The values of this property have the following meanings:
left
The element generates a block box that is floated to the left. Content flows on the right side of the box, starting at the top
(subject to the ‘clear’ property). The ‘display’ is ignored, unless it has the value ‘none’.
right
Same as ‘left’, but content flows on the left side of the box, starting at the top.
none
The box is not floated. ”
这说明浮动元素上的{display: inline;}会被忽略,事实上所有的浏览器没有呈现任何改变,包括IE。但是,它不知何故让IE停止将浮动元素的边界翻倍。因而,这个修复办法可以被直接应用,而没有任何繁琐的隐藏方法。如果将来的一款浏览器决定对这个修复办法抱恙,只要把这个修复装入IE独用的Tan Hack里,细节如同IE Three Pixel Text-Jog Demo。
下面是两个使用了前面相同代码的生动演示,第一个照常显示了IE的Bug,下一个对浮动元素使用了”inline”修复。
.floatbox { float: left; width: 150px; height: 150px; margin: 5px 0 5px 100px; display: inline; }]]>