php采集与js和css
php采集过程中,对页面的某些无用信息或有用信息需要进行过滤。这里以js和css为例。如一些站点的js文件可能不是我们想要的,而别人的css样式可能又是你所机要的。现以两者为例说下php下的实现。
1、删除HTML中的JS部分
js在html的标记为…… ,根据该规则,可以通过下面的代码实现过滤删除:
1<?php
2function delJS($html) {
3 $search = '~<script[^>]*?>.*?</script>~si';
4 return preg_replace($search,'',$html);
5}
6$html = file_get_contents('html/test.html');
7echo delJS($html);
8?>
2、采集css文件
采集css的方法,同样类推适用于图片类的采集。此处分成了两部分,一个是前端html文件,提示提交框,用于输入要采集的页面url,提交后交给后面的php去处理。当然也可以一个php去完成,具体代码如下:
html前端展示:
<pre data-language="HTML">```markup
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<form method="get" action="post.php">
<input type="text" name="q" style="width:500px">
<input type="submit" value="提交">
</form>
php获取页面中的所有css文件名:
```php
<?php
if($_GET) {
$url= $_GET['q'];
$data = file_get_contents($url); //http://www.qq.com
$preg = '/<link (.*?)href="(.*?.css)"(.*?)/>/i';
preg_match_all($preg,$data,$css_data,PREG_SET_ORDER);
echo '<ol>';
foreach ( $css_data as $v){
echo '<li>';
echo $v[2].'<br>';
echo '</li>';
}
echo '</ol>';
}
?>
获取到所有css文件名列表,所有的一切就都水到渠成了。可能通过php调用shell进行wget或curl,也可以通过的自身的file_get_contents或curl相关函数下载css文件的内容并保存到相应的位置。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/php-caiji-js-css/2786.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.