Top Menu

如何用Curl抓取防盗链的图片

通常,某些网站会由于版权原因禁止外部页面访问其图片资源,包括直接在浏览器中访问和在其他网站引用,如果试图通过以上方式访问图片资源会返回403禁止访问。

但有时候我们为了一些个人用途又需要这些图片,所以为了解决这个问题,需要想办法绕过网站的防盗链机制。

一般来说,网站的防盗链机制是通过判断请求的来源域名来进行验证的,那么就可以通过Curl模拟访问来源,来绕过防盗链机制。

具体如下

<?php // Curl Function function curl_get_redirects($url,$refer){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_FAILONERROR, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_REFERER, $refer); $result = curl_exec($curl); curl_close($curl); return $result; } // Use $url = $imagesUrl; $refer = 'http://images/resource/domain/'; $image = curl_get_redirects($url,$refer);

Continue Reading 0

最近电信又不太正常了

周末在家调试一个项目,应为是在线调试,所以要一直刷新页面,然后就发现一个奇怪的现象,只要一访问https页面,就会突然之间无法访问网页,甚至连已经连接上的shell和sftp都会立刻被断开,过几分钟之后又可以恢复访问了。这个现象之前都没有碰到过,因为之前都是只有更新文章的时候才会访问。这次确实比较奇怪,一开始以为是服务器配置的原因,因为用http访问就不会被断开,后来不用https访问就没出现这个问题了,差点以为就是服务器配置的问题,直到。。。

Continue Reading 2

Debian8优化和调整PHP-FPM参数

自Debian7升级到Debian8之后,一直没有调整PHP-FPM的参数,因为一直够用,但是据说Debian8相比之前的版本对系统的性能有很大的提高,这次就动手来测试一下。

系统环境

  • Linode 1024 VPS Tokyo, JP
  • Debian 8.2 Jessie 64-bit
  • Apache/2.4.10 (Debian)
  • PHP v5.6.14-0+deb8u1
  • WordPress 4.4.1

调整参数

Debian7时候的参数如下,之前的优化记录在这里

pm = ondemand pm.max_children = 10 pm.process_idle_timeout = 10s; pm.max_requests = 500

Continue Reading 0

PHPVerbalExpressions 用自然语言来写正则表达式

PHPVerbalExpressions是一个基于自然语言的PHP正则数据验证工具,虽然基于正则表达式,但其将常用的过滤器转换为自然语言,使不熟悉正则表达式的人也可以在项目中方便的用正则公式来对数据进行过滤和分析。

例如要验证一个字符串是否为网址,通常用正则方式的代码如下

<?php $regex = '@(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))@'; var_dump( preg_match($regex, 'http://news.qq.com/a/20160115/009079.htm') ); //true

但是上面一长串正则代码正常人是看不懂的,而用PHPVerbalExpressions就简单明了了许多

$regex->startOfLine() ->then("http") ->maybe("s") ->then("://") ->maybe("www.") ->anythingBut(" ") ->endOfLine(); if($regex->test("http://github.com")) echo "valid url". '<br>'; else echo "invalid url". '<br>';

Continue Reading 0

Powered by WordPress. Designed by WooThemes