4-19
Saturday
标签
梦涛笔记

Apache2.2整合PHP5.3以上的版本时提示错误Cannot load php5apache2_2.dll into server解决方法

Apache PHP 发布时间:2025-03-14 13:34:09

Apache2.2整合PHP5.3以上的版本时提示错误“Cannot load php5apache2_2.dll into server ”

故障现象:
  在命令符方式下启动Apache时提示错误信息“httpd: Syntax error on line 129 of D:/serviceRoot/Apache2.2/conf/httpd.conf: Cannot load D:/serviceRoot/PHP5.4.3/php5apache2_2.dll into server”,导致Apache无法启动。
  Apache的配置文件D:/Apache/conf/httpd.conf 第129行内容为:
  LoadModule php5_module D:/serviceRoot/PHP5.4.3/php5apache2_2.dll
  注意:其中D:/serviceRoot/PHP5.4.3/php5apache2_2.dll是我安装php的相应路径。Apache为2.2.22版本,php为5.4.3版本。

出现错误的原因:
  在网上查到一位朋友遇到类似情况,并提示根据PHP的安装文件名称“php-5.3.6-Win32-VC9-x86.zip”得知该版本的PHP安装文件是由VC编译完成的,因此如需要运行或调用该PHP压缩包中的相关文件,则需要首先安装VC的运行时环境。如果你的机器没有安装有VC运行时环境,则Apache调用该PHP压缩包中的相关文件时会提示如上错误信息。

解决方法:
  在网上搜索“VC2008可再发行组件”或者是“VC2008运行库”,下载安装后即可解决此故障。

MSG2200-2GE-AC 路由器虚拟服务器内网不能访问

路由 发布时间:2025-03-14 13:33:13

瑞斯康达 MSG2200-2GE-AC 路由器设置虚拟服务器转发时,在外网访问WAN口IP可以正常访问,但在本路由下的终端访问时,转发都不生效。

解决方法如下:

telnet到设备命令行界面中,输入以下命令,需要严格按照命令顺序配置

ena
con ter
address wan01 /创建地址服务名称为wan01
host-address 175.42.92.x /服务地址的ip为内网要访问的公网IP
exit
service fwq1 /创建fwq1
tcp dest 80 source 1 65535
exit
ip nat pool web 192.168.1.8 192.168.1.8 /创建私网服务器地址池
ip nat destination vlan1 any wan01 fwq1 web /创建nat,VLAN1下的any地址访问目的wan01(即175.42.92.x)的这个fwq1服务都去访问私网地址池web
ip nat source vlan1 any any fwq1 interface /创建nat,VLAN1下的any地址访问any目的fwq1的服务都到转到接口模式下
host-address 175.42.92.x 可以改为如下,指定一个网段
net-address xxx.xxx.xxx.xxx/yy IP地址/掩码 此为一个地址段


ROS 限速脚本

ROS 发布时间:2025-03-13 20:15:04
#ROS 5

for myip from 2 to 254 do={/queue simple add name=("限192.168.1." . $myip . "") target-address=("192.168.1." . $myip . "/32") limit-at=0/0 max-limit=5120000/8192000 }
#ROS 6

:for myip from 1 to 254 do={/queue simple add name=("6." . $myip . "") dst=("192.168.6." . $myip . "/32")  max-limit=204800000/30096000 target=0.0.0.0/0 }



Imghash:相似图片搜索的php实现

PHP 发布时间:2025-03-13 20:00:52

前几天看到阮一峰的博客里写到关于相似图片搜索的原理, 里面介绍了Google相似图片搜索的大致原理,主要是从Neal Krawetz博士的LOOKS LIKE IT翻译而来。文章详细的介绍了相似图片搜索处理的相关步骤,并且给出了一个python的实现,由于我对PHP比较熟,所以写了个PHP的版本。
图片相似搜索的简单原理
根据文章里的描述,其实原理比较简单,大致有如下几个步骤:

1、缩小尺寸。将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。

2、简化色彩。将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。

3、计算平均值。计算所有64个像素的灰度平均值。

4、比较像素的灰度。将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。

5、计算哈希值。将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序就行了。得到指纹以后,就可以对比不同的图片,看看64位中有多少位是不一样的。

这种算法的优点是简单快速,不受图片大小缩放的影响,缺点是图片的内容不能变更。实际应用中,往往采用更强大的pHash算法和SIFT算法,它们能够识别图片的变形。只要变形程度不超过25%,它们就能匹配原图。

图片相似搜索的PHP实现
原文中给出了一个python版本的实现,代码只有53行。我写了个对应的PHP版本,由于直接是用类写的,所以代码有100行,具体如下:

class Imghash{
	
	private static $_instance = null;
	
	public $rate = 2;
	
