<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>4's symfony blog</title>
	<atom:link href="http://www.foolbirds.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.foolbirds.com</link>
	<description>all about symfony</description>
	<lastBuildDate>Fri, 14 Oct 2011 12:36:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP中静态调用非静态方法</title>
		<link>http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html</link>
		<comments>http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html#comments</comments>
		<pubDate>Sun, 06 Mar 2011 12:52:40 +0000</pubDate>
		<dc:creator>maker</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[静态方法]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1357</guid>
		<description><![CDATA[今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明Static的方法。在我的印象中，我好像是见过这种用法，但又有些不确定。大家都知道，在手册或者教程里，方法被分为静态方法和非静态方法，通常我们静态调用的方法，肯定是静态方法。

那如果我们调用了非静态方法会怎么样呢？]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff6600;"><strong><em>1.PHP中可以静态调用非静态方法么？</em></strong></span></p>
<p>今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明Static的方法。在我的印象中，我好像是见过这种用法，但又有些不确定。大家都知道，在手册或者教程里，方法被分为静态方法和非静态方法，通常我们静态调用的方法，肯定是静态方法。</p>
<p>那如果我们调用了非静态方法会怎么样呢？首先做测试.<br />
<code>&lt;?php<br />
class test{<br />
function test(){<br />
echo 'it works';<br />
}<br />
}<br />
test::test();</code><br />
执行以下，返回错误如下<br />
<code>Fatal error: Non-static method test::test() cannot be called statically in /home/×××/test.php<br />
on line 7 Call Stack: 0.0002 332548 1. {main}() /home/×××/test.php:0</code><br />
这个时候，可能大家就会认为静态调用非静态方法是行不通的了，但其实，结论下的过早了，因为test()这个方法比较特殊，与类同名，是构造方法。</p>
<p>我们继续测试。<br />
<code>&lt;?php<br />
class test{<br />
function test(){<br />
echo 'it works';<br />
}<br />
function test2(){<br />
echo 'it works too';<br />
}<br />
}<br />
test::test2();</code><br />
执行结果：<br />
<code>it works too</code><br />
这说明，<strong>静态调用非静态方法是可行的，但是静态调用构造方法是不可以的</strong>。为了验证这个结论，我又做了如下测试：<br />
<code>&lt;?php<br />
class test{<br />
static function test(){<br />
echo 'it works';<br />
}<br />
}<br />
test::test();</code><br />
执行的结果如下：<br />
<code>Fatal error: Constructor test::test() cannot be static in /home/xxx/test.php on line 9</code><br />
构造方法不能声明静态，所以上面的推论正确。</p>
<p>但这个结果的确是很特殊的，因为可能<strong>只有PHP可以静态调用非静态方法</strong>，我用Java做了实验，如果静态调用非静态方法会报如下错误：<br />
<code>Cannot make a static reference to the non-static method showString() from the type HelloWorldApp</code><br />
其他语言我没有一一尝试，但这已经足够来说明PHP的特殊之处，关于为什么PHP会有这样的情况我暂时没有找到相关说明。</p>
<p><span style="color: #ff6600;"><strong><em>2.静态调用非静态方法是否应该被应用？</em></strong></span></p>
<p>那我们是不是可以使用这种方法来代替static方法呢？<strong> 首先在代码的可读性上来看，静态调用非静态方法当然是不被推荐的</strong>，这会让维护者产生疑惑。</p>
<p>接下来我们再做一些实验，来看一下静态调用非静态方法在效率上是否会有一定的优势。<br />
<code>&lt;?php<br />
class test{function test2(){}}<br />
for($k=0; $k&lt;10000; $k++)<br />
{<br />
test::test2();<br />
}</code><br />
上面代码在我这里的执行时间是18到28毫秒，我们再来测试标准的写法。<br />
<code>&lt;?php<br />
class test{static function test2(){}}<br />
for($k=0; $k&lt;10000; $k++)<br />
{<br />
test::test2();<br />
}</code><br />
上面的代码执行时间在5到10毫秒之间，这样看来，静态调用非静态方法的效率要比标准的静态方法调用低的多，所以<strong>在效率上也不推荐静态调用非静态方法</strong>。</p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html" title="仿symfony机制实现不用require或者include来实例化类">仿symfony机制实现不用require或者include来实例化类</a></li><li><a href="http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html" title="vim配合phpcs实现自动语法检查">vim配合phpcs实现自动语法检查</a></li><li><a href="http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html" title="symfony1.4 DateTime对于PHP低版本的兼容问题">symfony1.4 DateTime对于PHP低版本的兼容问题</a></li><li><a href="http://www.foolbirds.com/%e4%bd%bf%e7%94%a8bit-ly%e7%9f%ad%e7%bd%91%e5%9d%80%e6%9c%8d%e5%8a%a1api%e7%ae%80%e5%8c%96url.html" title="使用Bit.ly短网址服务API简化URL">使用Bit.ly短网址服务API简化URL</a></li><li><a href="http://www.foolbirds.com/%e8%a7%a3%e5%86%b3php%e7%94%9f%e6%88%90utf-8%e7%bc%96%e7%a0%81%e7%9a%84csv%e6%96%87%e4%bb%b6%e7%94%a8excel%e6%89%93%e5%bc%80%e4%b9%b1%e7%a0%81%e7%9a%84%e9%97%ae%e9%a2%98.html" title="解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题">解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/archlinux-lam.html" title="archlinux 安装 LAMP环境">archlinux 安装 LAMP环境</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>symfony系列文章归档</title>
		<link>http://www.foolbirds.com/symfony-archives.html</link>
		<comments>http://www.foolbirds.com/symfony-archives.html#comments</comments>
		<pubDate>Tue, 19 Oct 2010 05:24:36 +0000</pubDate>
		<dc:creator>maker</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1347</guid>
		<description><![CDATA[由于种种原因，本站的symfony系列教程已经停止更新一年之久，又因种种原因，本站的编辑们也都停止了对本站的维护。
symfony是我使用过最经典的php框架，symfony可能不是最好的，但在我用过的种种框架中，symfony绝对是最优秀的，虽然，我现在已经连创建项目的命令都已经忘掉了，但是symfony的oo思想让我获益匪浅。
目前symfony的2.0版本已经在开发阶段，国内的symfony开发者也越来越多，本站绝大多数的symfony文章都是1.2版本的时候写的，可能已经跟不上时代，但其中的思想仍然值得广大symfony入门者参考，我对本站的symfony文章进行了一次整理，很遗憾没能把这些文章写成一个系列。
基础篇

symfony环境检查 
symfony目录结构及部署办法说明 
symfony cheat sheet 
symfony命令行详解 
form表单的新建、修改 
form使用一例 
如何在视图里接收变量 
在layout中应用action定义的变量 
如何设置title、keywords 
使用helper加快视图开发
admin后台模板作用 
Criteria详解
symfony1.2中的文件上传和验证 
关于上传图片后显示上传图片的路径问题 
在symfony中使用多语言(i18n) 

进阶篇

跳并快乐着－symfony跳转指南 
插件使用一例:在form中加入拾色器 
开启symfony的CSRF保护 
CSRF使用注意事项和form的标准用法 
在symfony项目中应用TinyMCE 
在symfony项目中应用TinyMCE（续） 
在symfony中使用FCKeditor上传图片附件 
symfony中组件槽(Component Slot)的应用 
使用symfony filter 过滤URL 

高级篇

编写widget一例:支持Google Maps的坐标输入框 
symfony缓存(cache)机制简介 
在admin generator中加入复杂的自定义列 
symfony1.2下的命令行程序(batch) 
创建symfony插件 
symfony插件编写一例:QRcodePlugin 
发布你的symfony插件 
symfony1.2使用1.0插件sfFeedPlugin一例 
symfony数据表关联详解(for propel) 
symfony1.2的后台(generate-admin)模板结构 
在symfony中使用第三方图片处理工具WideImage 
成为一名symfony文档贡献者 
内嵌表单详解（How to Embed Forms in Symfony 1.2 Admin Generator 中文版） 

在此感谢站长bobhero和每一位做出过贡献的编辑们（排名不分先后）zhuozi，kthiz2006，hansir，szn000，duandi，同时也感谢各位读者对我们的支持。
随机日志跳并快乐着－symfony跳转指南外包 佣兵计划怎么在app中构造其它app的链接(二)创建symfony插件在Ubuntu下面，让symfony工作起来symfony1.2中的文件上传和验证Symfony中的action和actions使用helper加快视图开发CSRF使用注意事项和form的标准用法判断搜索引擎爬虫]]></description>
			<content:encoded><![CDATA[<p>由于种种原因，本站的symfony系列教程已经停止更新一年之久，又因种种原因，本站的编辑们也都停止了对本站的维护。</p>
<p>symfony是我使用过最经典的php框架，symfony可能不是最好的，但在我用过的种种框架中，symfony绝对是最优秀的，虽然，我现在已经连创建项目的命令都已经忘掉了，但是symfony的oo思想让我获益匪浅。</p>
<p>目前symfony的2.0版本已经在开发阶段，国内的symfony开发者也越来越多，本站绝大多数的symfony文章都是1.2版本的时候写的，可能已经跟不上时代，但其中的思想仍然值得广大symfony入门者参考，我对本站的symfony文章进行了一次整理，很遗憾没能把这些文章写成一个系列。</p>
<p>基础篇</p>
<ul>
<li><a href="/symfony-requirements-check.html" title="maker@2009-1-14">symfony环境检查</a> </li>
<li><a href="/symfony-folder-and-deploy.html" title="bobhero@2008-12-23">symfony目录结构及部署办法说明</a> </li>
<li><a href="/symfony-cheat-sheet.html" title="maker@2009-10-27">symfony cheat sheet</a> </li>
<li><a href="/symfony-cmd.html" title="maker@2009-2-24">symfony命令行详解</a> </li>
<li><a href="/form-create-and-edit.html" title="zhuozi@2008-12-16">form表单的新建、修改</a> </li>
<li><a href="/use-form.html" title="maker@2008-12-22">form使用一例</a> </li>
<li><a href="/get-var-in-templates.html" title="kthiz2006@2008-12-15">如何在视图里接收变量</a> </li>
<li><a href="/%e5%9c%a8layout%e4%b8%ad%e5%ba%94%e7%94%a8action%e5%ae%9a%e4%b9%89%e7%9a%84%e5%8f%98%e9%87%8f.html" title="zhuozi@2009-2-25">在layout中应用action定义的变量</a> </li>
<li><a href="/set-title-and-keywords.html" title="zhuozi@2008-12-15">如何设置title、keywords</a> </li>
<li><a href="/use-helpers.html" title="maker@2008-12-22">使用helper加快视图开发</a></li>
<li><a href="/symfony-admin-generator-templates.html" title="zhuozi@2008-12-15">admin后台模板作用</a> </li>
<li><a href="/propel-criteria-in-symfony.html" title="maker@2009-2-6">Criteria详解</a></li>
<li><a href="/symfony12-upload-file-and-validate.html" title="maker@2008-12-26">symfony1.2中的文件上传和验证</a> </li>
<li><a href="/about-upload-images-path.html" title="kthiz2006@2008-12-15">关于上传图片后显示上传图片的路径问题</a> </li>
<li><a href="/about-i18n.html" title="zhuozi@2008-12-15">在symfony中使用多语言(i18n)</a> </li>
</ul>
<p>进阶篇</p>
<ul>
<li><a href="/redirect-and-forward-in-symfony.html" title="maker@2009-3-17">跳并快乐着－symfony跳转指南</a> </li>
<li><a href="/use-colorpicke.html" title="maker@2008-12-16">插件使用一例:在form中加入拾色器</a> </li>
<li><a href="/csrf.html" title="maker@2008-12-22">开启symfony的CSRF保护</a> </li>
<li><a href="/csrf-and-form.html" title="maker@2009-4-15">CSRF使用注意事项和form的标准用法</a> </li>
<li><a href="/add-tinymce-to-symfony.html" title="zhuozi@2009-1-8">在symfony项目中应用TinyMCE</a> </li>
<li><a href="/add-tinymce-to-symfony-2.html" title="zhuozi@2009-1-15">在symfony项目中应用TinyMCE（续）</a> </li>
<li><a href="/symfony-fckeditory-and-upload-image.html" title="maker@2009-2-11">在symfony中使用FCKeditor上传图片附件</a> </li>
<li><a href="/component-slot-in-symfony.html" title="zhuozi@2009-2-25">symfony中组件槽(Component Slot)的应用</a> </li>
<li><a href="/use_symfony_filter_to_filteredurl.html" title="szn000@2010-5-26">使用symfony filter 过滤URL</a> </li>
</ul>
<p>高级篇</p>
<ul>
<li><a href="/symfony-latlng-widget-with-google-maps.html" title="maker@2008-12-15">编写widget一例:支持Google Maps的坐标输入框</a> </li>
<li><a href="/symfony-cache.html" title="kthiz2006@2008-12-26">symfony缓存(cache)机制简介</a> </li>
<li><a href="/admin-generator-list-display.html" title="maker@2008-12-24">在admin generator中加入复杂的自定义列</a> </li>
<li><a href="/batch-in-symfony12.html" title="maker@2009-5-6">symfony1.2下的命令行程序(batch)</a> </li>
<li><a href="/create-symfony-plugin.html" title="maker@2009-1-16">创建symfony插件</a> </li>
<li><a href="/write-symfony-qrcode-plugin.html" title="maker@2009-1-16">symfony插件编写一例:QRcodePlugin</a> </li>
<li><a href="/publish-a-symfony-plugin.html" title="maker@2009-1-16">发布你的symfony插件</a> </li>
<li><a href="/install-uncompatible-symfony-plugin-and-use-sffeedplugin.html" title="maker@2009-1-20">symfony1.2使用1.0插件sfFeedPlugin一例</a> </li>
<li><a href="/symfony-references-with-propel.html" title="maker@2009-2-27">symfony数据表关联详解(for propel)</a> </li>
<li><a href="m/generate-admin-templates-structure.html" title="maker@2010-4-8">symfony1.2的后台(generate-admin)模板结构</a> </li>
<li><a href="/wideimage-in-symfony.html" title="maker@2009-3-31">在symfony中使用第三方图片处理工具WideImage</a> </li>
<li><a href="/to-be-a-symfony-contributor.html" title="maker@2009-8-1">成为一名symfony文档贡献者</a> </li>
<li><a href="/how-to-embed-forms-in-symfony-12-admin-generator.html" title="maker@2009-6-18">内嵌表单详解（How to Embed Forms in Symfony 1.2 Admin Generator 中文版）</a> </li>
</ul>
<p>在此感谢站长bobhero和每一位做出过贡献的编辑们（排名不分先后）zhuozi，kthiz2006，hansir，szn000，duandi，同时也感谢各位读者对我们的支持。</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://www.foolbirds.com/freebsd710-install-lamp-with-ports.html" title="FreeBSD7.10通过ports安装lamp">FreeBSD7.10通过ports安装lamp</a></li><li><a href="http://www.foolbirds.com/symfony%e4%b8%ad%e7%9a%84action%e5%92%8cactions.html" title="Symfony中的action和actions">Symfony中的action和actions</a></li><li><a href="http://www.foolbirds.com/add-table-prefix-in-symfony.html" title="Add table prefix  in symfony－在symfony中使用表前缀">Add table prefix  in symfony－在symfony中使用表前缀</a></li><li><a href="http://www.foolbirds.com/comment-example.html" title="注释例子">注释例子</a></li><li><a href="http://www.foolbirds.com/symfony-cmd.html" title="symfony命令行详解">symfony命令行详解</a></li><li><a href="http://www.foolbirds.com/csrf.html" title="开启symfony的CSRF保护">开启symfony的CSRF保护</a></li><li><a href="http://www.foolbirds.com/archlinux-lam.html" title="archlinux 安装 LAMP环境">archlinux 安装 LAMP环境</a></li><li><a href="http://www.foolbirds.com/use-form.html" title="form使用一例">form使用一例</a></li><li><a href="http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html" title="vim配合phpcs实现自动语法检查">vim配合phpcs实现自动语法检查</a></li><li><a href="http://www.foolbirds.com/how-to-install-symfony12-in-windows.html" title="如何在WINDOWS下设置SYMFONY1.2">如何在WINDOWS下设置SYMFONY1.2</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/symfony-archives.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>session 在 IE下失效 解决办法</title>
		<link>http://www.foolbirds.com/session-ie-firefox-ie7.html</link>
		<comments>http://www.foolbirds.com/session-ie-firefox-ie7.html#comments</comments>
		<pubDate>Tue, 17 Aug 2010 01:22:43 +0000</pubDate>
		<dc:creator>bobhero</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1345</guid>
		<description><![CDATA[工作中,遇到一个问题 ,同样的代码在FIREFOX 和 IE 下 表现 相差太多   ,查之       ,竟然是因为  session_id() 返回值的问题,解决过程如下
1. 测试 FIREFOX 和 IE ,IE每次刷新页面时  得到的SESSION_ID 值不一样,FIREFOX 一样
2.测试 IE6,IE7,IE8 竟然 只有IE7 有这种 现象&#8230;&#8230;&#8230;..
3.经多方查证,没有结果 ,网上没有人和我的情况一下,自己解决吧
4.我左三圈右三圈 ,最后发现  竟然 是   内裤 掉色  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;
域名里 有 下线 &#8220;_&#8221; ,这个竟然 是BUG 所在点
结论: 在IE7 下 ,如果 域名里包括下划线,SESSION [...]]]></description>
			<content:encoded><![CDATA[<p>工作中,遇到一个问题 ,同样的代码在FIREFOX 和 IE 下 表现 相差太多   ,查之       ,竟然是因为  session_id() 返回值的问题,解决过程如下<br />
1. 测试 FIREFOX 和 IE ,IE每次刷新页面时  得到的SESSION_ID 值不一样,FIREFOX 一样<br />
2.测试 IE6,IE7,IE8 竟然 只有IE7 有这种 现象&#8230;&#8230;&#8230;..<br />
3.经多方查证,没有结果 ,网上没有人和我的情况一下,自己解决吧<br />
4.我左三圈右三圈 ,最后发现  竟然 是   内裤 掉色  &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;</p>
<p>域名里 有 下线 &#8220;_&#8221; ,这个竟然 是BUG 所在点</p>
<p>结论: 在IE7 下 ,如果 域名里包括下划线,SESSION 将失效</p>
<p>如果你觉得本BLOG对你有帮助 ,请帮助其它人</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://www.foolbirds.com/write-symfony-qrcode-plugin.html" title="symfony插件编写一例:QRcodePlugin">symfony插件编写一例:QRcodePlugin</a></li><li><a href="http://www.foolbirds.com/csrf-and-form.html" title="CSRF使用注意事项和form的标准用法">CSRF使用注意事项和form的标准用法</a></li><li><a href="http://www.foolbirds.com/1072.html" title="打鸟游戏修改版">打鸟游戏修改版</a></li><li><a href="http://www.foolbirds.com/symfony-latlng-widget-with-google-maps.html" title="编写widget一例:支持Google Maps的坐标输入框">编写widget一例:支持Google Maps的坐标输入框</a></li><li><a href="http://www.foolbirds.com/symfony-form-offsetunset.html" title="Symfony中自定义form中offsetUnset的应用">Symfony中自定义form中offsetUnset的应用</a></li><li><a href="http://www.foolbirds.com/use-colorpicke.html" title="插件使用一例:在form中加入拾色器">插件使用一例:在form中加入拾色器</a></li><li><a href="http://www.foolbirds.com/comment-example.html" title="注释例子">注释例子</a></li><li><a href="http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html" title="PHP中静态调用非静态方法">PHP中静态调用非静态方法</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8a%a8%e6%80%81%e6%b7%bb%e5%8a%a0%ef%bc%8f%e5%88%a0%e9%99%a4%e8%a1%a8%e6%a0%bc%e5%85%83%e7%b4%a0.html" title="如何实现动态添加／删除表格元素">如何实现动态添加／删除表格元素</a></li><li><a href="http://www.foolbirds.com/symfony12-upload-file-and-validate.html" title="symfony1.2中的文件上传和验证">symfony1.2中的文件上传和验证</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/session-ie-firefox-ie7.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在IE下使用Script Debugger调试javascript兼容性问题</title>
		<link>http://www.foolbirds.com/%e5%9c%a8ie%e4%b8%8b%e4%bd%bf%e7%94%a8script-debugger%e8%b0%83%e8%af%95javascript%e5%85%bc%e5%ae%b9%e6%80%a7%e9%97%ae%e9%a2%98.html</link>
		<comments>http://www.foolbirds.com/%e5%9c%a8ie%e4%b8%8b%e4%bd%bf%e7%94%a8script-debugger%e8%b0%83%e8%af%95javascript%e5%85%bc%e5%ae%b9%e6%80%a7%e9%97%ae%e9%a2%98.html#comments</comments>
		<pubDate>Mon, 28 Jun 2010 07:30:39 +0000</pubDate>
		<dc:creator>maker</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[script debugger]]></category>
		<category><![CDATA[兼容性]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1325</guid>
		<description><![CDATA[该死的浏览器战争,苦了我们这群web开发者,每天都要面对html兼容性,css兼容性,javascript兼容性! 还有什么比这更要命的么?
通常情况下, 我都用Firefox下的Firebug插件来开发Javascript应用, 但是经常会有代码在IE下就失去作用, 而且IE的错误提示还很模糊, 经常会让我无从下手.
以前听说过IE下的一些调试工具,从没用过,刚刚被一个语法错误逼的没办法向bobhero求助,他推荐我装了Script Debugger.
这是微软开发的一款开发工具, Google之, 进入微软的网站下载安装, 如果你不是Win98或者Win Me记得要下载 Script Debugger for Windows NT 4.0 and Later, 否则等着杯具去吧.
安装过程大概就是, 下一步->下一步->下一步->下一步->下一步->下一步&#8230;.
安装完毕后, 进入Internet选项->高级, 如下图把禁用脚本调试(Internet Explorer)和禁用脚本调试(其他)两个选项关闭掉. 如果你忘了这步, 那么, 痛苦去吧, 你会发现和没装没什么差别.

搞定上一步之后, 找你的错误去吧.


我刚刚发现我还装过另一个调试工具,我怎么就不记得了呢&#8230;
如何实现动态添加／删除表格元素]]></description>
			<content:encoded><![CDATA[<p>该死的浏览器战争,苦了我们这群web开发者,每天都要面对html兼容性,css兼容性,javascript兼容性! 还有什么比这更要命的么?</p>
<p>通常情况下, 我都用Firefox下的Firebug插件来开发Javascript应用, 但是经常会有代码在IE下就失去作用, 而且IE的错误提示还很模糊, 经常会让我无从下手.</p>
<p>以前听说过IE下的一些调试工具,从没用过,刚刚被一个语法错误逼的没办法向bobhero求助,他推荐我装了Script Debugger.</p>
<p>这是微软开发的一款开发工具, Google之, 进入微软的网站下载安装, 如果你不是Win98或者Win Me记得要下载 Script Debugger for Windows NT 4.0 and Later, 否则等着杯具去吧.</p>
<p>安装过程大概就是, 下一步->下一步->下一步->下一步->下一步->下一步&#8230;.</p>
<p>安装完毕后, 进入Internet选项->高级, 如下图把禁用脚本调试(Internet Explorer)和禁用脚本调试(其他)两个选项关闭掉. 如果你忘了这步, 那么, 痛苦去吧, 你会发现和没装没什么差别.<br />
<a href="http://www.foolbirds.com/wp-content/uploads/2010/06/ie-script-debuger-01.gif"><img src="http://www.foolbirds.com/wp-content/uploads/2010/06/ie-script-debuger-01.gif" alt="ie-script-debugger-01" title="ie-script-debuger-01" width="450" height="638" class="alignnone size-full wp-image-1326" /></a></p>
<p>搞定上一步之后, 找你的错误去吧.<br />
<a href="http://www.foolbirds.com/wp-content/uploads/2010/06/ie-script-debuger-02.gif"><img src="http://www.foolbirds.com/wp-content/uploads/2010/06/ie-script-debuger-02.gif" alt="ie-script-debugger-02" title="ie-script-debuger-02" width="376" height="474" class="alignnone size-full wp-image-1330" /></a></p>
<p><a href="http://www.foolbirds.com/wp-content/uploads/2010/06/ie-script-debuger-03.gif"><img src="http://www.foolbirds.com/wp-content/uploads/2010/06/ie-script-debuger-03.gif" alt="ie-script-debugger-03" title="ie-script-debuger-03" width="332" height="580" class="alignnone size-full wp-image-1331" /></a></p>
<p>我刚刚发现我还装过另一个调试工具,我怎么就不记得了呢&#8230;</p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8a%a8%e6%80%81%e6%b7%bb%e5%8a%a0%ef%bc%8f%e5%88%a0%e9%99%a4%e8%a1%a8%e6%a0%bc%e5%85%83%e7%b4%a0.html" title="如何实现动态添加／删除表格元素">如何实现动态添加／删除表格元素</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/%e5%9c%a8ie%e4%b8%8b%e4%bd%bf%e7%94%a8script-debugger%e8%b0%83%e8%af%95javascript%e5%85%bc%e5%ae%b9%e6%80%a7%e9%97%ae%e9%a2%98.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>vim配置文件注解</title>
		<link>http://www.foolbirds.com/vim%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e6%b3%a8%e8%a7%a3.html</link>
		<comments>http://www.foolbirds.com/vim%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e6%b3%a8%e8%a7%a3.html#comments</comments>
		<pubDate>Thu, 27 May 2010 08:00:31 +0000</pubDate>
		<dc:creator>kthiz2006</dc:creator>
				<category><![CDATA[vi/vim]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vimrc]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1259</guid>
		<description><![CDATA[最近，本人把自己的vim的配置文件整理了一下，现今拿出来晒晒与大家分享，附注释如下：
﻿
set nocompatible "设定 gvim 运行在增强模式下,不使用vi的键盘模式
set helplang=cn  "设置帮助的语言
filetype on "设置文件类型的检测
filetype plugin on "为特定的文件类型允许插件文件的载入
set et "编辑时将所有 Tab 替换为空格
set sw=2 "自动缩进的时候， 缩进尺寸为 2 个空格
set sts=2 "设置 softtabstop 为 2. 输入 tab 后就跳了2格.
set smarttab "行首的  根据 'shiftwidth' 插入空白
let php_folding = 1 "折叠类、函数等
set backspace=indent,eol,start "不设定的话在插入状态无法用退格键和 Delete
set nobackup " 覆盖文件时不备份
set history=50		" 设置在命令行显示多少历史记录
set showcmd			" 在状态栏显示目前所执行的指令
set incsearch		" 输入搜索内容时就显示搜索结果
set number				" 显示行号
"打开自动缩进和 C [...]]]></description>
			<content:encoded><![CDATA[<p>最近，本人把自己的vim的配置文件整理了一下，现今拿出来晒晒与大家分享，附注释如下：<br />
<code>﻿<br />
set nocompatible "设定 gvim 运行在增强模式下,不使用vi的键盘模式<br />
set helplang=cn  "设置帮助的语言<br />
filetype on "设置文件类型的检测<br />
filetype plugin on "为特定的文件类型允许插件文件的载入<br />
set et "编辑时将所有 Tab 替换为空格<br />
set sw=2 "自动缩进的时候， 缩进尺寸为 2 个空格<br />
set sts=2 "设置 softtabstop 为 2. 输入 tab 后就跳了2格.<br />
set smarttab "行首的 <Tab> 根据 'shiftwidth' 插入空白<br />
let php_folding = 1 "折叠类、函数等<br />
set backspace=indent,eol,start "不设定的话在插入状态无法用退格键和 Delete<br />
set nobackup " 覆盖文件时不备份<br />
set history=50		" 设置在命令行显示多少历史记录<br />
set showcmd			" 在状态栏显示目前所执行的指令<br />
set incsearch		" 输入搜索内容时就显示搜索结果<br />
set number				" 显示行号<br />
"打开自动缩进和 C 语言风格的缩进模式,定制 C 语言缩进风格<br />
set cindent<br />
set autoindent<br />
set mouse=a				" 设定在任何模式下鼠标都可用<br />
set scrolloff=5 		" 设定光标离窗口上下边界 5 行时窗口自动滚动<br />
set ignorecase			" 搜索时忽略大小写<br />
set smartcase			"但在有一个或以上大写字母时,仍保持对大小写敏感<br />
set hid 				" 允许在有未保存的修改时切换缓冲区，此时的修改由切换由 vim 负责保存<br />
set shiftwidth=2		" 设定 << 和 >> 命令移动时的宽度为 4<br />
set showmatch			" 在输入括号时光标会短暂地跳到与之相匹配的括号处，不影响输入<br />
"设置 折行<br />
set textwidth=84<br />
set wrap<br />
syn on<br />
set completeopt=menu,longest,preview<br />
set confirm<br />
"解决乱码<br />
set encoding=utf-8<br />
set fileencodings=utf-8,chinese,latin-1<br />
if has("win32")<br />
set fileencoding=chinese<br />
else<br />
set fileencoding=utf-8<br />
endif<br />
"解决菜单乱码<br />
source $VIMRUNTIME/delmenu.vim<br />
source $VIMRUNTIME/menu.vim<br />
"解决consle输出乱码<br />
language messages zh_CN.utf-8<br />
"设置CTAGS<br />
"let Tlist_Ctags_Cmd = 'E:\vim72\ctag\ctags.exe'<br />
let Tlist_Auto_Open =<br />
let Tlist_Exit_OnlyWindow = 1<br />
let Tlist_Use_Right_Window =1<br />
let tlist_actionscript_settings = 'actionscript;c:class;f:method;p:property;v:variable'<br />
set tags=./tags,./../tags,./**/tags<br />
"设置配色方案<br />
"colorscheme vibrantink<br />
"设置字体<br />
set guifont=Lucida_Console:h11:b<br />
"设置 bufexplorer<br />
map <c-w><c-f> :FirstExplorerWindow<cr><br />
map <c-w><c-b> :BottomExplorerWindow<cr><br />
map <c-w><c-t> :NERDTreeToggle<cr><br />
"去掉烦死我的错误声音<br />
set vb t_vb=<br />
"工作目录随文件变<br />
autocmd BufEnter * cd %:p:h<br />
"设置状态栏<br />
set statusline+=%f<br />
"不显示工具条<br />
set guioptions-=T<br />
"显示横向滚动条<br />
set guioptions+=b<br />
"设置自动补全<br />
setl omnifunc=nullcomplete#Complete<br />
autocmd FileType * setl omnifunc=nullcomplete#Complete<br />
autocmd FileType python setl omnifunc=pythoncomplete#Complete<br />
autocmd FileType javascript setl omnifunc=javascriptcomplete#CompleteJS<br />
autocmd FileType html setl omnifunc=htmlcomplete#CompleteTags noci<br />
autocmd FileType css setl omnifunc=csscomplete#CompleteCSS noci<br />
autocmd FileType xml setl omnifunc=xmlcomplete#CompleteTags<br />
autocmd FileType php setl omnifunc=phpcomplete#CompletePHP<br />
autocmd FileType c setl omnifunc=ccomplete#Complete<br />
"设定状态条<br />
set cmdheight=1             " 设定命令行的行数为 1<br />
set laststatus=2            " 显示状态栏 (默认值为 1, 无法显示状态栏)<br />
set statusline=%F%m%r,%Y,%{&#038;fileformat}\ \ \ ASCII=\%b,HEX=\%B\ \ \ %l,%c%V\ %p%%\ \ \ [\ %L\ lines\ in\ all\ ]<br />
"设置智能大小写查找<br />
set ignorecase smartcase<br />
"设置标尺<br />
set ruler			"打开状态栏标尺<br />
"设置制表符<br />
set cindent shiftwidth=2<br />
set softtabstop=2<br />
set smarttab<br />
set list "显示制表符<br />
set listchars=tab:>-<br />
"设置标签<br />
function GuiTabLabel()<br />
    let label = ''<br />
let bufnrlist = tabpagebuflist(v:lnum)<br />
    " 如果标签页里有修改过的缓冲区，加上 '+'<br />
    for bufnr in bufnrlist<br />
    if getbufvar(bufnr, "&#038;modified")<br />
    let label = '+'<br />
    break<br />
    endif<br />
    endfor<br />
    " 如果标签页里的窗口数目多于一，加上窗口数目<br />
    let wincount = tabpagewinnr(v:lnum, '$')<br />
    if wincount > 1<br />
    let label .= wincount<br />
    endif<br />
    if label != ''<br />
    let label .= ' '<br />
    endif<br />
    " 附加缓冲区名<br />
label . bufname(bufnrlist[tabpagewinnr(v:lnum) - 1])<br />
    endfunction<br />
    set guitablabel=%{GuiTabLabel()}<br />
    set guitablabel=%N\ %f<br />
    "设置php注释<br />
    "source $vimruntime\vimfiles\plugin\php-doc.vim<br />
    inoremap <C-P> <ESC>:call PhpDocSingle()<CR>i<br />
    nnoremap <C-P> :call PhpDocSingle()<CR><br />
    vnoremap <C-P> :call PhpDocRange()<CR><br />
    "设置putty<br />
    let g:netrw_sftp_cmd = "PSFTP"<br />
    "设置quickfix<br />
    "php语法检查<br />
    setlocal makeprg=\"d:\wamp\bin\php\php5.2.6\php.exe\"\ -l\ -n\ -d\ html_errors=off\ %<br />
    setlocal errorformat=%m\ in\ %f\ on\ line\ %l<br />
    "autocmd BufWritePost *.php,*.phps :make<br />
    map <F5> :w<CR>:noh<CR>:make<CR><br />
</code><br />
下面是我的vim的配置文件的下载链接：<br />
<a href='http://www.foolbirds.com/wp-content/uploads/2010/05/vimrc.txt'>vimrc</a></p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html" title="vim配合phpcs实现自动语法检查">vim配合phpcs实现自动语法检查</a></li><li><a href="http://www.foolbirds.com/vim-colors-schema.html" title="精选vim的配色">精选vim的配色</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/vim%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e6%b3%a8%e8%a7%a3.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用symfony filter 过滤URL</title>
		<link>http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html</link>
		<comments>http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html#comments</comments>
		<pubDate>Wed, 26 May 2010 01:30:27 +0000</pubDate>
		<dc:creator>szn000</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1254</guid>
		<description><![CDATA[这是一个过滤URL中 多个&#8217;/'的例子
修改 apps/myapp/config/filters.yml
添加代码
myFilter:
  class: myFilter
(myFilter可自定义)
创建文件myFilter.class.php
创建位置apps/myapp/lib/
文件内容如下
使用preg_match 是因为 ereg 过时
注意preg_match 匹配正则时以&#8217;/'开始和结束
class myFilter extends sfFilter
{
 public function execute ($filterChain)
 {
   //提取uri
   $str = $_SERVER['REQUEST_URI'];
   //判断是否匹配正则
   if(preg_match("/(.*\/{2,}.*)((\.html)*)/",$str)){
     //要跳转的页面
     header("Location:/error.html");
     //跳转后代码不执行
     exit();
   }
 [...]]]></description>
			<content:encoded><![CDATA[<p>这是一个过滤URL中 多个&#8217;/'的例子<br />
修改 apps/myapp/config/filters.yml<br />
添加代码<br />
<code>myFilter:<br />
  class: myFilter</code><br />
(myFilter可自定义)<br />
创建文件myFilter.class.php<br />
创建位置apps/myapp/lib/<br />
文件内容如下<br />
使用preg_match 是因为 ereg 过时<br />
注意preg_match 匹配正则时以&#8217;/'开始和结束<br />
<code>class myFilter extends sfFilter<br />
{<br />
 public function execute ($filterChain)<br />
 {<br />
   //提取uri<br />
   $str = $_SERVER['REQUEST_URI'];<br />
   //判断是否匹配正则<br />
   if(preg_match("/(.*\/{2,}.*)((\.html)*)/",$str)){<br />
     //要跳转的页面<br />
     header("Location:/error.html");<br />
     //跳转后代码不执行<br />
     exit();<br />
   }<br />
   //执行下一个filter<br />
   $filterChain->execute();<br />
  }<br />
}</code><br />
修改apps/myapp/config/routing.yml<br />
添加代码 此代码用来定义URL /error.html 要执行的模块和动作<br />
<code>Error:<br />
  url:   /error.html<br />
  param: { module: index, action: error404}</code></p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html" title="仿symfony机制实现不用require或者include来实例化类">仿symfony机制实现不用require或者include来实例化类</a></li><li><a href="http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html" title="symfony1.4 DateTime对于PHP低版本的兼容问题">symfony1.4 DateTime对于PHP低版本的兼容问题</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html" title="如何在fixtures.yml写循环添加数据">如何在fixtures.yml写循环添加数据</a></li><li><a href="http://www.foolbirds.com/use_symfony_routing_change_url.html" title="使用symfony routing.yml 修改URL">使用symfony routing.yml 修改URL</a></li><li><a href="http://www.foolbirds.com/symfony-1-4-database-utf8.html" title="symfony 1.4 数据库 utf8设置">symfony 1.4 数据库 utf8设置</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/url-in-other-apps2.html" title="怎么在app中构造其它app的链接(二)">怎么在app中构造其它app的链接(二)</a></li><li><a href="http://www.foolbirds.com/url-in-other-apps-one.html" title="怎么在app中构造其它app的链接(一)">怎么在app中构造其它app的链接(一)</a></li><li><a href="http://www.foolbirds.com/how-to-use-swift-to-send-mail-in-symfon.html" title="如何使用swift发送邮件">如何使用swift发送邮件</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>仿symfony机制实现不用require或者include来实例化类</title>
		<link>http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html</link>
		<comments>http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html#comments</comments>
		<pubDate>Tue, 25 May 2010 02:35:33 +0000</pubDate>
		<dc:creator>kthiz2006</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1223</guid>
		<description><![CDATA[
class MyClass {
  public static function register() {
    //如果解串行器发现有未定义类要被实例化,则设置spl_autoload_call函数加载请求类.
    ini_set('unserialize_callback_func', 'spl_autoload_call');
    //自动载入类，类似于__autoload
    if (false === spl_autoload_register(array("MyClass","autoLoad"))) {
      throw new Exception('wrong');
    }
  }
  //处理自动载入类
  public static function autoload($className) {
    [...]]]></description>
			<content:encoded><![CDATA[<p><code><br />
class MyClass {<br />
  public static function register() {<br />
    //如果解串行器发现有未定义类要被实例化,则设置spl_autoload_call函数加载请求类.<br />
    ini_set('unserialize_callback_func', 'spl_autoload_call');<br />
    //自动载入类，类似于__autoload<br />
    if (false === spl_autoload_register(array("MyClass","autoLoad"))) {<br />
      throw new Exception('wrong');<br />
    }<br />
  }<br />
  //处理自动载入类<br />
  public static function autoload($className) {<br />
    require realpath(dirname(__FILE__)).'/lib/'.strtolower($className).'.class.php';<br />
  }<br />
}<br />
</code><br />
只要在项目目录中创建一个类的目录，这里我创建的叫lib，往这里放入你要放的类的文件。<br />
注:<br />
1.类的文件名要统一规则，这样方便系统快速地进行查找,避免消耗更多的内存。<br />
2.autoload的函数的载入类的规则可以依据需要进行设置，我这里规定要载入我的lib目录里文件的扩展名是class.php的类的文件。</p>
<p>以下是使用的例子：<br />
在创建的lib目录里方了一个叫cache的类的文件。<br />
接着在你要编写的程序文件里载入上边的说的自动载入类的文件，使用MyClass::register()，就可以不用载入要实例化的类的文件直接实例化刚才的cache的类的文件。</p>
<p>以上说的实现的效果必须是php的版本>=5.1.2</p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html" title="symfony1.4 DateTime对于PHP低版本的兼容问题">symfony1.4 DateTime对于PHP低版本的兼容问题</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html" title="PHP中静态调用非静态方法">PHP中静态调用非静态方法</a></li><li><a href="http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html" title="使用symfony filter 过滤URL">使用symfony filter 过滤URL</a></li><li><a href="http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html" title="vim配合phpcs实现自动语法检查">vim配合phpcs实现自动语法检查</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html" title="如何在fixtures.yml写循环添加数据">如何在fixtures.yml写循环添加数据</a></li><li><a href="http://www.foolbirds.com/%e4%bd%bf%e7%94%a8bit-ly%e7%9f%ad%e7%bd%91%e5%9d%80%e6%9c%8d%e5%8a%a1api%e7%ae%80%e5%8c%96url.html" title="使用Bit.ly短网址服务API简化URL">使用Bit.ly短网址服务API简化URL</a></li><li><a href="http://www.foolbirds.com/%e8%a7%a3%e5%86%b3php%e7%94%9f%e6%88%90utf-8%e7%bc%96%e7%a0%81%e7%9a%84csv%e6%96%87%e4%bb%b6%e7%94%a8excel%e6%89%93%e5%bc%80%e4%b9%b1%e7%a0%81%e7%9a%84%e9%97%ae%e9%a2%98.html" title="解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题">解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题</a></li><li><a href="http://www.foolbirds.com/symfony-1-4-database-utf8.html" title="symfony 1.4 数据库 utf8设置">symfony 1.4 数据库 utf8设置</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Emacs里使用 PHPCS</title>
		<link>http://www.foolbirds.com/emacs-phpcs.html</link>
		<comments>http://www.foolbirds.com/emacs-phpcs.html#comments</comments>
		<pubDate>Mon, 24 May 2010 05:36:16 +0000</pubDate>
		<dc:creator>bobhero</dc:creator>
				<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1239</guid>
		<description><![CDATA[在EMACS 里使用 PHPCS 检查代码的办法]]></description>
			<content:encoded><![CDATA[<p>前文书说的好 MAKER 可以在VIM 里使用PHPCS   ，VIM是很牛B 的编辑器，但是还有一个更牛B 的编辑器就是 EMACS。</p>
<p>具体有多牛，去GOOGLE 百度一下</p>
<p>PHPCS是什么 ，请参考前文 </p>
<p>这里贴上 EMACS 下使用的代码</p>
<p><code><br />
(defun php-lint ()<br />
  (interactive)<br />
  (let ((compilation-error-regexp-alist '(php))<br />
        (compilation-error-regexp-alist-alist ()))<br />
    (pushnew '(php "\\(syntax error.*\\) in \\(.*\\) on line \\([0-9]+\\)$" 2 3 nil nil 1)<br />
             compilation-error-regexp-alist-alist)<br />
    (compile (concat "php -l -f \"" (buffer-file-name) "\""))))<br />
(define-key php-mode-map (kbd "<f3> <f10>") 'php-lint)<br />
(defun phpcs ()<br />
  "Performs a PHP code sniffer check on the current file."<br />
  (interactive)<br />
  (let ((compilation-error-regexp-alist '(gnu)))<br />
;;    (compile (format "phpcs --standard=PEAR --report=emacs \"%s\""<br />
    (compile (format "phpcs --standard=Zend --report=emacs \"%s\""<br />
                     (buffer-file-name)))))<br />
;; Check code style<br />
(define-key php-mode-map (kbd "<f3> <f11>") 'phpcs)<br />
</code></p>
<p>完成以后可以用 快键调用也可以用 命令行调用。<br />
什么 你看不懂？ 没有关系 ，看不懂就看不懂吧，早晚能看懂的</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://www.foolbirds.com/partial-and-layout.html" title="局部模板和全局模板">局部模板和全局模板</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8a%a8%e6%80%81%e6%b7%bb%e5%8a%a0%ef%bc%8f%e5%88%a0%e9%99%a4%e8%a1%a8%e6%a0%bc%e5%85%83%e7%b4%a0.html" title="如何实现动态添加／删除表格元素">如何实现动态添加／删除表格元素</a></li><li><a href="http://www.foolbirds.com/url-in-other-apps2.html" title="怎么在app中构造其它app的链接(二)">怎么在app中构造其它app的链接(二)</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/use_symfony_routing_change_url.html" title="使用symfony routing.yml 修改URL">使用symfony routing.yml 修改URL</a></li><li><a href="http://www.foolbirds.com/how-to-use-swift-to-send-mail-in-symfon.html" title="如何使用swift发送邮件">如何使用swift发送邮件</a></li><li><a href="http://www.foolbirds.com/symfony12-upload-file-and-validate.html" title="symfony1.2中的文件上传和验证">symfony1.2中的文件上传和验证</a></li><li><a href="http://www.foolbirds.com/symfony-fckeditory-and-upload-image.html" title="在symfony中使用FCKeditor上传图片附件">在symfony中使用FCKeditor上传图片附件</a></li><li><a href="http://www.foolbirds.com/admin-generator-list-display.html" title="在admin generator中加入复杂的自定义列">在admin generator中加入复杂的自定义列</a></li><li><a href="http://www.foolbirds.com/ubuntu-install-phpmyadmin-with-apt-get.html" title="Ubuntu apt-get方法安装phpmyadmin">Ubuntu apt-get方法安装phpmyadmin</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/emacs-phpcs.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vim配合phpcs实现自动语法检查</title>
		<link>http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html</link>
		<comments>http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html#comments</comments>
		<pubDate>Mon, 24 May 2010 02:40:20 +0000</pubDate>
		<dc:creator>maker</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[vi/vim]]></category>
		<category><![CDATA[phpcs]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[自动]]></category>
		<category><![CDATA[语法]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1217</guid>
		<description><![CDATA[在开发过程中, 我们需要保证语法正确, 当然这是基础, 也是必须做到的. 很多时候, 我们还要去遵守一些编码规范, 比如PEAR规则, Zend规则等等, 这样可以让我们写出清晰并且容易阅读的代码, 但是通常来说, 自觉遵守规范是一个很难办到的事情, 所以我们可能需要借助一些辅助方法.
Vim是一款很强大的编辑器, 拥有着可谓无所不能的扩展机制, 这里我简单介绍一下Vim配合phpcs实现自动和手动的语法检查.
什么是phpcs?
phpcs全名PHP_CodeSniffer, 是PEAR中一个用来检测PHP代码规范的包, 他是确保你代码简介一致的必不可少的工具, 并且可以更快的帮你找到语法错误. 关于phpcs的具体安装和使用方法这里就不做说明了, 请各位读者自行查找.
注: phpcs中默认提供了一些编码规范, 在开发过程中我们可能需要一些自己的规范, 可以在phpcs的目录中添加新规范, 规范的编写方法请参考一些内置规范, 规则都是phpcs已经有的, 只需修改声明就可以了.
我们需要扩展vim的功能, 这样需要编写一些脚本, 脚本可以直接加到你的vim配置文件中, 也可以保存成脚本保存在$VIMHOME/plugin/目录下.
下面是脚本内容:
function! Phpcs()
  " phpcs 命令的路径和参数, 请根据环境自行修改
  ! /home/bobhero/Dropbox/project/libphp/bin/phpcs --standard=Zend "%"
  cwindow
endfunction
" :w 自动验证语法
autocmd BufWritePost *.php call Phpcs()
" :Phpcs 验证语法
command! Phpcs execute Phpcs()
以上代码添加完毕后重启vim, 然后你就可以在保存文件(:w)的同时自动检查语法了, 还可以在vim中调用Phpcs命令(:Phpcs 注意区分大小写), [...]]]></description>
			<content:encoded><![CDATA[<p>在开发过程中, 我们需要保证语法正确, 当然这是基础, 也是必须做到的. 很多时候, 我们还要去遵守一些编码规范, 比如PEAR规则, Zend规则等等, 这样可以让我们写出清晰并且容易阅读的代码, 但是通常来说, 自觉遵守规范是一个很难办到的事情, 所以我们可能需要借助一些辅助方法.</p>
<p><a href="http://www.vim.org">Vim</a>是一款很强大的编辑器, 拥有着可谓无所不能的扩展机制, 这里我简单介绍一下Vim配合phpcs实现自动和手动的语法检查.</p>
<blockquote><p>什么是phpcs?</p>
<p>phpcs全名<a href="http://pear.php.net/package/PHP_CodeSniffer/redirected">PHP_CodeSniffer</a>, 是<a href="http://pear.php.net">PEAR</a>中一个用来检测PHP代码规范的包, 他是确保你代码简介一致的必不可少的工具, 并且可以更快的帮你找到语法错误. 关于phpcs的具体安装和使用方法这里就不做说明了, 请各位读者自行查找.</p></blockquote>
<p><em>注: phpcs中默认提供了一些编码规范, 在开发过程中我们可能需要一些自己的规范, 可以在phpcs的目录中添加新规范, 规范的编写方法请参考一些内置规范, 规则都是phpcs已经有的, 只需修改声明就可以了.</em></p>
<p>我们需要扩展vim的功能, 这样需要编写一些脚本, 脚本可以直接加到你的vim配置文件中, 也可以保存成脚本保存在$VIMHOME/plugin/目录下.</p>
<p>下面是脚本内容:</p>
<p><code>function! Phpcs()<br />
  " phpcs 命令的路径和参数, 请根据环境自行修改<br />
  ! /home/bobhero/Dropbox/project/libphp/bin/phpcs --standard=Zend "%"<br />
  cwindow<br />
endfunction<br />
" :w 自动验证语法<br />
autocmd BufWritePost *.php call Phpcs()<br />
" :Phpcs 验证语法<br />
command! Phpcs execute Phpcs()</code></p>
<p>以上代码添加完毕后重启vim, 然后你就可以在保存文件(:w)的同时自动检查语法了, 还可以在vim中调用Phpcs命令(:Phpcs 注意区分大小写), 我在网上还看见了一些更强大的脚本, 这里就不详细介绍了.</p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html" title="PHP中静态调用非静态方法">PHP中静态调用非静态方法</a></li><li><a href="http://www.foolbirds.com/vim%e9%85%8d%e7%bd%ae%e6%96%87%e4%bb%b6%e6%b3%a8%e8%a7%a3.html" title="vim配置文件注解">vim配置文件注解</a></li><li><a href="http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html" title="仿symfony机制实现不用require或者include来实例化类">仿symfony机制实现不用require或者include来实例化类</a></li><li><a href="http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html" title="symfony1.4 DateTime对于PHP低版本的兼容问题">symfony1.4 DateTime对于PHP低版本的兼容问题</a></li><li><a href="http://www.foolbirds.com/%e4%bd%bf%e7%94%a8bit-ly%e7%9f%ad%e7%bd%91%e5%9d%80%e6%9c%8d%e5%8a%a1api%e7%ae%80%e5%8c%96url.html" title="使用Bit.ly短网址服务API简化URL">使用Bit.ly短网址服务API简化URL</a></li><li><a href="http://www.foolbirds.com/%e8%a7%a3%e5%86%b3php%e7%94%9f%e6%88%90utf-8%e7%bc%96%e7%a0%81%e7%9a%84csv%e6%96%87%e4%bb%b6%e7%94%a8excel%e6%89%93%e5%bc%80%e4%b9%b1%e7%a0%81%e7%9a%84%e9%97%ae%e9%a2%98.html" title="解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题">解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/archlinux-lam.html" title="archlinux 安装 LAMP环境">archlinux 安装 LAMP环境</a></li><li><a href="http://www.foolbirds.com/vim-colors-schema.html" title="精选vim的配色">精选vim的配色</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>symfony1.4 DateTime对于PHP低版本的兼容问题</title>
		<link>http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html</link>
		<comments>http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html#comments</comments>
		<pubDate>Fri, 21 May 2010 05:17:53 +0000</pubDate>
		<dc:creator>szn000</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1209</guid>
		<description><![CDATA[在symfony1.4中使用DateTime 类 但是该类出现于 PHP 5.2.0以后 所以在使用(部分方法需要在PHP5.3.0以后版本才能使用)PHP5.2.0以前版本的服务器上 调用symfony调用该函数会出错 为了解决该类问题根据 PHP5.2.0 的DateTime类 写了俩个类 用以在低版本中使用该类
以重写方法
DateTime.class.php
__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
string format ( string $format )
int getOffset ( void )
int getTimestamp ( void )
DateTimeZone getTimezone ( void )
DateTime setDate ( int $year , int $month , int $day )
DateTime setISODate ( int [...]]]></description>
			<content:encoded><![CDATA[<p>在symfony1.4中使用DateTime 类 但是该类出现于 PHP 5.2.0以后 所以在使用(部分方法需要在PHP5.3.0以后版本才能使用)PHP5.2.0以前版本的服务器上 调用symfony调用该函数会出错 为了解决该类问题根据 PHP5.2.0 的DateTime类 写了俩个类 用以在低版本中使用该类<br />
以重写方法<br />
DateTime.class.php<br />
<code>__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )<br />
string format ( string $format )<br />
int getOffset ( void )<br />
int getTimestamp ( void )<br />
DateTimeZone getTimezone ( void )<br />
DateTime setDate ( int $year , int $month , int $day )<br />
DateTime setISODate ( int $year , int $week [, int $day = 1 ] )<br />
DateTime setTime ( int $hour , int $minute [, int $second = 0 ] )<br />
DateTime setTimestamp ( int $unixtimestamp )<br />
DateTime setTimezone ( DateTimeZone $timezone )<br />
DateTime __wakeup ( void )</code></p>
<p>DateTimeZone.class.php<br />
<code>__construct ( string $timezone )<br />
string getName ( void )<br />
int getOffset ( DateTime $datetime )</code><br />
文件下载地址: <a target = "_blank" href = "http://www.xun6.com/file/dbedf4439/DateTime_DateTimeZone.tar.gz.html">下载点击我</a><br />
附件使用时把类名中的My删除</p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html" title="仿symfony机制实现不用require或者include来实例化类">仿symfony机制实现不用require或者include来实例化类</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/php%e4%b8%ad%e9%9d%99%e6%80%81%e8%b0%83%e7%94%a8%e9%9d%9e%e9%9d%99%e6%80%81%e6%96%b9%e6%b3%95.html" title="PHP中静态调用非静态方法">PHP中静态调用非静态方法</a></li><li><a href="http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html" title="使用symfony filter 过滤URL">使用symfony filter 过滤URL</a></li><li><a href="http://www.foolbirds.com/vim%e9%85%8d%e5%90%88phpcs%e5%ae%9e%e7%8e%b0p%e8%87%aa%e5%8a%a8%e8%af%ad%e6%b3%95%e6%a3%80%e6%9f%a5.html" title="vim配合phpcs实现自动语法检查">vim配合phpcs实现自动语法检查</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html" title="如何在fixtures.yml写循环添加数据">如何在fixtures.yml写循环添加数据</a></li><li><a href="http://www.foolbirds.com/%e4%bd%bf%e7%94%a8bit-ly%e7%9f%ad%e7%bd%91%e5%9d%80%e6%9c%8d%e5%8a%a1api%e7%ae%80%e5%8c%96url.html" title="使用Bit.ly短网址服务API简化URL">使用Bit.ly短网址服务API简化URL</a></li><li><a href="http://www.foolbirds.com/%e8%a7%a3%e5%86%b3php%e7%94%9f%e6%88%90utf-8%e7%bc%96%e7%a0%81%e7%9a%84csv%e6%96%87%e4%bb%b6%e7%94%a8excel%e6%89%93%e5%bc%80%e4%b9%b1%e7%a0%81%e7%9a%84%e9%97%ae%e9%a2%98.html" title="解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题">解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题</a></li><li><a href="http://www.foolbirds.com/symfony-1-4-database-utf8.html" title="symfony 1.4 数据库 utf8设置">symfony 1.4 数据库 utf8设置</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何在fixtures.yml写循环添加数据</title>
		<link>http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html</link>
		<comments>http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html#comments</comments>
		<pubDate>Thu, 20 May 2010 08:03:36 +0000</pubDate>
		<dc:creator>kthiz2006</dc:creator>
				<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=802</guid>
		<description><![CDATA[举一个简单的例子：
city表的字段有id,enabled,name
那么往city表插入字段的写法如下:

city:
&#60;?php for ($i = 1; $i &#60;= 6; $i++): ?&#62;
city_&#60;?php echo $i ?&#62;:
enabled: 1
name:    city&#60;?php echo $i."\n" ?&#62;//用php写表的字段的数据结尾时一定写上"\n"
&#60;?php endfor; ?&#62;

注意：书写时一定要注意fixtures.yml的写法,注意空格.
使用symfony filter 过滤URL仿symfony机制实现不用require或者include来实例化类symfony1.4 DateTime对于PHP低版本的兼容问题symfony 1.4 数据库 utf8设置symfony cheat sheetCheat Sheets!如何使用swift发送邮件symfony1.2下的命令行程序(batch)symfony1.2的后台(generate-admin)模板结构在Symfony中使用第三方图片处理工具WideImage]]></description>
			<content:encoded><![CDATA[<p>举一个简单的例子：<br />
city表的字段有id,enabled,name<br />
那么往city表插入字段的写法如下:<br />
<code><br />
city:<br />
&lt;?php for ($i = 1; $i &lt;= 6; $i++): ?&gt;<br />
city_&lt;?php echo $i ?&gt;:<br />
enabled: 1<br />
name:    city&lt;?php echo $i."\n" ?&gt;//用php写表的字段的数据结尾时一定写上"\n"<br />
&lt;?php endfor; ?&gt;<br />
</code><br />
注意：书写时一定要注意fixtures.yml的写法,注意空格.</p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html" title="使用symfony filter 过滤URL">使用symfony filter 过滤URL</a></li><li><a href="http://www.foolbirds.com/%e4%bb%bfsymfony%e6%9c%ba%e5%88%b6%e5%ae%9e%e7%8e%b0%e4%b8%8d%e7%94%a8require%e6%88%96%e8%80%85include%e6%9d%a5%e5%ae%9e%e4%be%8b%e5%8c%96%e7%b1%bb.html" title="仿symfony机制实现不用require或者include来实例化类">仿symfony机制实现不用require或者include来实例化类</a></li><li><a href="http://www.foolbirds.com/use-datetime-in-php5-1-x-with-symfony.html" title="symfony1.4 DateTime对于PHP低版本的兼容问题">symfony1.4 DateTime对于PHP低版本的兼容问题</a></li><li><a href="http://www.foolbirds.com/symfony-1-4-database-utf8.html" title="symfony 1.4 数据库 utf8设置">symfony 1.4 数据库 utf8设置</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/cheat-sheets.html" title="Cheat Sheets!">Cheat Sheets!</a></li><li><a href="http://www.foolbirds.com/how-to-use-swift-to-send-mail-in-symfon.html" title="如何使用swift发送邮件">如何使用swift发送邮件</a></li><li><a href="http://www.foolbirds.com/batch-in-symfony12.html" title="symfony1.2下的命令行程序(batch)">symfony1.2下的命令行程序(batch)</a></li><li><a href="http://www.foolbirds.com/generate-admin-templates-structure.html" title="symfony1.2的后台(generate-admin)模板结构">symfony1.2的后台(generate-admin)模板结构</a></li><li><a href="http://www.foolbirds.com/wideimage-in-symfony.html" title="在Symfony中使用第三方图片处理工具WideImage">在Symfony中使用第三方图片处理工具WideImage</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何实现动态添加／删除表格元素</title>
		<link>http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8a%a8%e6%80%81%e6%b7%bb%e5%8a%a0%ef%bc%8f%e5%88%a0%e9%99%a4%e8%a1%a8%e6%a0%bc%e5%85%83%e7%b4%a0.html</link>
		<comments>http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8a%a8%e6%80%81%e6%b7%bb%e5%8a%a0%ef%bc%8f%e5%88%a0%e9%99%a4%e8%a1%a8%e6%a0%bc%e5%85%83%e7%b4%a0.html#comments</comments>
		<pubDate>Thu, 20 May 2010 01:48:17 +0000</pubDate>
		<dc:creator>kthiz2006</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1185</guid>
		<description><![CDATA[此效果是用jquery实现的,现代码如下:

／／监听添加表格行数的阿按扭
$(document).ready(function(){
$("#but").click(function(){
var $table=$("#tab tr");
var len=$table.length;
$("#tab").append("&#60;tr id="+(len+1)+"&#62;&#60;td align=\'center\'&#62;&#60;img width=\'140\' src=\'images/1.jpg\'&#62;&#60;/td&#62;&#60;td align=\'center\'&#62;&#60;a href=\'javascript:void(0)\' onclick=\'deltr("+(len+1)+")\'&#62;删除&#60;/a&#62;&#60;/td&#62;&#60;/tr& gt;");
})
})


／／删除指定的表格的行
function deltr(index)
{
$table=$("#tab tr");
$("tr[id=\'"+index+"\']").remove();
}

以下写在body中即可

//添加按钮
&#60;input id="but" type="button" value="添加" /&#62;


//空的表格
 &#60;table class="print_product_img" id="tab" border="1" width="60%" align="center"&#62;
&#60;/table&#62;

在IE下使用Script Debugger调试javascript兼容性问题]]></description>
			<content:encoded><![CDATA[<p>此效果是用jquery实现的,现代码如下:<br />
<code><br />
／／监听添加表格行数的阿按扭<br />
$(document).ready(function(){<br />
$("#but").click(function(){<br />
var $table=$("#tab tr");<br />
var len=$table.length;<br />
$("#tab").append("&lt;tr id="+(len+1)+"&gt;&lt;td align=\'center\'&gt;&lt;img width=\'140\' src=\'images/1.jpg\'&gt;&lt;/td&gt;&lt;td align=\'center\'&gt;&lt;a href=\'javascript:void(0)\' onclick=\'deltr("+(len+1)+")\'&gt;删除&lt;/a&gt;&lt;/td&gt;&lt;/tr& gt;");<br />
})<br />
})<br />
</code><br />
<code><br />
／／删除指定的表格的行<br />
function deltr(index)<br />
{<br />
$table=$("#tab tr");<br />
$("tr[id=\'"+index+"\']").remove();<br />
}<br />
</code><br />
以下写在body中即可<br />
<code><br />
//添加按钮<br />
&lt;input id="but" type="button" value="添加" /&gt;<br />
</code><br />
<code><br />
//空的表格<br />
 &lt;table class="print_product_img" id="tab" border="1" width="60%" align="center"&gt;<br />
&lt;/table&gt;<br />
</code></p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/%e5%9c%a8ie%e4%b8%8b%e4%bd%bf%e7%94%a8script-debugger%e8%b0%83%e8%af%95javascript%e5%85%bc%e5%ae%b9%e6%80%a7%e9%97%ae%e9%a2%98.html" title="在IE下使用Script Debugger调试javascript兼容性问题">在IE下使用Script Debugger调试javascript兼容性问题</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%ae%9e%e7%8e%b0%e5%8a%a8%e6%80%81%e6%b7%bb%e5%8a%a0%ef%bc%8f%e5%88%a0%e9%99%a4%e8%a1%a8%e6%a0%bc%e5%85%83%e7%b4%a0.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PHP中数据类型间的比较</title>
		<link>http://www.foolbirds.com/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e9%97%b4%e7%9a%84%e6%af%94%e8%be%83.html</link>
		<comments>http://www.foolbirds.com/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e9%97%b4%e7%9a%84%e6%af%94%e8%be%83.html#comments</comments>
		<pubDate>Wed, 19 May 2010 07:12:32 +0000</pubDate>
		<dc:creator>maker</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[变量]]></category>
		<category><![CDATA[比较]]></category>
		<category><![CDATA[类型]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1152</guid>
		<description><![CDATA[这是由bobhero发现的一个很有趣的问题. 废话不多说, 直接上代码.
var_dump(array() > 9999); // true
结论:任何数组大于整数
var_dump(array() > 'abc'); // true
结论:任何数组大于字符串
var_dump(array() < array('a')); // true
结论:任何非空数组大于空数组, 其实这个应该是所有人都知道的
var_dump('abc' > '123');// true
这个没有结论, 是字符串比较的问题
var_dump('abcasdfad' > 123);// false
var_dump('abcasdfad' > 1);// false
var_dump('abcasdfad' > 0);// false
结论:任何整数大于字符串
以上是实验过程和结论, 刚发现的时候我也是很惊奇的, 不过最终也没弄明白其中的原理,  希望高手指点.
随机日志vim配合phpcs实现自动语法检查插件使用一例:在form中加入拾色器symfony 环境检查admin后台模板作用开发技巧总结Awesome3.0默认快捷键Symfony中的action和actions注释例子symfony缓存(cache)机制简介Add table prefix  in symfony－在symfony中使用表前缀]]></description>
			<content:encoded><![CDATA[<p>这是由<a href="mailto:bobhero.chen#gmail.com">bobhero</a>发现的一个很有趣的问题. 废话不多说, 直接上代码.</p>
<p><code>var_dump(array() > 9999); // true</code></p>
<p><strong>结论:<em>任何数组大于整数</em></strong></p>
<p><code>var_dump(array() > 'abc'); // true</code></p>
<p><strong>结论:<em>任何数组大于字符串</em></strong></p>
<p><code>var_dump(array() < array('a')); // true</code></p>
<p><strong>结论:<em>任何非空数组大于空数组</em>, 其实这个应该是所有人都知道的</strong></p>
<p><code>var_dump('abc' > '123');// true</code></p>
<p>这个没有结论, 是字符串比较的问题</p>
<p><code>var_dump('abcasdfad' > 123);// false<br />
var_dump('abcasdfad' > 1);// false<br />
var_dump('abcasdfad' > 0);// false</code></p>
<p><strong>结论<em>:任何整数大于字符串</em></strong></p>
<p>以上是实验过程和结论, 刚发现的时候我也是很惊奇的, 不过最终也没弄明白其中的原理,  希望高手指点.</p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://www.foolbirds.com/python3-is-typ.html" title="python3 判断 变量类型">python3 判断 变量类型</a></li><li><a href="http://www.foolbirds.com/symfony-cheat-sheet.html" title="symfony cheat sheet">symfony cheat sheet</a></li><li><a href="http://www.foolbirds.com/%e5%a6%82%e4%bd%95%e5%9c%a8fixtures-yml%e5%86%99%e5%be%aa%e7%8e%af%e6%b7%bb%e5%8a%a0%e6%95%b0%e6%8d%ae.html" title="如何在fixtures.yml写循环添加数据">如何在fixtures.yml写循环添加数据</a></li><li><a href="http://www.foolbirds.com/add-link-as-action-in-list.html" title="如何在List表单下面添加 链接 式动作 类似与新建">如何在List表单下面添加 链接 式动作 类似与新建</a></li><li><a href="http://www.foolbirds.com/awesome_dual_screen.html" title="awesome 的 多头显示">awesome 的 多头显示</a></li><li><a href="http://www.foolbirds.com/symfony-htaccess-and-root.html" title="Symfony框架中的“.htaccess”文件和“根”目录">Symfony框架中的“.htaccess”文件和“根”目录</a></li><li><a href="http://www.foolbirds.com/symfony-cmd.html" title="symfony命令行详解">symfony命令行详解</a></li><li><a href="http://www.foolbirds.com/session-ie-firefox-ie7.html" title="session 在 IE下失效 解决办法 ">session 在 IE下失效 解决办法 </a></li><li><a href="http://www.foolbirds.com/symfony_delete_mate_name_title.html" title="在symfony中如何删除 head mate name=title ">在symfony中如何删除 head mate name=title </a></li><li><a href="http://www.foolbirds.com/vim-colors-schema.html" title="精选vim的配色">精选vim的配色</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/%e6%95%b0%e6%8d%ae%e7%b1%bb%e5%9e%8b%e9%97%b4%e7%9a%84%e6%af%94%e8%be%83.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>使用symfony routing.yml 修改URL</title>
		<link>http://www.foolbirds.com/use_symfony_routing_change_url.html</link>
		<comments>http://www.foolbirds.com/use_symfony_routing_change_url.html#comments</comments>
		<pubDate>Mon, 17 May 2010 04:04:30 +0000</pubDate>
		<dc:creator>szn000</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[routing.yml]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/%e4%bd%bf%e7%94%a8symfony-routing-yml-%e4%bf%ae%e6%94%b9url%e6%98%be%e7%a4%ba.html</guid>
		<description><![CDATA[由于不规范的URL带有程序和数据库的结构信息会给程序带来隐患并且在程序中经常需要使用?name=value来传递变量的值所以修改URL非常重要.
在symfony中 使用 routing.yml 文件就可以修改URL
下面是一个URL修改的例子
将 project/news/show?title=123 修改成 project/news/123.html
在projiect/apps/myapp/config/routing.yml 添加下列代码
shownews:
  url:   /news/show
  param: { module: news, action: show }
上面代码是定义一个 @shownews 路由使其访问 news/show
注意:每次修改routing.yml 后需要执行 symfony cc 清理缓存
在页面中添加如下代码
&#60;?php echo link_to($name, '@shownews?title='. $title);?&#62;
$name是超链接名称
$title是要传递的值
(如果 $name=&#8217;测试&#8217; $value=&#8217;123&#8242;)
上面的php代码转换成HTML代码如下
&#60;a href="/news/show?title=123"&#62;测试&#60;&#x2F;a&#62;
在projiect/apps/myapp/config/routing.yml 修改代码
shownews:
  url:   /news/:title.html
  param: { module: news, action: show }
  requirements:
    title: [...]]]></description>
			<content:encoded><![CDATA[<p>由于不规范的URL带有程序和数据库的结构信息会给程序带来隐患并且在程序中经常需要使用?name=value来传递变量的值所以修改URL非常重要.<br />
在symfony中 使用 routing.yml 文件就可以修改URL<br />
下面是一个URL修改的例子<br />
将 project/news/show?title=123 修改成 project/news/123.html<br />
在projiect/apps/myapp/config/routing.yml 添加下列代码<br />
<code>shownews:<br />
  url:   /news/show<br />
  param: { module: news, action: show }</code><br />
上面代码是定义一个 @shownews 路由使其访问 news/show<br />
注意:每次修改routing.yml 后需要执行 symfony cc 清理缓存<br />
在页面中添加如下代码<br />
<code>&lt;?php echo link_to($name, '@shownews?title='. $title);?&gt;</code><br />
$name是超链接名称<br />
$title是要传递的值<br />
(如果 $name=&#8217;测试&#8217; $value=&#8217;123&#8242;)<br />
上面的php代码转换成HTML代码如下<br />
<code>&lt;a href="/news/show?title=123"&gt;测试&lt;&#x2F;a&gt;</code><br />
在projiect/apps/myapp/config/routing.yml 修改代码<br />
<code>shownews:<br />
  url:   /news/:title.html<br />
  param: { module: news, action: show }<br />
  requirements:<br />
    title: \w+</code><br />
PHP代码</p>
<p>将转换成<br />
<code>&lt;a href="/news/123.html"&gt;测试&lt;&#x2F;a&gt;</code></p>
<ul class="related_post"><li><a href="http://www.foolbirds.com/use_symfony_filter_to_filteredurl.html" title="使用symfony filter 过滤URL">使用symfony filter 过滤URL</a></li><li><a href="http://www.foolbirds.com/url-in-other-apps2.html" title="怎么在app中构造其它app的链接(二)">怎么在app中构造其它app的链接(二)</a></li><li><a href="http://www.foolbirds.com/url-in-other-apps-one.html" title="怎么在app中构造其它app的链接(一)">怎么在app中构造其它app的链接(一)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/use_symfony_routing_change_url.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在symfony中如何删除 head mate name=title</title>
		<link>http://www.foolbirds.com/symfony_delete_mate_name_title.html</link>
		<comments>http://www.foolbirds.com/symfony_delete_mate_name_title.html#comments</comments>
		<pubDate>Mon, 17 May 2010 03:43:35 +0000</pubDate>
		<dc:creator>szn000</dc:creator>
				<category><![CDATA[symfony]]></category>
		<category><![CDATA[mate]]></category>
		<category><![CDATA[title]]></category>

		<guid isPermaLink="false">http://www.foolbirds.com/?p=1154</guid>
		<description><![CDATA[SYMFONY 自带的 生成标签的函数(setTitle()) 会默认生成一个 &#60;META NAME=&#8217;TITLE&#8217;&#8230;&#62;这样的一个 标签，这个标签会在 SETTITLE 里受影响 即 同时设置两个TITLE 一个是 &#60;TITLE&#62;一个是&#60;META&#62; 根据客户需求有些时候需要删掉 META NAME=&#8217;TITLE&#8217; 这种，办法如下
新建MyProject/app/MyApp/lib/myWebResponse.class.php 文件
插入如下代码
]]></description>
			<content:encoded><![CDATA[<p>SYMFONY 自带的 生成标签的函数(setTitle()) 会默认生成一个 &lt;META NAME=&#8217;TITLE&#8217;&#8230;&gt;这样的一个 标签，这个标签会在 SETTITLE 里受影响 即 同时设置两个TITLE 一个是 &lt;TITLE&gt;一个是&lt;META&gt; 根据客户需求有些时候需要删掉 META NAME=&#8217;TITLE&#8217; 这种，办法如下<br />
新建MyProject/app/MyApp/lib/myWebResponse.class.php 文件<br />
插入如下代码<br />
<code><?php<br />
class myWebResponse extends sfWebResponse<br />
{<br />
   protected $title = null;<br />
 /*<br />
 * 在Web Response 里搜索Title<br />
 *<br />
 * 返回Title字符串<br />
 */<br />
 public function getTitle()<br />
 {<br />
    return $this->title;<br />
 }<br />
 /*<br />
 * 设置Title为响应Title<br />
 *<br />
 * 参数 title string ,Title内容<br />
 * 参数 rscape boolean true, 用以确认是否格式化字符串<br />
 * 参数 replace boolean true, 用以确认是否覆盖字符串<br />
 */<br />
 public function setTitle($title, $escape = true, $replace = true)<br />
 {<br />
   if (is_null($title))<br />
   {<br />
      unset($this->title);<br />
      return;<br />
   }<br />
   // 注意: 如果你使用i18n 曾转码 该判断将不会工作<br />
   // 查看 include_metas() 在源文件的 AssetHelper<br />
   if ($escape)<br />
   {<br />
      $title = htmlspecialchars($title, ENT_QUOTES, $this->options['charset']);<br />
   }<br />
   if ($replace || is_null($this->title))<br />
   {<br />
      $this->title = $title;<br />
   }<br />
  }<br />
}</code></p>
<p>在文件MyProjiect/apps/MyApps/config/factories.yml<br />
里使用 myWebResponse 替换 sfWebResponse<br />
例如 在factories.yml中添加(替换成)如下代码<br />
<code>all:<br />
  response:<br />
    class: myWebResponse<br />
    param:<br />
      send_http_headers: false</code><br />
上面代码中的all可以替换成相应的模式(生产,开发等)<br />
执行 symfony cc (用于清理symfony产生的缓存文件)</p>
<p>注:该程序执行原理是重写了sfWebResponse setTitle 和 getTitle 两个方法<br />
   使setTitle 添加title的时候不添加 mate name = title<br />
   sfWebResponse setTitle源代码如下<br />
 <code> public function setTitle($title, $escape = true)<br />
  {<br />
    $this->addMeta('title', $title, true, $escape);<br />
  }</code></p>
<h3  class="related_post_title">随机日志</h3><ul class="related_post"><li><a href="http://www.foolbirds.com/use-colorpicke.html" title="插件使用一例:在form中加入拾色器">插件使用一例:在form中加入拾色器</a></li><li><a href="http://www.foolbirds.com/2010-1-20%e5%bc%80%e5%8f%91%e6%8a%80%e5%b7%a7%e6%80%bb%e7%bb%93.html" title="开发技巧总结">开发技巧总结</a></li><li><a href="http://www.foolbirds.com/vim-colors-schema.html" title="精选vim的配色">精选vim的配色</a></li><li><a href="http://www.foolbirds.com/symfony12-upload-file-and-validate.html" title="symfony1.2中的文件上传和验证">symfony1.2中的文件上传和验证</a></li><li><a href="http://www.foolbirds.com/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6%e5%b7%a5%e5%85%b7git%e7%9a%84%e4%bd%bf%e7%94%a8%ef%bc%88%e4%ba%8c%ef%bc%89%e4%b8%bb%e6%9c%ba%e6%89%93%e8%a1%a5%e4%b8%81.html" title="版本控制工具GIT的使用（二）主机打补丁">版本控制工具GIT的使用（二）主机打补丁</a></li><li><a href="http://www.foolbirds.com/how-to-install-symfony12-in-windows.html" title="如何在WINDOWS下设置SYMFONY1.2">如何在WINDOWS下设置SYMFONY1.2</a></li><li><a href="http://www.foolbirds.com/python3-is-typ.html" title="python3 判断 变量类型">python3 判断 变量类型</a></li><li><a href="http://www.foolbirds.com/symfony%e4%b8%ad%e7%9a%84action%e5%92%8cactions.html" title="Symfony中的action和actions">Symfony中的action和actions</a></li><li><a href="http://www.foolbirds.com/symfony-routing.html" title="Symfony的路由规则">Symfony的路由规则</a></li><li><a href="http://www.foolbirds.com/symfony-cache.html" title="symfony缓存(cache)机制简介">symfony缓存(cache)机制简介</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.foolbirds.com/symfony_delete_mate_name_title.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

