首页 > 编程技术 > php

简易PHP抓网页

发布时间:2016-11-25 16:09




不包括抓图片

<?
 $buffer = file("address"); //$address 网页地址
 for($i = 0;i < sizeof($buffer);$i++)
 {
  //去yahoo广告
  $buffer[$i] = str_replace(''<!----- ad start ----->'',''<noscrīpt>''  $buffer[$i]);
  $buffer[$i] = str_replace(''<!----- ad end ----->'',''</noscrīpt>''  $buffer[$i]);
 
  //最后显示
  echo($buffer);
 }
 
?>

str_replace 3个参数 ,第一个是原文件的内容,第二个是替换成的内容.最后一个是写入的地方.

$buffer能取得整个html页面的文本档,成为一个数组,每行一个元素,简单的说就是逐行寻找替换.

替换后输出.

同样的可以把烂掉的无法显示的页面 例如成为 http://localhost/images/a.jpg 这样的替换成对应网址.

替换前查看下原HTML档对比下就行.



对于已经熟悉Apache+PHP+MYSQL的安装配置的开发人员,或者是不想涉及开发而只是想建立PHP应用程序的人来说,使用Apache/PHP/MYSQL安装套件来配置PHP的WEB环境会方便不少,但是选择合适的套件还是需要的。个人把曾经使用过的,以及比较知名的安装套件总结如下:


WAMP
一直在用的,带有phpMyAdmin和SQLiteManager ,提供了很多Add-on插件,如PHP版本切换、ZEND OPTIMIZER 、WEBALIZER等,站长推荐!
http://www.wampserver.com/

TSW
比较完整,支持PERL,FTPServer,还提供有Tomcat和wordpress插件
http://sourceforge.net/projects/yawamp/

GREENAMP
国产的套件,无删除功能
http://chin.blogchina.com

VertrigoServ
内置了ZendOptimizer
http://vertrigo.sourceforge.net/

XAMP
很不错,提供了丰富的插件,如perl、python、tomcat和cocoon
http://www.apachefriends.org/de/xampp-windows.html

WAPM
国产的,支持Tomcat和Turck MMCahe、ZendOptimizer
http://w.yi.org/

Appserv
也整合了Zend Optimizer
http://www.appservnetwork.com/

Apache2Triad
包含了Perl , Python
http://apache2triad.sourceforge.net

EasyPHP
安装比较简单
http://www.easyphp.org/

LiteWeb 支持Perl和虚拟域名
http://www.cmfperception.com/liteweb.html

phpHome
http://phphome.sourceforge.net/

http://phpnow.org/download.html


先用document.cookie方法把js变量写入cookie中,再用PHP取出。

<scrīpt>  

   1. var name="myqq",value="10000";  
   2. document.cookie=name+"="+value+";"  

</scrīpt> 

<?php  

echo $_COOKIE["myqq"]."<br/>";  

$my="我的QQ是".$_COOKIE["myqq"];  

echo $my;  

?> 

PHPHOME
集成: php,Apache,MySQL,phpadmin
轻松搭建Apache的PHP环境

Appserv:
出的时间比较晚,功能很完善,单独控制服务是否启动
下载地址:http://www.appservnetwork.com

WAMP:
通过名字就知道是APACHE+MYSQL+PHP的集成软件。德国人开发的,不错!
http://sourceforge.net/project/showfiles.php?group_id=116092


XAMPP:
下载地址:http://www.apachefriends.org/en
这个软件支持多个平台,WinLinuxSolarisMac OS X,目前也有不少人使用。



<

 

 


模板其实就是php和html的分离,有人也说mvc啥的。
php处理程序,把动态内容保存到变量里面,然后通过模板输出这些变量的内容,这就是模板
你可以
$rows = $db->getAll($sql);
require "tpl.html";
来输出。
你也可以
$tpl->setVar("rows",$rows);
$tpl->display("tpl.html");
来输出,总之他是输出变量里面的内容。

我感觉模板应该有下面的特征
1,就是html页面
2,即见即得
3,书写简化,容易扩展。(这一点非常重要,其实就是换个简单的书写形式)
smarty自定义函数还有什么的,还有其他模板也有类似功能。比如{article.addtime:date:Y-m-d} {article.content:nl2br:}
如果能做到上面的三点,我感觉就是一个很好的模板。
很多人说直接用php来做html模板,我比较反对这种形式
1,php代码看不到。
2,书写太繁,太麻烦。
如果看起来麻烦,书写也麻烦,我拿模板来干什么,做花瓶?

discuz的模板就是一个不错的模板,可惜2,3两点他做得不太好,我自己也做个模板。到现在也一直用,差什么就加什么,对我来说他就是一个好的模板。
1,就是html页面
2,即见即得,你看到的什么样子,输出就是什么样子。不像很多人去搞个href="$cssPath/css.css"这样去搞个,div+css的页面这种模板美工改起来肯定没少吃苦。
3,书写简化   其实就是函数的简写。就如上面的,比如发布时间需要格式化可以任意改,比如内容要吧回车变成换行,比如要把内容弄到一个编辑器。{content:htmleditor:},比如。。。。,他就是一个简写,这样做起来什么事情都事倍功半。还记得那个页面的调用吧?比如最新产品显示8个,最新。。。显示10个。(很多所谓的cms采用标签)
其实说白了就是一个foreach,传入参数返回一个二维数组。
于是就有了
<!--{loop NewProduct:sortid=1;limit=8 $product}-->
{product.productname:cut:20} ....
<!---{/loop}-->
有一天客户要求变了,要调用精华产品,于是
<!--{loop NewProduct:sortid=1;limit=8 $product}-->
变成了
<!--{loop NewProduct:sortid=1;digest=1;limit=8 $product}-->
我感觉这就是简化,美工只要明白,这里应该是循环就行了,到现在和我合作的美工还没有一个不会改我的模板的,虽然他不懂程序。
4,模板吧,你要追求速度,缓存吧。
缓存真的有用吗?俺为啥要缓存?
很多人说设置下缓存时间,html缓存就行了,这个能叫缓存么?如果是动态网页,上面写的
欢迎你,{username},你还能把他缓存了?你说不缓存吧,下面的调用又太多,咋办捏?
这时候就要用到局部缓存,什么叫局部缓存,就是缓存页面的也部分。
其实说白了也就是那些调用。
<!--{loop NewProduct:sortid=1;limit=8 $product}-->
这种地方的调用,如果首页显示20个分类的最新5篇文章,那打开页面,光这些文章调用就要20次查询。局部缓存吧
<!--{#loop NewProduct:sortid=1;limit=8 $product}-->
loop我加一个#就让他缓存了。
我加20个#,首页的调用就没数据库查询了,好像有的地方必须每次都调用最新的,咋办呢,把#去掉吧。

模板就是模板,虽然只负责显示,不一定就不重要,如果让模板变得简单倒是我们应该考虑的问题。

 



SyntaxHighlighter.highlight();

标签:[!--infotagslink--]