	public static function getInstance(){
		if (self::$_instance === null){
			self::$_instance = new self();
		}
		return self::$_instance;
	}
	public function run($file){
		if (!function_exists('imagecreatetruecolor')){
			throw new Exception('must load gd lib', 1);
		}
		$isString = false;
		if (is_string($file)){
			$file = array($file);
			$isString = true;
		}
		$result = array();
		foreach ($file as $f){
			$result[] = $this->hash($f);
		}
		return $isString ? $result[0] : $result;
	}
	public function checkIsSimilarImg($imgHash, $otherImgHash){
		if (file_exists($imgHash) && file_exists($otherImgHash)){
			$imgHash = $this->run($imgHash);
			$otherImgHash = $this->run($otherImgHash);
		}
		if (strlen($imgHash) !== strlen($otherImgHash)) return false;
		$count = 0;
		$len = strlen($imgHash);
		for($i=0;$i<$len;$i++){
			if ($imgHash{$i} !== $otherImgHash{$i}){
				$count++;
			}
		}
		return $count <= (5 * $rate * $rate) ? true : false;
	}
	public function hash($file){
		if (!file_exists($file)){
			return false;
		}
		$height = 8 * $this->rate;
		$width = 8 * $this->rate;
		$img = imagecreatetruecolor($width, $height);
		list($w, $h) = getimagesize($file);
		$source = $this->createImg($file);
		imagecopyresampled($img, $source, 0, 0, 0, 0, $width, $height, $w, $h);
		$value = $this->getHashValue($img);
		imagedestroy($img);
		return $value;
	}
	public 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 (!is_array($array[$y])){
					$array[$y] = array();
				}
				$array[$y][$x] = $gray;
				$total += $gray;
			}
		}
		$average = intval($total / (64 * $this->rate * $this->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;
	}
	public function createImg($file){
		$ext = $this->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);
		}
		return $img;
	}
	public function getFileExt($file){
		$infos = explode('.', $file);
		$ext = strtolower($infos[count($infos) - 1]);
		return $ext;
	}
}
require_once “Imghash.class.php”;
$instance = ImgHash::getInstance();
$result = $instance->checkIsSimilarImg(‘chenyin/IMG_3214.png’, ‘chenyin/IMG_3212.JPG’);

如果$result值为true, 则表明2个图片相似,否则不相似。

在实际的相似图片搜索中,算图片的指纹并不是难点,难点而是在怎么从海量的图片指纹里找出与之相似的指纹。


据说。。妹子们对这个姿势毫无抵抗力!!!

情感 发布时间:2025-03-13 19:58:55

image.png

其实天使就在身边,可你却听了恶魔的话

情感 发布时间:2025-03-13 19:58:17

其实天使就在身边,可你却听了恶魔的话

image.png

为什么必须保护Robots协议?

HTML 发布时间:2025-03-13 19:57:43

image.png

一、从Spider程序到Robots协议

即使不是工程狮,关注互联网的人也很少不知道Robots协议。百度和360从2012年起展开的一场屏蔽与反屏蔽战把原本程序猿才知道的Robots协议变成媒体热词。北京一中院8月7日对3B搜索不正当竞争纠纷案(3B案)刚刚作出的一审判决让Robots协议在新闻里又火了一把。Robots协议的法律地位或法律效力问题是3B案一系列法律问题中最大的争点,分析这个问题就必须先了解Robots协议的内容和意义。

Robots协议和搜索引擎的爬虫程序(Spider)其实是一对同胞兄弟。

1994年之前,AltaVista、Infoseek等代表的搜索引擎在互联网可以通过Spider直入网站管理后台,把所有网页信息系数收录。除了涉及隐私外,爬虫程序的反复收录在20年前对网站带宽也是不小的负载。荷兰工程师Martin Koster深感互联网丛林之乱,提出通过设立名为Robots规范的网站访问限制政策(Access Policy)方式在整个互联网统一解决Spider无所不在所带来的威胁。Robots协议在技术实现上并不复杂,网站管理员只要按规则在网站根目录下创建Robots.txt的文本文件就可以禁止搜索爬虫收录指定网页内容。从早期的AltaVista、Infoseek到后来居上的Google 、Yahoo和美国以外的Baidu等各大搜索引擎都群体接受了Robots协议,避免和内容网站为Spider陷入一场危机。

二、Robots规则可以受法律保护

反对3B案一审判决的理由集中对Robots协议法律效力的否定上。Robots协议并不是法律,也没有被IETF、ITU和W3C等国际标准组织接纳。但国际标准也不是法律,逻辑上成为国际标准不等于自动享有法律保护。法律和规则并不是同一个概念,法律属于规则,而规则远远大于法律。百度是以不正当竞争为案由起诉360,反不正当竞争法本身就是通过列举加兜底的方式,在少数明确规定的违法行为外以原则性规定了根据不正当竞争行为的判断标准。司法者的权限并不局限于寻找包含Robots协议内容的具体法条,而是可以根据实际案情裁量违反Robots协议是否就违反了反不正当竞争法第二条对经营者应当遵循自愿、平等、公平、诚实信用和公认商业道德的强制性规定。认定违法并不需要将Robots协议上升为法律作为前提,违反规则就可能导致违反法律的结果。况且3B案发生背景之一,是被告奇虎360本身就通过签署《互联网搜索引擎服务自律公约》承诺“遵守机器人协议(Robots协议)”和“限制搜索引擎抓取应有行业公认合理的正当理由,不利用机器人协议进行不正当竞争行为”。360在明确承认Robots协议约束力后又规避了协议,既是违法又构成违约。

