三月 8th, 2010

浏览器中文本框的自动填充

No Comments, CSS, by 排头兵

默认情况下AutoComplete是打开的。见IE-工具-内容-自动完成选项。
有时候我们并不需要AutoComplete,例如需要用户自己再次输入而非自动完成。只要将所在表单元素的autocomplete属性设置为off即可。

<form> 
请双击文本框 <input type="text" name="wd" autocomplete="off"/>
<input type="text" name="email" autocomplete="off"/> 
</form>

那么,如果所有表单元素都不想使用autocomplete功能呢?见下面的方法:

<form autocomplete="off"> 
请双击文本框 <input type="text" name="wd"/>
<input type="text" name="email"/> 
</form>

解决linux下安装ssl后,apache重启时需要密码的问题。
在帮客户购买的vps上面安装完SSL以后,每次启动apache时都需要输入密码,觉得维护起来非常的麻烦。
客户的vps是ubuntu Sever,其他linux服务器找到相关文件修改
编辑:ssl.conf ,
ubuntu下面的目录:
/etc/apache2/mods-available/ssl.conf
修改ssl.conf
# SSLPassPhraseDialog builtin
SSLPassPhraseDialog exec:/ect/apache2/key.sh

编辑:/ect/apache2/key.sh
!/bin/bash
echo ‘your pass phrase’
注意key.sh的权限755
重启服务器
问题解决

首先申明一下:使用.htaccess文件,会降低httpd服务器的一点性能.h
我们一般会把客户的网站放在自己的网站的目录下面,
比如FTP:/home/ftp/www,
有一个网站http://www.example.com,
那么新建一个网站的目录为http://www.example.com/newsite/,
我们这个项目是使用qeephp开发的,使用qeephp的路由重写功能,在把网站上传到服务器上,
使用了虚拟目录Alias,因为不想看到类似http://www.example.com/newsite/public/这样的路径,
于是外部访问地址是http://www.example.com/newsite,
在我启用了qeephp的rewrite时,一直说找不到路径,/home/ftp/www/newsite/,很奇怪。
仔细阅读htaccess的文档,发现有一个BaseDir参数
在htaccess 中添加

RewriteEngine on
RewriteBase /twosisters
 
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

问题就解决.
估计把index.php改成绝对路径也没有问题。

二月 7th, 2010

利用php创建打印文字动画效果

No Comments, PHP, by 排头兵

利用php创建打印文字动画效果

用php+imagick+imagemagick实现的代码如下,在ubuntu下如何安装使用imagick+imagemagick,可以看这篇文章,其他操作系统请google相关文章

效果图片如下:

anti-print

源代码:

< ?php
/**
* 打印机打印效果
* @ param $text String 需要打印的文字
* @ param $color color|#16进制颜色 
* @ param $fontsize int 字体大小
**/
 
function gif_print($text,$color='red',$fontsize = 40)
{
    $ani = new Imagick();
    $ani->setFormat('gif');
    $textcolor = new ImagickPixel($color);
    $bgcolor = new ImagickPixel('white');
 
    //定义画笔
    $draw = new ImagickDraw();
    $draw->setFontSize($fontsize);
    $draw->setFillColor($textcolor);
    $draw->setGravity(imagick::GRAVITY_WEST);
 
    //获取画笔写字的属性
    $fontprop = $ani->queryFontMetrics($draw,$text);
    $width = (int)$fontprop['textWidth'] + 8;
    $height = (int)$fontprop['textHeight']  ;
 
    //创建打印机的待机效果
 
    $ani->newImage($width,$height,$bgcolor);
    $draw->line(3,8,3,$height);
    $ani->drawimage($draw);
    $ani->setImageDelay(30);
    $ani->newImage($width,$height,$bgcolor);
    $ani->setImageDelay(30);
    $ani->newImage($width,$height,$bgcolor);
 
    $ani->drawimage($draw);
    $ani->setImageDelay(30);
 
    $textstrlen = strlen($text);
 
    //创建打印机打印效果
    for($i = 0;$i < = $textstrlen;$i++)
    {
        $single = substr($text,0,$i);
        $ani->newImage($width,$height,$bgcolor);
        $ani->setGravity(imagick::GRAVITY_WEST);
        $ani->annotateImage($draw,0,0,0,$single);
        $ani->setImageDelay(20);
    }
 
    header("Content-Type:image/gif");
    echo $ani->getImagesBlob();
}
gif_print('Welcome to Paitoubing.cn','blue',30);

在前面给大家介绍了imagick在ubuntu下的基本安装,及简单的处理图片,今天尝试使用imgaick来创建水中倒影的效果.
reflectionphp

< ?php
/**
 * reflection 
 * 
*/
 
function reflection($image){
	/* 读取原图片 */
	$im = new Imagick($image);
 
	/* 创建缩图 */
	$im->thumbnailImage( 200, null );
 
	/*加边框 */
	$im->borderImage( "white", 5, 5 );
 
	/* 克隆并创建镜像图片 */
	$reflection = $im->clone();
	$reflection->flipImage();
 
	/* 创建一个滤镜效果,合成 */
	$gradient = new Imagick();
 
	$gradient->newPseudoImage( $reflection->getImageWidth() + 10,
	                           $reflection->getImageHeight() + 10,
	                           "gradient:transparent-black"
	                        );
 
	/*合成 */
	$reflection->compositeImage( $gradient, imagick::COMPOSITE_OVER, 0, 0 );
 
	/* 设置透明度*/
	$reflection->setImageOpacity( 0.3 );
 
	/* 创建一个空白背景图层,足够大 */
	$canvas = new Imagick();
	$width = $im->getImageWidth() + 40;
	$height = ( $im->getImageHeight() * 2 ) + 30;
	$canvas->newImage( $width, $height, "black", "png" );
 
	/* 合成最终效果图*/
	$canvas->compositeImage( $im, imagick::COMPOSITE_OVER, 20, 10 );
	$canvas->compositeImage( $reflection, imagick::COMPOSITE_OVER,
	                        20, $im->getImageHeight() + 10 );
 
	/* 输出图片*/
	header( "Content-Type: image/png" );
	echo $canvas;
}
reflection('me.jpg');
?>