﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>PHP博客-风舞的博客-随笔分类-php</title><link>http://www.phpweblog.net/jiujun/category/87.html</link><description>谁曾看见风舞，云袖澄素，倩影飘忽。谁曾伤心的恸哭，翠酒寒烛，紫檀香柱。&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;谁又流传了千古，魅异高孤，幽鬼其独。谁又追寻了苦苦，挥不去美丽的灵狐。
</description><language>zh-cn</language><lastBuildDate>Tue, 27 Feb 2007 16:05:03 GMT</lastBuildDate><pubDate>Tue, 27 Feb 2007 16:05:03 GMT</pubDate><ttl>60</ttl><item><title>写了个中文验证码</title><link>http://www.phpweblog.net/jiujun/archive/2006/09/02/407.html</link><dc:creator>风舞</dc:creator><author>风舞</author><pubDate>Fri, 01 Sep 2006 18:40:00 GMT</pubDate><guid>http://www.phpweblog.net/jiujun/archive/2006/09/02/407.html</guid><wfw:comment>http://www.phpweblog.net/jiujun/comments/407.html</wfw:comment><comments>http://www.phpweblog.net/jiujun/archive/2006/09/02/407.html#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://www.phpweblog.net/jiujun/comments/commentRss/407.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/jiujun/services/trackbacks/407.html</trackback:ping><description><![CDATA[
		<p align="center">
				<font color="blue">示例：</font>
				<img src="http://www.phpweblog.net/images/phpweblog_net/jiujun/89/o_1.gif" />
		</p>
		<p>     几个GD函数堆砌出来的玩意，只要搞定怎样把中文写到图片上就可以了，因为GD函数只接受UTF8格式编码的文字，所以在写文字前首先要进行编码转换。PHP自带的iconv和mbstring库都可以完成这项工作，但一般的虚拟主机很少支持，所以要自己写个，像这里用gb2utf8完成这项工作。当然如果你的页面就是以UTF8格式存储的，就可以省去这些额外工作。<br /></p>
		<div style="BORDER-RIGHT: #808080 1px solid; PADDING-RIGHT: 20px; BORDER-TOP: #808080 1px solid; PADDING-LEFT: 20px; FONT-SIZE: 9pt; BACKGROUND: #f7f7f7; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; FONT-FAMILY: HelMS Shell Dlg, vetica, Tahoma, Arial">
				<p>&lt;?php<br />/*****************************************************************<br /> * excode.php<br /> * @author  风舞<br /> * @email   wjiujun (at) gmail.com<br /> * @note    一个中文附加码<br /> *****************************************************************/<br />$RANDCODE=array('宠','辱','不','惊','静','看','庭','前','花','开','花','落','得','失','无','意','漫','望','天','外','云','卷','云','舒');<br />$CODETABLE=array();<br />$fp=fopen("gb2312.txt","r");<br />while($line=fgets($fp))<br />    $CODETABLE[hexdec(substr($line,0,6))]=substr($line,7,6);<br />fclose($fp); </p>
				<p>//gb2312转utf8<br />function gb2utf8($gbstr) <br />{<br />    global $CODETABLE;<br />    if(trim($gbstr)=="")<br />        return $gbstr;<br />    $ret="";<br />    $utf8="";<br />    while($gbstr)<br />    {<br />        if(ord(substr($gbstr,0,1))&gt;127)<br />        {<br />            $thisW=substr($gbstr,0,2);<br />            $gbstr=substr($gbstr,2,strlen($gbstr));<br />            $utf8="";<br />            @$utf8=u2utf8(hexdec($CODETABLE[hexdec(bin2hex($thisW))-0x8080]));<br />            if($utf8!="")<br />            for($i=0;$i&lt;strlen($utf8);$i+=3)<br />                $ret.=chr(substr($utf8,$i,3));<br />        }<br />        else<br />        {<br />            $ret.=substr($gbstr,0,1);<br />            $gbstr=substr($gbstr,1,strlen($gbstr));<br />        }<br />    }<br />    return $ret;<br />}</p>
				<p>//unicode转utf8<br />function u2utf8($c)<br />{<br />    $str="";<br />    if($c&lt;0x80)<br />        $str.=$c;<br />    elseif($c&lt;0x800)<br />    {<br />        $str.=(0xC0|$c&gt;&gt;6);<br />        $str.=(0x80|$c&amp;0x3F);<br />    }<br />    elseif($c&lt;0x10000)<br />    {<br />        $str.=(0xE0|$c&gt;&gt;12);<br />        $str.=(0x80|$c&gt;&gt;6&amp;0x3F);<br />        $str.=(0x80|$c&amp;0x3F);<br />    }<br />    elseif($c&lt;0x200000)<br />    {<br />        $str.=(0xF0|$c&gt;&gt;18);<br />        $str.=(0x80|$c&gt;&gt;12&amp;0x3F);<br />        $str.=(0x80|$c&gt;&gt;6&amp;0x3F);<br />        $str.=(0x80|$c&amp;0x3F);<br />    }<br />    return $str;<br />}</p>
				<p>//生成附加码<br />function create_excode($length)<br />{<br /> global $RANDCODE;<br />    header("content-type: image/png");<br /> $image_x=$length*30;    //图片宽度<br /> $image_y=40;            //图片高度<br />    $noise_num=80*$length;   //杂点数量<br />    $line_num=$length-2;      //干扰线数量<br /> $image=imagecreate($image_x,$image_y);<br /> imagecolorallocate($image,0xff,0xff,0xff);                  //设定背景颜色<br /> $rectangle_color=imagecolorallocate($image,0xAA,0xAA,0xAA); //边框颜色<br /> $noise_color=imagecolorallocate($image,0x00,0x00,0x00);     //杂点颜色<br /> $font_color=imagecolorallocate($image,0x00,0x00,0x00);      //字体颜色<br /> $line_color=imagecolorallocate($image,0x33,0x33,0x33);      //干扰线颜色</p>
				<p> //加入杂点<br />    for($i=0;$i&lt;$noise_num;$i++)<br />  imagesetpixel($image,mt_rand(0,$image_x),mt_rand(0,$image_y),$noise_color);</p>
				<p> $font_face="simkai.ttf";    //字体<br />    $x=2;<br />    $session_code='';<br />    for($i=0;$i&lt;$length;$i++)<br />    {<br />        $code=$RANDCODE[mt_rand(0,count($RANDCODE)-1)];<br />     imagettftext($image,18,mt_rand(-6,6),$x,29,$font_color,$font_face,gb2utf8($code));<br />        $x+=30;<br />        $session_code.=$code;<br />    }<br />    @session_start();<br />    $_SESSION['excode']=$session_code;  //把附加码的值放在session中</p>
				<p>    //加入干扰线<br />    for($i=0;$i&lt;$line_num;$i++)<br />     imageline($image,mt_rand(0,$image_x),mt_rand(0,$image_y),<br />                    mt_rand(0,$image_x),mt_rand(0,$image_y),$line_color);<br /> imagerectangle($image,0,0,$image_x-1,$image_y-1,$rectangle_color);  //加个边框<br /> imagepng($image);<br /> imagedestroy($image);<br />}<br />create_excode(6);<br />?&gt;</p>
		</div>
		<p>
				<br />    使用的时候直接用html语法：&lt;img src="excode.php"&gt;调用就可以了，在服务端做验证时取session存储的验证字符与用户提交的字符进行比较，相同则通过验证。<br />    注：程序用到的simkai.ttf是windows中常见的楷体，当然你也可以换成别的字体，但一定要支持中文的；gb2312.txt是gb2312和utf8的编码对照表，可以<a href="/Files/jiujun/gb2312.rar" target="_blank"><font color="red">点这里下载</font></a>。</p>
