最近的文章列表

PHP通过哈希算法来实现搜索相似图片

哈希算法

count < =5 匹配最相似
count > 10 两张不同的图片
var_dump(ImageHash::run(‘./1.png', ‘./camnpr.jpg'));

<?php
class ImageHash {
const FILE_NOT_FOUND = '-1';
const FILE_EXTNAME_ILLEGAL = '-2';
private function __construct() {}
public static function run($src1, $src2) {
2016/1/11 Comments:
刷票:通过HTTP_X_FORWARDED_FOR、HTTP_CLIENT_IP、REMOTE_ADDR来看获得客户端IP的方法

刷票,分为多种限制,注册用户,验证码,以及IP限制。这个刷票网站,而不,是这个投票网站,限制了IP。如果要突破限制,我们需要了解如何获得用户的IP。

getenv('HTTP_X_FORWARDED_FOR')
getenv('HTTP_CLIENT_IP')
getenv('REMOTE_ADDR')

 

HTTP_X_FORWARDED_FOR

2016/1/8 Comments:
分析PHP中常见的缓存技术实例

JBLOG在开发的过程中,对性能的优化做了不少工作。为了尽量减少不必要的数据库查询,我对一些数据进行了缓存和静态化处理。

缓存的原理:把一些经常要用到但又很少改动的数据以数组或其它形式存储到一个独立的PHP文件中,然后在需要用到的时候包含进来。

缓存的优点:能够大大减少数据库的查询次数,减轻数据库的压力,提高程序的执行效率。

JBLOG缓存的数据有:系统设置、博客分类、侧栏最新日志、最新评论、博客统计、日志归档、友情链接、标签等。通过缓存这些数据,执行一次页面数据库的查询次数从十几次减少到3次。

JBLOG中与缓存相关的函数保存在include目录下的cache.func.php里,主要函数:

//刷新缓存
function recache($cachestr = '') {
if (!$cachestr) {
$cachelist = array('config','class','archive','newcomment','newpost','link','tag','statistic','topblog');
2016/1/7 Comments:
汇总20个提高PHP编程效率要点(技术点)

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号)。

    1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

        2、$row['id'] 的速度是$row[id]的7倍。

  3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符

2016/1/6 Comments:
如何利用PHP的fsockopen来模拟POST/GET传送数据的方法(带示例)

使用php可以模拟 post 和 get 传送数据到别的网页或站点

$arr=array(
'user'=>'test',
'password'=>''
);
sock_get($post_url,$arr);
sock_post($post_url,$arr);
//fsocket模拟get提交
function sock_get($url,$query=array()){
2016/1/5 Comments:
解决fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的方法(DEDECMS、Discuz、ecms、ECSHOP、shopex)

一:近期黑客利用程序漏洞注入后使用 fsockopen 进行PHPDDOS 攻击,导致部分服务器不稳定,现在将危险函数 fsockopen 暂时禁用,部分程序功能可能有问题,以下列出已知问题及通用解决方法:

通用解决方法:
找到程序里的 fsockopen 函数,替换为:pfsockopen,即可解决所有问题,两个函数的区别在于 pfsockopen 保持 keep-alive,使得黑客无法进行 连接数攻击。
已知使用 fsockopen 函数的程序文件路径(在fsockopen 前加 p, 即fsockopen 修改为 pfsockopen 即可 )

二:服务器同时禁用了fsockope

2016/1/4 Comments:
解决PHP中file_get_contents函数抓取https地址出错的两种方法

方法一:

在php中,抓取https的网站,提示如下的错误内容:

Warning: file_get_contents() [function.file-get-contents]: failed to open stream: Invalid argument in I:Webmyphpa.php on line 16

打开php.ini文件找到 ;extension=php_openssl.dll ,去掉双引号”;” ,重启web服务器即可。

apache服务器的话,可以同时启用mod_ssl模块测试。

2015/12/31 Comments:
IIS7/IIS7.5中绑定中文域名(直接输入中文域名)

刚刚发现有个客户绑定的中文域名没法正常解析,而且网站没法启动,后来上网查了资料才发现IIS7/IIS7.5可以直接绑定中文域名,不需要转换编码。
直接绑定中文域名就OK

IIS 7/IIS7.5的500.19错误Value does not fall within the expected range

值不在预期范围内,也是因为这个引起的,按这个方法改了后就可以解决。

2015/12/30 Comments:
解决php curl模拟post请求内容后并下载文件的思路

下面代码使用curl模拟post请求链接后直接显示出了文件内容,如何修改成不显示内容而直接下载请求到的.torrent格式文件呢

function curl_post($header,$data,$url)
{
$ch = curl_init();
$res= curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
2015/12/29 Comments:
国际(内外贸)网店Prestashop的性能优化方法

性能优化对与电子商务网站来说,非常关键,好的用户响应速度是核心的用户体验因素。Prestashop提供了集成的性能优化措施,主要有如下几点:

     1.启用smarty缓存,减少模版编译时间。

     2.减少页面大小的措施。

  •        减少CSS数量,合并到一个CSS文件。
  •        JavaScript合并。
  •        减少HTML大小。
  •        压缩嵌入到HTML中的javascript代码。
  •        HTML压缩。
2015/12/28 Comments: