文以载道,用文字抚慰良心院内
有时候,发现自己很忙,忙到没有时间写东西。最近渐渐的觉得,人活着不能过于沉默,我想我这一生将奉献于创作。写一些文字,给自己的亲人看,给喜欢我的人关心我的人看,给懂得的人看。
如此心思细腻的我,最近查看之前的积分记录时才发现交行的信用卡竟然有22000多的积分过期了。这么多积分可以兑换一个U盘呢,值人民币50多元。
最近的生活不好不坏,有时候心情非常沉重,感觉自己老了。前段时间新闻上看到某人头发花白的,对身边人说“没事,别担心”,越发的有感触,虽然自己这么年轻。
前几天我将交行的信用卡里的10000多积分兑换了6双袜子和一个面巾,袜子另外付了27块多,今天到货了,感觉蛮欣慰。
LMLPHP第五期更新功能院内
2014-11-06 may LMLPHP
LMLPHP第五期更新功能
优化方法showDirFile
该方法在第二个参数不传递时会输出HTML显示文件夹中含有链接的文件内容。此次修复多级目录下可能出现的显示不完整问题。
增强ONE-SLOC模式下<pre>标签输出
增强ONE-SLOC模式运行下,标签<pre>中的内容将原样输出,这样可以方便的解决某些需要原样输出的内容,比如代码之类的。含有属性的<pre>标签形式同样支持,如<pre class="code">...</pre>。
增加MySQL数据库驱动类
情感文学之我们的爱情故事,也许那就是一场梦院内
melody的日记
来世不可待,往事不可追
2012-07-20 01:23:57
很久没有写日记了,总是虎头蛇尾的做事情,
这几年之间发生了很多事情,我遇到了一个真心的全心全意呵护我的人。
2012年7月1日,n久没联系的你,突然在朋友圈给我留言,问我过得好不好
那天早上4点多起床送我先生去火车站,上班之后脑袋还迷迷糊糊的,第一眼看的时候,我以为自己看花眼了……
我心理百转千回,我不知道要怎么回你……我看了你的空间,里面是你儿子的周岁照,时间是2012年6月,而2012年6月是我结婚一周年
看着照片背景,应该不是你们村儿照相馆的水平,看起来还蛮大气,我猜测大概是在bj照的吧,只是照片里只有你儿子, 没有你老婆
前端技术之DIV或SPAN+CSS实现箭头效果技术
图像处理技术之图片相似度比较技术
<?php /** * Image similarity compare * @author May * */ class ImageCompare { private static $instance; /** * error rate */ private static $rate = 1; public static function getInstance() { if (!self::$instance) { self::$instance = new self(); } return self::$instance; } /** * Set error rate * @param int $rate */ public function setErrorRate($rate){ self::$rate = $rate; } /** * * @param string $file * @throws Exception * @return multitype:Ambiguous <boolean, string, array> */ private static function doCompare($file) { if(!function_exists('imagecreatetruecolor')) { throw new Exception('GD Library must be loaded'); } $is_string = false; if(is_string($file)) { $file = array($file); $is_string = true; } $result = array(); foreach ($file as $f) { $result[] = self::hash($f); } return $is_string ? $result[0] : $result; } /** * Cal Hamming distance is similar * @param string $img1 * @param string $img2 * @return boolean */ public function checkIsSimilar($img1,$img2) { if (file_exists($img1) && file_exists($img2)) { $img1 = self::doCompare($img1); $img2 = self::doCompare($img2); } if(strlen($img1) !== strlen($img2)) { return false; } $count = 0; $len = strlen($img1); for ($i=0;$i<$len;$i++) { if($img1{$i} !== $img2{$i}) { $count ++; } } return $count <= (5*(self::$rate)*(self::$rate))?true:false; } /** * Get hash value * @param string $file * @return boolean|string */ private static function hash($file) { if (!file_exists($file)) { return false; } $height = 8*self::$rate; $width = 8*self::$rate; $img = imagecreatetruecolor($width, $height); list($w,$h) = getimagesize($file); $source = self::createImg($file); imagecopyresampled($img, $source, 0, 0, 0, 0, $width, $height, $w, $h); $value = self::getHashValue($img); imagedestroy($img); return $value; } /** * Cal hash value * @param resource $img * @return string */ private static function getHashValue($img) { $width = imagesx($img); $height = imagesy($img); $total = 0; $array = array(); for ($y =0;$y<$height;$y++) { for ($x=0;$x<$width;$x++) { $gray = (imagecolorat($img, $x, $y) >> 8) & 0xFF; if (isset($array[$y]) && !is_array($array[$y])) { $array[$y] = array(); } $array[$y][$x] = $gray; $total += $gray; } } $average = intval($total/(64*self::$rate*self::$rate)); $result = ''; for ($y=0;$y<$height;$y++) { for ($x=0;$x<$width;$x++) { if ($array[$y][$x] >= $average) { $result .= '1'; } else { $result .= '0'; } } } return $result; } /** * Generate picture * @param string $file * @return Ambiguous <NULL, resource> */ private static function createImg($file) { $ext = self::getFileExt($file); if ($ext === 'jpeg') $ext = 'jpg'; $img = null; switch ($ext){ case 'png' : $img = imagecreatefrompng($file);break; case 'jpg' : $img = imagecreatefromjpeg($file);break; case 'gif' : $img = imagecreatefromgif($file);break; default:break; } return $img; } /** * Get picture extension * @param string $file * @throws Exception * @return string */ private static function getFileExt($file){ $infos = explode('.', $file); $ext = strtolower($infos[count($infos) - 1]); if (!in_array($ext,array('jpg','jpeg','png','gif'))) { throw new Exception( "file suffix must be 'jpg','jpeg','png','gif' "); exit; } return $ext; } }