用代码获取别人wordpress网站的主题 – 看近行远
最新消息:

用代码获取别人wordpress网站的主题

教程资源 nullang 2665浏览 0评论

 用代码获取别人wordpress网站的主题

今天做客户网址收集的时候突然想到的一个功能,不打开别人网站就能看到别人用的是什么主题,版本号是多少,作者是谁,作者链接是多少等等等等。

然后从这个想法衍生出了:用代码获取别人网站主题中的所有图片文件、css文件、js文件等等等等。

结果还别说,真能实现呢,这样抠下来的东西就是主题上面的那层皮。但是博主不会用来扒什么皮,只是获取一些内容罢了。

简单说来,实现这方法就是用curl抓取网页内容和用preg_match_all正则表达式匹配内容。如果网站是用JQ操作DOM数据的话,那就抓不到了。

下面博主教大家怎么抓取别人网站上的主题名称和版本号以及作者。

首先我们先用function定义getcontent()

function getcontent($url){
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
$content = trim(curl_exec($ch));
curl_close($ch);
return $content;
}

这里我们尽量把超时时间设大一点,这里我设置为30秒,在获取内容后,用trim()去掉空白字符再赋予给变量$content。

接着就抓取网页内容:

$url = "http://fatesinger.com/";
$get = getcontent($url);

这里我用大发哥的网址示例(发哥别怪我),抓到内容后,用preg_match_all正则表达式匹配内容进行匹配:

preg_match_all ("/themes/(.*)/style.css/i",$get, $out, PREG_SET_ORDER);

这里匹配的是“themes”后面和“/style”前面的内容,“/i”表示不区分大小写,输出的是一个多维数组,用print_r($out);把它打印出来就是:

Array ( [0] => Array ( [0] => themes/presscore/style.css [1] => presscore ) )

现在可以发现,大发哥用的主题叫“presscore”,我们只取需要的,用echo输出它就行了:

echo $out[0][1];

输出的结果自然就是“presscore”了。

如果对方主题style.css文件包含在css文件夹里面,获取到的结果就会包含这个路径,那么就用str_replace()替换掉就行:

echo str_replace("/css","",$out[0][1]);

现在我们获取到了别人使用的主题名称,现在我们就更进一步:

$getcss = getcontent($url."/wp-content/themes/".$out[0][1]."/style.css");
preg_match_all ("/Theme Name:(.*)/",$getcss, $theme, PREG_SET_ORDER);
preg_match_all ("/Version:(.*)/",$getcss, $version, PREG_SET_ORDER);
preg_match_all ("/Author:(.*)/",$getcss, $author, PREG_SET_ORDER);
preg_match_all ("/Author URI:(.*)/",$getcss, $authorurl, PREG_SET_ORDER);

打印$theme$version$author$authorurl

Array ( [0] => Array ( [0] => Theme Name:PressCore [1] => PressCore ) ) 
Array ( [0] => Array ( [0] => Version:3.0 [1] => 3.0 ) ) 
Array ( [0] => Array ( [0] => Author:Bigfa [1] => Bigfa ) ) 
Array ( [0] => Array ( [0] => Author URI: [1] => ) )

这样,我们就获取到了主题名称、版本号、作者、作者链接。

对应的输出方法就是:

echo "主题名称:".$theme[0][1]."<br>";
echo "版本号:".$version[0][1]."<br>";
echo "作者:".$author[0][1]."<br>";
echo "作者链接:".$authorurl[0][1]."<br>";

查看演示 查看源码

转载请注明:看近行远 » 用代码获取别人wordpress网站的主题

演示下载 效果演示 下载列表
本文评分
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址