php获取网页输出,PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)_PHP教程
看点:
1、file_get_contents超时控制。
2、页面编码判断。
3、键盘Enter键捕捉响应。
4、键盘event兼容处理。//event = event || window.event;
5、XMLHttpRequest 和 jQuery 两种实现方案。
6、页面及源码同时展示。
XMLHttpRequest版本 get_web.php
复制代码 代码如下:
header(“Content-type: text/html; charset=utf-8”);
if(!empty($_POST[‘input_text’])) {
ini_set(‘default_socket_timeout’, 10);
if(!$data = file_get_contents($_POST[‘input_text’])) {
echo “Time out!”;
return ;
}
$charset_pos = stripos($data,’charset’);
if($charset_pos) {
if(stripos($data,’utf-8′,$charset_pos)) {
echo iconv(‘utf-8′,’utf-8’,$data);
}else if(stripos($data,’gb2312′,$charset_pos)) {
echo iconv(‘gb2312′,’utf-8’,$data);
}else if(stripos($data,’gbk’,$charset_pos)) {
echo iconv(‘gbk’,’utf-8′,$data);
}
return;
}
echo $data;
}else {
?>
Get Web Page
function createXMLHTTP()
{
try
{
var request = new XMLHttpRequest();
}
catch(e1)
{
var arrVersions = [“Microsoft.XMLHTTP”,”MSXML2.XMLHttp.4.0″,
“MSXML2.XMLHttp.3.0″,”MSXML2.XMLHttp.5.0”];
for(var i=0;i < arrVersions.length;i++){
try{
request = new ActiveXObject(arrVersions[i]);
}catch(e2){
request = false;
}
}
}
return request;
}
function ajax_post(url, params, target_id)
{
request = new createXMLHTTP();
request.onreadystatechange = function() {
if (this.readyState == 4)
if (this.status == 200)
if (this.responseText != null)
document.getElementById(target_id).innerHTML = this.responseText;
}
request.open(“POST”, url, true);
request.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”);
request.setRequestHeader(“Content-length”, params.length);
request.setRequestHeader(“Connection”, “close”);
request.send(params);
}
var checked = false;
function check_(value) {
checked = value;
}
function get_key(event) {
event = event || window.event;
if(event.keyCode==13 && checked != false)
{
var url = document.getElementById(‘input_text’).value;
if(url != ”) {
get_page();
}else {
document.getElementById(‘input_text’).onfocus();
return false;
}
}
}
function get_page() {
var url = document.getElementById(‘input_text’).value;
if(!url) {
return false;
}else {
if(document.getElementById(‘output_page’).innerHTML != ”) {
document.getElementById(‘output_page’).innerHTML = ”;
}
}
if(url.indexOf(‘http://’) == -1) {
url = ‘http://’+url;
}
ajax_post(
”,
‘input_text=’+url,
‘output_page’
);
document.getElementById(‘click_show’).style.display = ‘block’;
document.getElementById(‘back_a’).href = document.location.href;
document.getElementById(‘origin_website’).href = url;
}
.p_box{
margin-top:10px;
}
.input_box{
border:1px solid;
margin-left:10px;
margin-top:2px;
height:15px;
float:left;
size:32
font-size: 14px;
}
.button_box{
float:left;
height:23px;
padding-bottom:3px;
}
.hide_box{
display:none;
}
.a_box{
margin-left:10px;
margin-top:3px;
height:15px;
float:left;
font-size: 14px;
}
.clear_box{
height:50px;
}
}
//End_php
jQuery 版本 get_web.php
复制代码 代码如下:
header(“Content-type: text/html; charset=utf-8”);
if(!empty($_POST[‘input_text’])) {
ini_set(‘default_socket_timeout’, 10);
if(!$data = file_get_contents($_POST[‘input_text’])) {
echo “Time out!”;
return ;
}
$charset_pos = stripos($data,’charset’);
if($charset_pos) {
if(stripos($data,’utf-8′,$charset_pos)) {
echo iconv(‘utf-8′,’utf-8’,$data);
}else if(stripos($data,’gb2312′,$charset_pos)) {
echo iconv(‘gb2312′,’utf-8’,$data);
}else if(stripos($data,’gbk’,$charset_pos)) {
echo iconv(‘gbk’,’utf-8′,$data);
}
return;
}
echo $data;
}else {
?>
Get Web Page
$(document).ready(function(){
$(document).keyup(function(e){
e = e || window.event;
if(e.keyCode == 13 && $(“#input_text”).val() != ”) {
$(“.button_box”).click();
}
});
$(“.button_box”).click(function(){
if($(“#input_text”).val() == ”) {
$(“#input_text”).addClass(‘errorTips’).focus();
return false;
}else {
$(“#input_text”).removeClass(‘errorTips’);
}
$.ajax({
url: ”,
data: ‘input_text=’+$(“#input_text”).val(),
type:’POST’,
success:function(msg){
$(“.html_tips”).show();
$(“#origin_website”).attr(‘href’,$(“#input_text”).val());
$(“#back_a”).attr(‘href’,document.location.href);
$(“#click_show”).show();
$(“#output_page_html”).empty().val(msg).css({height:parseInt($(document).height()-100)}).show();
$(“#output_page”).empty().html(msg).show();
}
});
});
});
.p_box{
margin-top:10px;
}
.input_box{
border:1px solid;
margin-left:10px;
margin-top:2px;
height:15px;
float:left;
size:32
font-size: 14px;
}
.button_box{
float:left;
height:23px;
padding-bottom:3px;
}
.hide_box{
display:none;
}
.a_box{
margin-left:10px;
margin-top:3px;
height:15px;
float:left;
font-size: 14px;
}
.clear_box{
height:50px;
}
.error_tips{
border:1px solid red;
}
#output_page_html{
width:960px;
margin:0 auto;
}
.html_tips{
float: left;
margin: 0 21px;
font-size:1.8em;
}
站点
站点源码
}
//End_php
作者:Zjmainstay
www.bkjia.comtrueTechArticle看点: 1、file_get_contents超时控制。 2、页面编码判断。 3、键盘Enter键捕捉响应。 4、键盘event兼容处理。//event = event || window.event; 5、XMLHttp…
php获取网页输出,PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)_PHP教程相关推荐
- 利用ajax获取数据对学生表进行简单的增删改查
前言 本次练习没有使用前端框架,默认以表格方式拼接渲染数据,后端数据返回没有采用规范的数据形式返回 默认你能用springboot-mybatis从后端获取到数据 spring boot 静态资源处理 ...
- js获取classname值_利用js获取元素class值的两种方法
我们有时为了达到某种效果,需要以元素的class值为条件做判断. 我们如何利用JavaScript获取元素class的值?我们先看下面代码: x=document.getElementsByTagNa ...
- vue定时ajax获取数据,vue 中使用 AJAX获取数据的方法
在VUE开发时,数据可以使用jquery和vue-resource来获取数据.在获取数据时,一定需要给一个数据初始值. 看下例: new Vue({ el:'#app', data:{data:&qu ...
- ajax跨域获取数据后处理,简单实现ajax获取跨域数据
本文实例为大家分享了ajax获取跨域数据的具体代码,供大家参考,具体内容如下 1.效果图 2.源码 function getData(keyword) { var url="https:// ...
- geoip php 获取城市,Laravel 中利用 GeoIP 获取用户地理位置信息
这篇文章主要介绍了关于Laravel 中利用 GeoIP 获取用户地理位置信息,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 我最近需要一个用户地域检测来设置用户的默认区域和货币.由 ...
- sqlmap 获取mysql密码_利用sqlmap 获取管理员账号密码
首先,先简单介绍下sqlmap 简介: sqlmap是一种开源的 支持的数据库:MySQL,Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Ac ...
- django ajax获取数据类型,Django:使用Ajax获取模板中的数据库对象值
您可以使用AJAX回打电话给你的Django代码,并返回你的车的名称: template.html $(document).ready(function() { $(document).on(&quo ...
- mac如何用python爬网页数据_Mac——利用Python进行网页爬取
Mac--利用Python进行网页爬取 目标:利用Python爬取网页中的指定内容,例如,爬取百度百科网页中四川省的别名.html 输出:四川省的别名为:川.蜀.天府之国python 我的经验,网页爬 ...
- PHP 利用AJAX获取网页并输出(原创自Zjmainstay)
看点: 1.file_get_contents超时控制. 2.页面编码判断. 3.键盘Enter键捕捉响应. 4.键盘event兼容处理.//event = event || window.event ...
最新文章
- 从自动贩卖机找零看Python中的动态规划问题
- Eclipse报错:gc overhead limit exceeded eclipse
- 《WebGIS开发实践手册》2.2 ArcIMS服务器组件[1]
- flink編譯hadoop3.1.2(失败,这个问题没有意义,关闭)
- 人造肉真的上市了,这对养殖业会有什么影响?
- 每日一笑 | 程序员千万不能轻易去网吧!
- GUI编程tkinter模块常用参数(python3)
- android存电话号码,如何从android中删除联系人的电话号码?
- ajax的两个重要参数contentType 和dataType
- mysql 交互式和非交互式操作(interactive_timeout和wait_timeout)
- Moore-Penrose 广义逆
- 就想了解服务器为什么1M带宽网速却达不到1M
- 最新注册谷歌账号详细步骤,解决“此电话号码无法验证”问题
- 怎么提高编程能力?逻辑思维能力?
- 计算机win7如何连接wifi网络,win7怎么连wifi,win7电脑连不上网
- @GetMapping注解的理解
- python 获取本机IP地址
- 打开idea的svn项目弹出Action not found:Subversion.Add提示解决办法
- python3函数参数(必选参数、默认参数、关键字参数、可变参数)
- 3阶差分方程在有重根下的一般计算公式的推导