Red de conocimiento informático - Material del sitio web - Cómo hacer referencia a variables en archivos PHP remotos

Cómo hacer referencia a variables en archivos PHP remotos

Imprime una variable en un formato específico y luego usa la función ajax de javascript para solicitar de forma asincrónica una dirección remota desde el llamado "archivo HTM".

La solicitud devuelve la dirección remota, almacena su valor en una variable y puedes usarla como quieras;

Aquí está el código que te proporcionamos:

El abc.php:

$str?=? abcdefg";

if(isset($_GET['arg'])){

$arg ?=?$_GET['arg'];

}else{

$arg?=?No se pasaron parámetros ' )

}

echo?"{'s':'$str', ? arg':'$arg'}";?// Este es un formato de datos más flexible y también se usa comúnmente para archivos livianos. data El formato de datos transmitido se llama JSON

El anterior es un método. Por supuesto, también puede utilizar el siguiente método, que es equivalente al método anterior:

/*<. /p>

$str?=?" abcdefg";

if(isset($_GET['arg'])){

$arg?=?$_GET ['arg' ];

}else{

$arg?=?¡No se pasaron parámetros! ' )

}

$res?= ?array();

$res['s'] =?$str;

$res['arg']?$arg;

echo ?json_encode($res)?//Aquí JSON codifica los datos que originalmente eran una estructura de matriz PHP para obtener los datos JSON esquematizados

*/ >

Ese html documento:

Documento

//función de conexión ajax

/*

Esta función ahora está completamente modularizada y básicamente bien escrita

*/

var?con?=?function(){

intentar{

xmlHttp?=?new?XMLHttpRequest();

}catch(trymicrosoft){

intentar{

xmlHttp=new?ActiveXObject("Msxml2.XMLHTTP");

}catch( othermicrosoft){

prueba{

xmlHttp?=? new?ActiveXObject("Microsoft.XMLHTTP");

}catch(fallido){};

};

};

};

p> si(! xmlHttp){

alert("Error en la inicialización de Ajax");

}

return?xmlHttp;

};

// función de procesamiento ajax

/*

Esta función la escribí yo y puede ser difícil de entender para un principiante.

Esta función utiliza la función de devolución de llamada para el procesamiento posterior. Aquí he hecho algunas simplificaciones para todos.

Se han eliminado algunas funciones periféricas y solo se conservan los datos. en formato JSON. Es el parámetro que se pasa al recibir la solicitud.

Deberías estudiarlo tú mismo lentamente.

Entonces, fundamentalmente, es un código bastante simplificado y más robusto.

*/

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?+?key?+?' +?encodeURIComponent(datos[clave])? :?' &'?+?clave?+?' ='?+?encodeURIComponent(datos[clave]);

i++;

}

}

}

url?onreadystatechange?=?función(){

if(temp.readyState== 4){fun();}

};

}

this.http.send(null);

}

// ¿Realizar solicitudes asincrónicas y procesar los resultados devueltos?

/*

Esta función también fue desarrollada por mí. También eliminé muchas funciones y las simplifiqué.

Dado que la función de evaluación utilizada aquí es para compatibilidad con algunos navegadores más antiguos, puede haber algunos problemas de seguridad al ejecutar este código en estos navegadores más antiguos

Pero esto no es gran cosa. .

Las solicitudes de Ajax utilizan un modelo orientado a objetos, que es difícil de entender para los principiantes cuando lo usan, así que estúdielo lentamente usted mismo.

*/

función?get(url,?datos){

var?aj?=?new?ajax_get(url,?datos,?función (){

if(aj.http.status?==?200){?//Cuando el estado HTTP devuelto es correcto

var?pagenavs?=?aj http. .responseText;

var?re?=?false;

intente{

re?=?JSON.parse(pagenavs);?// si el El navegador admite el análisis JSON, utilice directamente el analizador JSON interno más seguro

if(typeof?re! =? object')?alert('¡Error de datos devueltos!) )

} catch(e){

try{

re?=?eval('('? +?pagenavs?+?')') ;?// Si el navegador es JSON el análisis no es compatible, use eval para forzar el análisis

if(typeof?re! =?' object')?alert('¡Devolver error de datos!') )

}catch( e){}

}

alert('La salida PHP obtenida es:'? +?re.s?+?\n'?+?'Enviar la solicitud entrante El los parámetros son: '? +?re.arg)?// Aquí está el resultado obtenido

}else{

alert('Se produjo un error al solicitar un archivo remoto: '? + ?aj.http.status)

}

});

}

>p>