php 如何将数据Get提交到其他的网站,而且不跳转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 如何将数据Get提交到其他的网站,而且不跳转相关的知识,希望对你有一定的参考价值。
最方便的方式是使用一个叫Snoopy的php 类.你可以自己去找个最新版的下载来用例子:
include_once "./Snoopy.inc.php";
$URL = 'http://www.abc.com/app.php?var=value&a=aaa'; //这里就可以提交GET了.
$snoopy = new Snoopy();
$snoopy->fetch($URL); //获取GET后返回的内容.
echo $snoopy->results; //输出来看看.
Snoopy 类除了GET还有POST等HTTP方式.追问
那样会不会网页跳转到那网站去?
追答不会的.它本质是用fopen打开目标主机然后根据http协议规则向目标主机的http 服务端口提交数据,然后获取目标主机响应的数据内容的.
参考技术A 直接用 curl_init 就行了 写一小段代码 给你个例子 改改就能测试<?php
$ch = curl_init();
$str ='http://127.0.0.1/form.php?id=10';
curl_setopt($ch, CURLOPT_URL, $str);
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
$output = curl_exec($ch);
var_dump( $output );
?>追问
我是做订单提交 , 在提交的时候 .. 直接把订单的一些信息发送到其他的网站 .. 在这基础上,页面不跳转 ,而且信息也发送过去了..curl_init()可以实现么?
追答你把要提交的东西生成URL 然后就能过去了呗~ 你可以测试看看~ 很简单 跨域访问用到这种很多 复杂返回值都木有问题~
参考技术B 你的意思应该就是新窗口打开吧...<form target="_blank" action=""></form>追问
不是 ,单纯的只把数据发送过去 ,我这边不做任何提示 .
追答这样的话, 方法有2:
1, 用iframe隐藏提交, 点确定的时候, 将值全部传到隐藏的iframe里面, 然后iframe里面提交表单
2, 用ajax 用ajax需要用到 curl_init或者file_get_contents
具体的用法可以百度
=========
他们说的Snoopy,curl_init基础是用ajax, 不会用ajax, 什么都是浮云...
关键是不会写 ..
追答网上有开源你可以方便调用
如何向网站提交一个get 请求 ; 网站的方法接口然后返回一个对象?
// 如何跟网站get 一个请求?
// 方法是在 某个网站上 ; 本地可以模拟; 但是如何跟 某网站去提交这个请求呢 ; 然后返回一个对象 。
PS:代码请不要直接复制粘贴使用,百度问答的编辑器貌似会在中间插入看不见的特殊字符,程序会报bug。
PHP代码:
<?php
$id = $_REQUEST["id"];
// 简略的测试数据
$item = array(
"id" => $id,
"title" => "测试",
"price" => "123"
);
echo json_encode($item); // 返回json对象
?>
发送Ajax请求(使用JQuery):
$.ajax(
"url" : "item.php", //接口URL
"type" : "post",
"dataType" : "json",
"data" :
"id" : 123456
,
success : function(data)
var htm = '';
htm += "ID:" + data.id + "<br />";
htm += "标题:" + data.title + "<br />";
htm += "价格:" + data.price + "<br />";
document.getElementById("result").innerHTML = htm;
,
error : function(xhr, textStatus, errorThrown)
console.log(data);
);
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试</title>
<script src="jquery-2.0.2.min.js"></script>
</head>
<body>
<div id="result"></div>
</body>
</html>
答案仅供参考,有问题请追问。追问
是不是我只要找到这个请求的URL地址,提交表单数据就可以了?对后台服务器这一块还不是很了解
追答可以通过提交表单请求,也可以通过Ajax请求。只要服务器有开放接口给你调用,并且你传对参数就可以了。
追问// 能不能打包一个文件 ; 我这边测试一下; 没接触过ajax ; 再给你加100分
追答可以的,你在群里面的Q名是什么?
本回答被提问者和网友采纳以上是关于php 如何将数据Get提交到其他的网站,而且不跳转的主要内容,如果未能解决你的问题,请参考以下文章