设为首页 收藏本站
查看: 749|回复: 0

[经验分享] php 解析html的工具 嵌入式

[复制链接]

尚未签到

发表于 2017-4-2 10:27:09 | 显示全部楼层 |阅读模式
  PHP Simple HTML Dom Parser使用php5+编写,支持以一种超级简单的方式操纵HTML。
    * 需要php5以上版本
    * 支持html标签纠错
    * 支持jQuery风格选择器
    * 非常简洁的从HTML中抽取内容 加载整个页面,然后按HTML标记拆成树,然后再通过查找节点,最后读取需要节点的内容文本即可
  index.php iframe包含采集页防止采集页js,css等与本站冲突

<div class="maincon">
<iframe id="mainiframe" frameborder=0 width="100%" height="960"
marginheight=0 marginwidth=0 scrolling=no src="http://localhost/appreciate/mobile/recharge"></iframe>
</div>
  iframe中修改采集页的form提交action,提交到本站进行处理,将提交的数据在模拟采集页提交。(一个表单做2次提交

http://hudeyong926.iteye.com/blog/903490
DSC0000.jpg


public function rechargeAction()
{
include_once('lib/simple_html_dom.php');
$html = file_get_html(self::RECHARGE_URL);
$post_url = $html->find('form', 0)->action; //form action
$html->getElementById('mobileNo')->outertext = $html->find('input[id=mobileNo]', 0)->outertext . "<input type='hidden' name='post_url' value='$post_url'>"; //form中传递采集post_url
//$html->find('div.more-com',0)->outertext = '';
$html->find('form', 0)->setAttribute('action', 'http://localhost/appreciate/mobile/rechargePost'); //修改form action
$html->find('td a', 1)->setAttribute('href', 'http://localhost/appreciate/mobile/history'); //修改 订单查询链接
$ereg_rule_src_script = '/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/bank\/ddl\/js\/utility\/utility.index.js?/i';
foreach ($html->find('script') as $script) {  //正则替换js
$script->src = preg_replace($ereg_rule_src_script, 'http://www.test.com/js/lib/dianyin_utility_index.js', $script->src);
}
$content = $html->save();
$html->clear();
unset($html);
die($content);
}
  采集提交后页面
DSC0001.jpg
 
 simple_html_dom修改后
DSC0002.jpg

public function rechargeComfirmPage($post_url, $pdata){
include_once("lib/Snoopy.class.php");
$snoopy = new Snoopy; //Snoopy post提交
$snoopy->fetch(self::RECHARGE_URL); //获取所有内容
$snoopy->setcookies();
$cookies = $snoopy->cookies;
$snoopy->cookies = $cookies;
$snoopy->submit($post_url, $pdata);//$pdata为提交的数组,$post_url采集提交url
return $snoopy->results;
}
public function rechargePostAction(){
$pdata['tranCode'] = $this->getRequest()->getPost('tranCode');
$pdata['userCode']       = $this->getRequest()->getPost('userCode');
$pdata['runName']    = $this->getRequest()->getPost('runName');
$post_url      = $this->getRequest()->getPost('post_url');
$this->save2db();
$results = $this->rechargeComfirmPage($post_url, $pdata);
include_once('lib/simple_html_dom.php');
$html = str_get_html($results);//采集提交后页面
//修改UI
$rate = Mage::helper('recharge/data')->getCurrencyToMoney();
$ttt= $this->getLayout()->createBlock('virtualcurrency/customer_accounts_detail')->getCurrentMoney();
$html->find('div[id=testPoints]',0)->innertext = $html->find('div[id=testPoints]',0)->innertext*$rate."<input type='button'>";
$html->find('div[id=test]',0)->innertext='<table><tr>
<td width="30%" align="right"><label class="form-label">您的数:</label></td>
<td align="left">
<p class="B Font14 ml10 ">
'.$ttt.'
</p>
</td>
</tr>
<tr>
<td width="30%" align="right"><label class="form-label">绑定手机号:</label></td>
<td align="left">
<p class="B Font14 ml10 ">
'.$this->_getCustomer()->getMobile().'
</p>
</td>
</tr></table>';
die($html);
}


 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-359000-1-1.html 上篇帖子: PHP与.NET的通信 [转] 下篇帖子: PHP面向对象开发的特性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表