法律之外的规则受法律承认和保护是普遍现象。

合同不是法律而是当事人自由达成的一致意思表示,但依法成立的合同当然受法律保护。《合同法》第八条即规定:“依法成立的合同,对当事人具有法律约束力。…依法成立的合同,受法律保护。”被互联网广泛采用的Robots协议属于行业惯例,仅《合同法》就在第二十二条、第二十六条、第六十条、第六十一条、第九十二条等九个条款承认交易习惯的效力,如第九十二条就规定:“合同的权利义务终止后,当事人应当遵循诚实信用原则,根据交易习惯履行通知、协助、保密等义务”。《物权法》第八十五条也规定:“法律、法规对处理相邻关系有规定的,依照其规定;法律、法规没有规定的,可以按照当地习惯”。根据法理及以上法条的规定,惯例完全有可能获得法定效力及执行力。3B案判决认可Robots协议的效力是法官依职权对Robots协议合法性进行认知的过程,并不存在法官造法或逾越职权创造新权利。

百度在360推出网络搜索后迅速启用Robots协议,在百度旗下的知道、贴吧、文库、百科等产品屏蔽了360爬虫。百度屏蔽360的产品基本属于用户创造内容(UGC)类型的上传平台。百度对平台内容并不直接享有著作权,360因此质疑百度无权拒绝收录。但UGC平台身份也无碍百度根据《著作权法》第十四条对相关内容享有作为汇编者的权利。在百度主张反不正当竞争保护情况下,举证责任更简化到证明原告合法投入因被告竞争行为受到实际损害及被告竞争行为违反诚实信用或商业道德,而360强行利用百度网站内容已构成搭便车的不正当竞争行为。

三、互联网拒绝丛林法则

360在3B案中以百度滥用Robots协议作为抗辩,但换个角度看真正容易被滥用的倒是Spider程序。互联与分享是网络的基本性格,而信息的多元化也决定了很多情况下网络传播必须受到控制。不受Robots协议限制的Spider程序必然使互联网陷入严重混乱,网站后台隐私无法保护,网页更新的旧信息必须完全删除而不能仅仅屏蔽,音乐、视频等内容的收费盈利模式遭到毁灭打击。互联网经过长期博弈逐步摆脱无序状态,难道只因搜索爬虫失控又将回到比拼技术暴力的暗黑丛林?这种情景绝非法治下的互联网可以接受的。

Robots协议自成立以来在全球受到严格遵守,利用Robots协议屏蔽搜索的案例举不胜举。Facebook和Twitter长期屏蔽谷歌,后者除了发牢骚不敢采取任何规避手段;默多克的新闻集团一度全面屏蔽谷歌,谷歌一直忍到……忍到默多克自己忍不住投降;搜索屏蔽360的除了百度各网站还有腾讯的QQ空间,更有意思的是QQ空间屏蔽360爬虫却在2012年后对百度和Google开放,360甚至都没有为此指责腾讯歧视;腾讯尽管向百度开放QQ空间却将腾讯微博的内容屏蔽至今,新浪微博也一度加入屏蔽百度的队列;电商领域可能是互相屏蔽的高地,淘宝从2008年起一直屏蔽百度搜索,京东、苏宁、当当网等也屏蔽了阿里旗下一淘搜索的爬虫。

各国法院承认Robots协议效力的判决同样不胜枚举。美国联邦法院早在2000年就在eBay诉BE(Bedder’s Edge)案 中就通过禁令支持了eBay屏蔽BE爬虫的主张。内华达法院2006年审理的Field v. Google 案 也明确认可Robots协议是有效保护网站权利的通行标准。北京一中院同样于2006年在审理著名的浙江泛亚诉百度著作权侵权案 判决书中认定原告有权利用设置Robots.txt文件拒绝百度收录。上述通过Robots协议屏蔽搜索爬虫的互联网实例和认可Robots协议法律效力的中外法院判决,都证明Robots协议的效力并不是在3B案中才成为争点,也证明Robots协议在产业实践和司法实践中都一直得到认可和尊重。

俯瞰香港维多利亚港

旅行 发布时间:2025-03-13 19:56:31

俯瞰香港维多利亚港,海港两岸的香港岛和九龙半岛高楼林立,中国香港。南非咨询公司最新报告显示,香港已成为全球千万富翁最多的城市,全城有15400人资产超过1000万美元,纽约和伦敦市分别以14300人和9700人位列二三。

image.png

这样的工作室真是喜欢,希望能拥有个~

情感 发布时间:2025-03-13 19:53:12

image.png

呼和浩特的回忆

情感 旅行 发布时间:2025-03-13 19:55:31

image.png

image.png

image.png

image.png