Foros del Web » Programando para Internet » PHP »

Reescribir una web con PHP introduciendo un script en javascript

Estas en el tema de Reescribir una web con PHP introduciendo un script en javascript en el foro de PHP en Foros del Web. Hola a [email protected]; Tengo una aplicación que trata de reescribir una web introduciendo una serie de códigos javascript, que utilizan variables php. Lo primero que ...
  #1 (permalink)  
Antiguo 30/12/2005, 07:39
Avatar de forecast  
Fecha de Ingreso: octubre-2004
Mensajes: 259
Antigüedad: 13 años, 2 meses
Puntos: 4
Reescribir una web con PHP introduciendo un script en javascript

Hola a [email protected];

Tengo una aplicación que trata de reescribir una web introduciendo una serie de códigos javascript, que utilizan variables php.

Lo primero que hago es leer esa página web y almacenar su código fuente con un script de este tipo

Código PHP:
//$web, es la url que me interesa.
$dataFile=fopen($web,"r");
$buffer="";
if(
$dataFile )
{
    while (!
feof($dataFile)) 
    {
        
$buffer.=fread($dataFile1024);
    }
    
fclose($dataFile);

Ahora es cuando meto los scripts de javascript, lo hago muy a piñón, es decir los meto a saco antes que el resto de la url.

Código PHP:
//saco el texto del script
$abrir1=fopen("includes/script.txt","r");
if(
$abrir1)
{
$script="";    
while (!
feof($abrir1)) 
{
    
$script=fread($abrir11024);
}
fclose($abrir1);
}

$final=$script;
//escribo la web
$final.=$buffer
Esto funciona más o menos bien, es decir la web se reescribe y tiene dentro el código javascript pero tengo dos problemas.

1- Meto los scripts antes que nada, no van dentro de la etiqueta <html>... no se esto hasta que punto me puede dar problemas. ¿Tendría que poner algo antes, como una cabecera o algo así?.

2- En los scripts de javascript intento utilizar variables de PHP por ejemplo

var percent=<? echo $resultado ?>;

Y percent no me da el valor de la variable en php sino que me escribe $resultado de manera literal. ¿Alguién sabe por qué me pasa esto?

Muchas gracias de antemano y que tengan un buen año!!!
  #2 (permalink)  
Antiguo 30/12/2005, 07:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
1- Meto los scripts antes que nada, no van dentro de la etiqueta <html>... no se esto hasta que punto me puede dar problemas. ¿Tendría que poner algo antes, como una cabecera o algo así?.
Pues metelos entre sus <head> y .. <head> de tu página ... Pero para esto necesitas "parsear" la página HTML que lees con expresiones regulares, leer todo ese HTML ver donde está tu contenido de "<head><head>" (si es que lo tiene?) y de ahí insertar tu código y generar la nueva página (tremendo "lioo" y mucho proceso).

Eso sería lo "legal" .. meter tus funciones javascript o javascript en sí bajo las etiquetas <head> .. o bien en el <body> .. El "que problemas" te podría dar meter indiscriminadamente Javascript de esa forma fuera de esos tag's HTML te lo podrían confirmar mejor en los foros de "Javascript" o de (x)HTML.

Cita:
2- En los scripts de javascript intento utilizar variables de PHP por ejemplo

var percent=<? echo $resultado ?>;
Pues si es así es que no se está ejecutando PHP .. debes dejar ese código como extensión ejecutable por PHP .. es decir . .eso que generes tendrá que ser un .php .. si es un ".html" no se va a ejecutar ese código.

Intenta poner el código de ejemplo completo . nombrar los scripts/páginas como se llamen y explicar como uno llama al otro o lo lee o lo genera (para que nos hagamos una idea si hay otras soluciones).

Un saludo,
  #3 (permalink)  
Antiguo 30/12/2005, 08:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Concreta algunas dudas:

$final=$script;
//escribo la web

en tu $script .. tienes esto?
var percent=<? echo $resultado ?>;

Y $resultado .. donde le das valor? ..

Un saludo,
  #4 (permalink)  
Antiguo 30/12/2005, 10:18
Avatar de forecast  
Fecha de Ingreso: octubre-2004
Mensajes: 259
Antigüedad: 13 años, 2 meses
Puntos: 4
Gracias cluster por la ayuda;

Sobre el primer problema de meter el código javascript entre las etiquetas head, implica como tu bien indicas es el "parseado", con todo el proceso que ello conlleva (a sumar a los ya largo procesos que tengo)... Preguntaré en el foro de javascript a ver que problemas me da si me evito este "parseado" y lo meto al principio "a saco".

Sobre el segundo punto explico un poco mejor el proceso...

El código PHP hace lo que he explicado anteriormente: abre una web, guarda su contenido, añade el javascript y hace el "echo" de todo junto, el resultado de ello es la web con las modificaciones que yo quería (fruto del código javascript)... todo ello se realiza en un archivo PHP, como he dicho antes, por tanto no entiendo porque no se me ejecuta... ¿puede ser que al abrir la web como si fuera un archivo y coger toda la información haga que se interprete como html y no como php?... no se como funciona esto a lo mejor hay alguna cabecera o linea que hace que lo interprete así, y por eso no ejecuta el código PHP.

Explico un poco más la interacción PHP - javascript

Código PHP:
<?
//método que me saca una puntuación en función de determinados parámetros de una web, hago el echo de $resultado y me lo muestra por pantalla
$resultado=$analisis->SacarPuntuacion();

//cojo el script
$script_1=$analisis->SacarScript1();    

//guardo el script, en este script utiliza una variable llamada percent a la que le quiero dar el valor de $resultado, así lo tengo puesto en el código javascript (var percent=<? echo $resultado;?>)

$final=$script_1;
//añado el texto de la web (vamos el código fuente) que está en la variable buffer
$final.=$buffer;
echo $final;
?>
Todo parece funcionar pero al mirar el código fuente veo que el código de javascript no me hace lo que desaba ya que el código fuente me revela que var percent=<? echo $resultado ?>, en vez de salir el valor real de $resultado.

Gracias por el interés mostrado.
  #5 (permalink)  
Antiguo 30/12/2005, 12:14
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 4
Jur jur creo que me he perdido un poco con tanto codigo jeje de todos modos intenta mandar la variable $resultado a una funcion javascript, te pongo un ejemplo a ver:

<head>
function resultado (variable) {
var percent = variable;
}
</head>




... aqui llamas a la funcion resultado (<? echo $resultado; ?>) ....


En fin... Hasta luego lucas
  #6 (permalink)  
Antiguo 30/12/2005, 12:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No me quedó claro donde llamas esa porción de código .. si la lees y la pasas directamente al HTML (sobre-escribiendo) o pasa por tu script PHP para que se ejecute (por qué sino habrá que aplicar un "eval()" para interpretar el código PHP?).

Un saludo,
  #7 (permalink)  
Antiguo 30/12/2005, 13:58
Avatar de forecast  
Fecha de Ingreso: octubre-2004
Mensajes: 259
Antigüedad: 13 años, 2 meses
Puntos: 4
Hola de nuevo... creo que no lo estoy dejando muy claro.

Hago un resumen final para ver si dejo todo esto más claro. (Simplifico el código para ir al grano):

Código PHP:
<?
//creo una variable con PHP que después utilizaré con javascript
$resultado=10;

//abro una web y guardo todo el código que ella contiene de esta manera 
$dataFile=fopen($web,"r");
$buffer="";
if(
$dataFile )
{
    while (!
feof($dataFile)) 
    {
        
$buffer.=fread($dataFile1024);
    }
    
fclose($dataFile);
}  

//después leo el script de javascript que lo tengo en un .txt
//este srcipt utiliza una variable en PHP que se llama $resultado
//no adjunto el codigo javascript porque es muy largo, pero bueno con saber que utiliza una variable de php que se llama $resultado y que llamo así var percent=<? echo $resultado ?.> es suficiente.

abrir1=fopen("includes/script.txt","r");
if(
$abrir1)
{
$script="";    
while (!
feof($abrir1)) 
{
    
$script=fread($abrir11024);
}
fclose($abrir1);
}

//ahora junto el script de javascript con el código de la web ,que es lo que tengo en buffer, (¿podría ser que al hacer fopen para abrir la web me cogiera el código como html y por eso no me ejecuta el PHP?) 

$final=$script;
$final.=$buffer;
echo 
$final;

//resultado de ello es la web, con los efectos de javascript, pero la variable percent que utilizo en javascript coje el valor literal (es decir $resultado en vez de 10 que es su valor).
?>
Espero que ahora esté un poco más claro... y de nuevo gracias por tener la paciencia de aguantarme
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:06.