登录
立即注册
首页
>
绿虎论坛
>
历史版块
>
编程
>
其他编程语言
>
讨论/求助
源码查看器3.0添加新功能
孤荷行
@Ta
2013-08-08
17577点击
*Css提取:
计划支持提取页内css和css连接文件提取
*表单提取(待定):
用来提取页面内的表单
隐藏样式
查看源码
回复列表(23|
显示机器人聊天
)
1
版主
@Ta
/ 2013-08-08 /
样
/
源
加油
2
Xisir
@Ta
/ 2013-08-08 /
样
/
源
顶顶
3
UnderDog
@Ta
/ 2013-08-08 /
样
/
源
支持
4
funch
@Ta
/ 2013-08-08 /
样
/
源
在线提取css,内链或外链css都可以:
http://app.hiftp.net/?do=wper.index.css
5
孤荷行
@Ta
/ 2013-08-08 /
样
/
源
@
funch
,你给我源码,让我参考,还是我自己直接写呢?
6
funch
@Ta
/ 2013-08-08 /
样
/
源
@
孤荷行
,这个,,正则匹配有css没,有再正则是外链or内链,外链则获取
7
孤荷行
@Ta
/ 2013-08-08 /
样
/
源
@
funch
,我有实现思路的,的确需要用正则匹配,我只是随便说说
8
孤荷行
@Ta
/ 2013-08-10 /
样
/
源
@
funch
,我晕死了:-(
9
funch
@Ta
/ 2013-08-10 /
样
/
源
@
孤荷行
,晕嘛呢?
10
孤荷行
@Ta
/ 2013-08-10 /
样
/
源
@
funch
,我写了一种匹配正则出现错误,后来写了这种正则,但是我看这个正则真的不爽,这个靠.css扩展名来匹配真的不靠谱。
(?i)<link[^<>]*href=[\"']?([^\"'<>]+\\.css)[\"']?[^<>]*>
11
老虎会游泳
@Ta
/ 2013-08-10 /
样
/
源
@
孤荷行
,匹配type="text/css"啊。
12
孤荷行
@Ta
/ 2013-08-10 /
样
/
源
@
老虎会游泳
,我的第一个是要匹配type="text/css"的,结果导致我程序出错,后来就改成了现在这个正则来测试一下
13
孤荷行
@Ta
/ 2013-08-10 /
样
/
源
@
老虎会游泳
,我的第一个正则
(?i)<link[^>]*type=[\"']?text/css[\"']?[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*>|(?i)<link[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*type=[\"']?text/css[\"']?[^>]*>
14
老虎会游泳
@Ta
/ 2013-08-10 /
样
/
源
@
孤荷行
,你为什么不尝试分步进行呢?
<link([不含>]*type=['"]text/css['"][不含>]*)>
先匹配出css标签的全部属性,然后再从中匹配出地址不就方便多了?
15
孤荷行
@Ta
/ 2013-08-10 /
样
/
源
@
老虎会游泳
,我是想一步到倍,所以就懒得分步了,如果无法一步解决那就只能分步了,分步还是有点麻烦的,首先第一次匹配得把数据截取出来,然后再进行匹配,再截取,这样循环有点多
16
funch
@Ta
/ 2013-08-10 /
样
/
源
preg_match('#<link([^>]+text/css[^>]*)>#Ui',$html,$css);//某些html没加"/'
preg_match('#href=([^\s]+)#Ui',$css[1],$cssi);
$url=str_replace(array('\'','"'),array('',''),$cssi[1]);
17
孤荷行
@Ta
/ 2013-08-10 /
样
/
源
@
老虎会游泳
,要是还不行那我就得把
(?i)<link[^>]*type=[\"']?text/css[\"']?[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*>|(?i)<link[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*type=[\"']?text/css[\"']?[^>]*>
分成
(?i)<link[^>]*type=[\"']?text/css[\"']?[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*>
(?i)<link[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*type=[\"']?text/css[\"']?[^>]*>
这两条进行两次匹配,这样应该还是可以的
18
funch
@Ta
/ 2013-08-10 /
样
/
源
@
孤荷行
,
19
老虎会游泳
@Ta
/ 2013-08-10 /
样
/
源
@
孤荷行
,JAVA的正则不支持回调函数吗(比如类似preg_replace_callback的)?这样就不用循环了。
<
1
2
>
添加新回复
回复需要
登录
。
(?i)<link[^<>]*href=[\"']?([^\"'<>]+\\.css)[\"']?[^<>]*>
(?i)<link[^>]*type=[\"']?text/css[\"']?[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*>|(?i)<link[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*type=[\"']?text/css[\"']?[^>]*>
<link([不含>]*type=['"]text/css['"][不含>]*)>
先匹配出css标签的全部属性,然后再从中匹配出地址不就方便多了?
preg_match('#href=([^\s]+)#Ui',$css[1],$cssi);
$url=str_replace(array('\'','"'),array('',''),$cssi[1]);
(?i)<link[^>]*type=[\"']?text/css[\"']?[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*>|(?i)<link[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*type=[\"']?text/css[\"']?[^>]*>
分成
(?i)<link[^>]*type=[\"']?text/css[\"']?[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*>
(?i)<link[^>]*href=[\"']?([^\"'>]+)[\"']?[^>]*type=[\"']?text/css[\"']?[^>]*>
这两条进行两次匹配,这样应该还是可以的