<img src ="http://www.phpweblog.net/jiujun/aggbug/407.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/jiujun/" target="_blank">风舞</a> 2006-09-02 02:40 <a href="http://www.phpweblog.net/jiujun/archive/2006/09/02/407.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>第一篇日志，提供个自己改的html编辑器吧</title><link>http://www.phpweblog.net/jiujun/archive/2006/08/25/356.html</link><dc:creator>风舞</dc:creator><author>风舞</author><pubDate>Fri, 25 Aug 2006 13:34:00 GMT</pubDate><guid>http://www.phpweblog.net/jiujun/archive/2006/08/25/356.html</guid><wfw:comment>http://www.phpweblog.net/jiujun/comments/356.html</wfw:comment><comments>http://www.phpweblog.net/jiujun/archive/2006/08/25/356.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.phpweblog.net/jiujun/comments/commentRss/356.html</wfw:commentRss><trackback:ping>http://www.phpweblog.net/jiujun/services/trackbacks/356.html</trackback:ping><description><![CDATA[
		<p style="MARGIN-RIGHT: 0px" align="center">
				<img alt="" hspace="0" src="http://www.phpweblog.net/images/phpweblog_net/jiujun/89/o_e.gif" border="0" />
		</p>
		<p style="MARGIN-RIGHT: 0px">    改自eWebEditor，是哪个版本我忘了，修改过程中参考了动易编辑器，重新设计了目录结构，去掉了感觉没什么必要的后台管理，样式文件也只留了一个，另外还去掉了让我很不爽的设置背景图片功能。较原始版本已有很大改变，概括如下：<br />    · 剥离出“插入媒体文件”和“插入rm文件”；<br />    · 所有涉及上传的操作都新增“从已上传文件选择”的功能，但是由于这块我是用数据库实现的，所以在单独剥离出来的编辑器中就没有提供相关的代码；<br />    · 丰富了flash操作，可以设置是否透明flash、是否自动播放、是否循环播放、是否启用右键菜单。另外增加了和图片操作一样的修改功能，并关联了鼠标右键；<br />    · 图片文件、flash文件、媒体文件、rm文件的操作都提供了实时预览功能；<br />    · 去掉原有的“代码样式”和“引用样式”，新增“插入代码”功能；<br />    · 新增字母大小写转换功能；<br />    · 加入了eWebEditor刚新增的“插入艺术字”；<br />    · 增加图片左对齐、右对齐和居中对齐；<br />    · 加了个简易计算器；<br />    · 增加个插入分页的按纽，并关联了Ctrl+Enter；<br />    · 丰富了原有的“插入水平线”，现在可以设置水平线的大小、宽度、颜色、对齐方式等。对已经插入的水平线提供了修改功能；<br />    · QQ的表情看腻了，换了套泡泡的；<br />    ...<br />    由于eWebEditor本身的问题，目前只能在ie下正常，根本没有考虑兼容性，功能上也是给人一种华而不实的感觉，代码编写方面和FCK等还有一定差距。当然嘛，考虑到是国产的，大家就支持一下咯！ </p>
		<div align="right">
				<strong>
						<a href="/Files/jiujun/editor.rar" target="_blank">
								<font color="#ff0000" size="4">点击下载↓</font>
						</a>
				</strong>
		</div>
		<p>
		</p>
<img src ="http://www.phpweblog.net/jiujun/aggbug/356.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/jiujun/" target="_blank">风舞</a> 2006-08-25 21:34 <a href="http://www.phpweblog.net/jiujun/archive/2006/08/25/356.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>