當前位置:編程學習大全網 - 源碼下載 - 如何引用遠程PHP文件的變量

如何引用遠程PHP文件的變量

將這個變量以特定的格式打印出來,然後妳所謂的“壹個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>

  • 上一篇:螺紋止損點設置多少合適
  • 下一篇:好用的海報制作小程序-設計制作海報比較好的app有(海報制作app哪個好)
  • copyright 2024編程學習大全網