如何引用远程PHP文件的变量
<?$str=$LOGIN_USER_ID;echo$str?>这个是远程服务器内一个PHP文件的变量,访问地址为:http://192.168.1.1/abc.php我...
<?
$str = $LOGIN_USER_ID;
echo $str
?>
这个是远程服务器内一个PHP文件的变量,访问地址为:http://192.168.1.1/abc.php
我希望能通过一个htm文件中的JS,直接引用$str变量,并显示出来。
请问能实现吗?我是新手,希望能详细点解说,谢谢 展开
$str = $LOGIN_USER_ID;
echo $str
?>
这个是远程服务器内一个PHP文件的变量,访问地址为:http://192.168.1.1/abc.php
我希望能通过一个htm文件中的JS,直接引用$str变量,并显示出来。
请问能实现吗?我是新手,希望能详细点解说,谢谢 展开
1个回答
展开全部
将这个变量以特定的格式打印出来,然后你所谓的“一个HTM文件”中通过javascript的ajax功能异步请求这个远程地址。
请求远程地址回来之后,获取到它的值存入变量,你就想怎么用就怎么用了;
下面给你上代码:
那个abc.php:
<?php
$str = "abcdefg";
if(isset($_GET['arg'])){
$arg = $_GET['arg'];
}else{
$arg = '没有传参!';
}
echo "{'s':'$str', 'arg':'$arg'}"; //这是一种比较灵活的数据格式,也是轻量型数据传输时经常使用的数据格式,名为JSON
//以上是一种方法,当然你还可以使用下面的方法,与上面等同:
/*
$str = "abcdefg";
if(isset($_GET['arg'])){
$arg = $_GET['arg'];
}else{
$arg = '没有传参!';
}
$res = array();
$res['s'] = $str;
$res['arg'] = $arg;
echo json_encode($res) //这里对原本是PHP数组结构的数据进行JSON编码,以获得模式化后的JSON数据
*/
?>
那个html文档:
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//ajax连接函数
/*
这个函数现在都已经模块化了,基本上是很完善的写法
*/
var con = function(){
try{
xmlHttp = new XMLHttpRequest();
}catch(trymicrosoft){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(othermicrosoft){
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(failed){};
};
};
if(!xmlHttp){
alert("Ajax初始化失败");
}
return xmlHttp;
};
//ajax处理函数
/*
这个函数是我自己编写的,可能作为新手较为难以理解。
本函数是使用了回调函数的方式来进行后续处理,这里我已经为你做了一定的精简
去掉了一些外围的功能,只保留了核心部分,其中data为JSON格式,是get请求的传参
这个你自己慢慢研究去吧。
所以基本上是相当简化和较为强壮的代码了。
*/
var ajax_get = function(url, data, fun){
var temp = this.http = con();
var dataString = '', i=0;
if(typeof data != 'undefined' && (data !== false || data)){
for(var key in data){
dataString += i==0 ? '?' + key + '=' + encodeURIComponent(data[key]) : '&' + key + '=' + encodeURIComponent(data[key]);
i++;
}
}
url += dataString;
this.http.open('GET', url, true);
if(typeof fun != 'undefined'){
this.http.onreadystatechange = function(){
if(temp.readyState==4){fun();}
};
}
this.http.send(null);
}
//执行异步请求,并处理返回的结果
/*
这个函数也是我自己做的,同样去除了很多功能,做了简化。
由于这里使用了eval函数来兼容一些老掉牙的浏览器,所以当这个代码执行在这些老浏览器上时
可能会有一定的安全隐患,但问题不大。
ajax请求使用了面向对象的模式,新手使用起来,理解难度较大,你自己慢慢研究吧。
*/
function get(url, data){
var aj = new ajax_get(url, data, function(){
if(aj.http.status == 200){ //当返回的HTTP状态是OK的
var pagenavs = aj.http.responseText;
var re = false;
try{
re = JSON.parse(pagenavs); //如果浏览器支持JSON解析,则直接使用较为安全的内部JSON解析函数处理之
if(typeof re != 'object') alert('返回数据错误!');
}catch(e){
try{
re = eval('(' + pagenavs + ')'); //如果浏览器不支持JSON解析,则使用eval强制解析
if(typeof re != 'object') alert('返回数据错误!');
}catch(e){}
}
alert('获取到的PHP输出是:' + re.s + '\n' + '提交时请求的传参是:' + re.arg) //这里是获取到的输出
}else{
alert('请求远程文件发生错误:' + aj.http.status)
}
});
}
</script>
</head>
<body>
<input type="button" value="获取" onclick="get('http://192.168.1.1/abc.php', {'arg':'这是传过去的参数内容!'})" />
</body>
</html>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询