Foros del Web » Programando para Internet » PHP »

Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

Estas en el tema de Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE en el foro de PHP en Foros del Web. A partir de un formulario, la variable $ressource almaneza la ubicación de un archivo FLASH, que lo pondré en 2 partes del código HTML para ...
  #1 (permalink)  
Antiguo 26/07/2007, 09:07
 
Fecha de Ingreso: junio-2007
Ubicación: En mi casa
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 2
Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

A partir de un formulario, la variable $ressource almaneza la ubicación de un archivo FLASH, que lo pondré en 2 partes del código HTML para que se pueda crear esta nueva página i funcione, la variable $fgame, es el nombre que se ha elegido en el formulario que será el nombre del archivo de página que se crea, pues esta parte del código no funciona, en teoria mi código completo funciona, no me da ningún error, i crea la nueva página, pero no hay nada dentro, he probado de crear la página con un "hola" i funciona perfectamente. gracias

-----
fwrite($fgame,"<html>

<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 3.0\">
<title>title>
<base target=\"principal\">
</head>
<body>
<p align=\"center\">
<object id=\"FlashGame\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,0\"
width=\"640\" height=\"480\">
<param name=\"SRC\" value=\"%s\">
<param name=\"AutoStart\" value=\"TRUE\">
<param name=\"Sound\" value=\"TRUE\">
<param name=\"logo\" value=\"TRUE\">
<param name=\"progress\" value=\"TRUE\">
<param name=\"PowerMenuEnabled\" value=\"TRUE\">
<param name=\"swModifyReport\" value=\"FALSE\">
<param name=\"swStretchStyle\" value=\"stage\">
<param name=\"swStretchHAlign\" value=\"center\">
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"%s"
pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"640\" height=\"480\"
class=\"FlashGame\">
</object>
</p></body>
</html>",$ressource,$ressource);
-----
  #2 (permalink)  
Antiguo 26/07/2007, 09:21
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

Me llama la atencion que la pases cuatro parametros a fwrite() cuando unicamente acepta 3

Cita:
int fwrite ( resource gestor, string cadena [, int longitud] )
Ademas de que en esta linea te falta una "\"

Cita:
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"%s"
con "\"
Cita:
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"%s\"
Saludillos.
  #3 (permalink)  
Antiguo 26/07/2007, 09:21
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

Buenas, pues creo que de esta forma debería funcionarte. Prueba, si te tira error puede ser por comillas, trate de reemplazar todas las comillas por los apostrofes, pero mira bien el code.
Código:
$contenido = "<head>";
$contenido.= "<meta http-equiv=\'Content-Type\' content=\'text/html; charset=iso-8859-1\'>";
$contenido.= "<meta name=\'GENERATOR\' content=\'Microsoft FrontPage 3.0\'>";
$contenido.= "<title>title>";
$contenido.= "<base target=\'principal\'>";
$contenido.= "</head>";
$contenido.= "<body>";
$contenido.= "<p align=\'center\'>";
$contenido.= "<object id=\'FlashGame\'"; $contenido.= "classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\'";
$contenido.= "codebase=\'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,'";
$contenido.= '0\'";
$contenido.= "width=\'640\' height=\'480\'>";
$contenido.= "<param name=\'SRC\' value=\'%s\'>";
$contenido.= "<param name=\'AutoStart\' value=\'TRUE\'>";
$contenido.= "<param name=\'Sound\' value=\'TRUE\'>";
$contenido.= "<param name=\'logo\' value=\'TRUE\'>";
$contenido.= "<param name=\'progress\' value=\'TRUE\'>";
$contenido.= "<param name=\'PowerMenuEnabled\' value=\'TRUE\'>";
$contenido.= "<param name=\'swModifyReport\' value=\'FALSE\'>";
$contenido.= "<param name=\'swStretchStyle\' value=\'stage\'>";
$contenido.= "<param name=\'swStretchHAlign\' value=\'center\'>";
$contenido.= "<param name=\'swStretchVAlign\' value=\'center\'><embed src=\'%s\'";
$contenido.= "pluginspage=\'http://www.macromedia.com/shockwave/download/\' width=\'640\'";
$contenido.= "height=\'480\'";
$contenido.= "class=\'FlashGame\'>";
$contenido.= "</object>";
$contenido.= "</p></body>";
$contenido.= "</html>"";
fwrite($fgame,$contenido,"w+");
Saludos

PD: Al leer lo que tu dices mauled, también me llamo la atención de los parámetros del frwite, por eso lo modifiqué para mi gusto, pero no se si eso de 4 parámetros funciona XD
  #4 (permalink)  
Antiguo 26/07/2007, 09:46
 
Fecha de Ingreso: junio-2007
Ubicación: En mi casa
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

hola, no me funciona, acabo de probar solo para que me escriba en el nuevo archivo la variable ressource i no me va i la variable funciona perfectamente porque en el archivo de destino después del formulario me la imprime perfectamente si pongo:

printf("Ressource: %s\n",$ressource);
echo "<br>";

pero en el archivo nuevo que creo me aparece en blanco si pongo esto:

fwrite($fgame,"%s",$ressource);

pero si pongo esto:

fwrite($fgame,"<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 3.0\">
<title>title>
<base target=\"principal\">
</head>
<body>
<p align=\"center\">
<object id=\"FlashGame\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,0\"
width=\"640\" height=\"480\">
<param name=\"SRC\" value=\"%s\">
<param name=\"AutoStart\" value=\"TRUE\">
<param name=\"Sound\" value=\"TRUE\">
<param name=\"logo\" value=\"TRUE\">
<param name=\"progress\" value=\"TRUE\">
<param name=\"PowerMenuEnabled\" value=\"TRUE\">
<param name=\"swModifyReport\" value=\"FALSE\">
<param name=\"swStretchStyle\" value=\"stage\">
<param name=\"swStretchHAlign\" value=\"center\">
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"%s\"
pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"640\" height=\"480\"
class=\"FlashGame\">
</object>
</p></body>
</html>");

Me funciona perfectamente, pero de poco me sirve pq no puedo poner la variable :( gracias
  #5 (permalink)  
Antiguo 26/07/2007, 09:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

Esque tienes que concatenar fwrite con printf:
Código PHP:
fwrite($fgameprintf"<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 3.0\">
<title>title>
<base target=\"principal\">
</head>
<body>
<p align=\"center\">
<object id=\"FlashGame\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,0\"
width=\"640\" height=\"480\">
<param name=\"SRC\" value=\"%s\">
<param name=\"AutoStart\" value=\"TRUE\">
<param name=\"Sound\" value=\"TRUE\">
<param name=\"logo\" value=\"TRUE\">
<param name=\"progress\" value=\"TRUE\">
<param name=\"PowerMenuEnabled\" value=\"TRUE\">
<param name=\"swModifyReport\" value=\"FALSE\">
<param name=\"swStretchStyle\" value=\"stage\">
<param name=\"swStretchHAlign\" value=\"center\">
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"%s\"
pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"640\" height=\"480\"
class=\"FlashGame\">
</object>
</p></body>
</html>"
$ressource ) ); 
Saludos.
  #6 (permalink)  
Antiguo 26/07/2007, 10:11
 
Fecha de Ingreso: junio-2007
Ubicación: En mi casa
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

hola, gracias a todos pero no hay forma humana que me vaya, i eso que he probado todos los códigos que me habéis pasado, soy un poco novato en PHP, pero esque esto parece algo muy simple i no me funciona :(

GatorV

he probado con tu código i la página despues del formulario, pues parece que está todo correcto sin darme ningún error, pero luego voy al archivo de página php que me ha creado i... me sale un numero diferente cada vez que creo una página :S, solo un numero, lo unico que me deja es crear el archivo de página con el texto que quiera, pero a la que meta la variable de por medio no me funciona XD

gracias
  #7 (permalink)  
Antiguo 26/07/2007, 11:18
 
Fecha de Ingreso: junio-2007
Ubicación: En mi casa
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

aun estoy intentando solucionar esto pero no hay forma, ahora he probado con la función "eregi" quedándome así, pero tampoco funciona

...

fwrite($fgame,"
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 3.0\">
<title>title>
<base target=\"principal\">
</head>
<body>
<p align=\"center\">
<object id=\"FlashGame\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,0\"
width=\"640\" height=\"480\">
<param name=\"SRC\" value=\"---\">
<param name=\"AutoStart\" value=\"TRUE\">
<param name=\"Sound\" value=\"TRUE\">
<param name=\"logo\" value=\"TRUE\">
<param name=\"progress\" value=\"TRUE\">
<param name=\"PowerMenuEnabled\" value=\"TRUE\">
<param name=\"swModifyReport\" value=\"FALSE\">
<param name=\"swStretchStyle\" value=\"stage\">
<param name=\"swStretchHAlign\" value=\"center\">
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"---\"
pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"640\" height=\"480\"
class=\"FlashGame\">
</object>
</p></body>
</html>");
fclose($fgame);

eregi_replace("[[:space:]]---[a-z]*", "$ressource", $fgame=fopen("games/$php_name","a+"));

es decir, después de crear el archivo, busco por "---" i lo remplazo por la variable que tengo en $ressource, no se si se puede hacer asi, pero a la hora de crearlo no me da ningun error, pero en la página creada, el código sigue totalmente igual con las "---" como si no se hubiera reemplazado nada, gracias
  #8 (permalink)  
Antiguo 26/07/2007, 12:27
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

Hola, bueno... prueba esto:

suponiendo que el valor de $ressource es la ubicación es decir:

Código PHP:
$ressource "ubicacion/elegida/para/guardar/el/swf"
entontonces al para abrir un archivo debes usar la función fopen, el primer parametro de esta función es la ubicacion y el nombre del archivo que deseas abrir entonces mientras que el segundo parametro es el modo en que deseas abrir, en este caso "w+", al abirlo de este modo, busca el archivo especificado y si no existe lo crea. Entonces sería así:


Código PHP:
/*Aquí te debo avisar que la parte en donde concateno la diagonal: $ressource . "/" . $fgame; es por que no se si $ressource tiene la ultima diagonal para especificar el nombre del archivo, es decir, directorio[COLOR="Red"]/[/COLOR]archivo; la diagonal que esta con rojo. OK sigamos... */

$urlFlash $ressource "/" $fgame ".swf";


/*Una cosa es la dirección del archivo flash y otra es la dirección donde se guardará el archivo html. Entonces la enseguida debe especificar la dirección del arhivo html que se creara*/

$urlHtml "direcion/donde/se/guardara/tu/archivo.html";

/*Conformamos el contenido de la pagina*/

$content "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 3.0\">
<title>title>
<base target=\"principal\">
</head>
<body>
<p align=\"center\">
<object id=\"FlashGame\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,0\"
width=\"640\" height=\"480\">
<param name=\"SRC\" value=\"[B]$urlFlash[/B]\">
<param name=\"AutoStart\" value=\"TRUE\">
<param name=\"Sound\" value=\"TRUE\">
<param name=\"logo\" value=\"TRUE\">
<param name=\"progress\" value=\"TRUE\">
<param name=\"PowerMenuEnabled\" value=\"TRUE\">
<param name=\"swModifyReport\" value=\"FALSE\">
<param name=\"swStretchStyle\" value=\"stage\">
<param name=\"swStretchHAlign\" value=\"center\">
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"[B]$urlFlash[/B]\"
pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"640\" height=\"480\"
class=\"FlashGame\">
</object>
</p></body>
</html>"
;

$crear write_file($content$urlHtml);

if(
$crear){
   echo 
"El archivo se creo con exito";
}else{
   echo 
"Ocurrio un error";
}

function 
write_file($data$url) {
    
$fp fopen("$url""w+");
    if (
$fp) {
        if (
fwrite($fp$data) === FALSE){
            return 
false;
        }
    }
    
fclose ($fp);
    return 
true;


Postea si es que te surge algun error. O avisa si es que no te funciono

Última edición por eskorbutin; 26/07/2007 a las 13:03
  #9 (permalink)  
Antiguo 26/07/2007, 13:43
 
Fecha de Ingreso: junio-2007
Ubicación: En mi casa
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

holaaa me sigui sin ir!!!
eskorbutin gracias por currarte este pedazo de código, soy un poco novato en esto de php i hay algunas cosas q no entiendo, pero lo he puesto i sigue sin irme, también decir que no necesariamente el recurso del archivo .swf tiene q estar siempre en el mismo servidor, sino que alomejor lo puedo cojer de otros servidores, además mi código completo también tiene q ser compatible con archivos .swf, .dcr o links

Código:
$fgame=fopen("games/$php_name","a+");


$urlFlash = $ressource . "/" . $fgame . ".swf";
$urlHtml = "games/";
$content = "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"GENERATOR\" content=\"Microsoft FrontPage 3.0\">
<title>title>
<base target=\"principal\">
</head>
<body>
<p align=\"center\">
<object id=\"FlashGame\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,0,0,0\"
width=\"640\" height=\"480\">
<param name=\"SRC\" value=\"$urlFlash\">
<param name=\"AutoStart\" value=\"TRUE\">
<param name=\"Sound\" value=\"TRUE\">
<param name=\"logo\" value=\"TRUE\">
<param name=\"progress\" value=\"TRUE\">
<param name=\"PowerMenuEnabled\" value=\"TRUE\">
<param name=\"swModifyReport\" value=\"FALSE\">
<param name=\"swStretchStyle\" value=\"stage\">
<param name=\"swStretchHAlign\" value=\"center\">
<param name=\"swStretchVAlign\" value=\"center\"><embed src=\"$urlFlash\"
pluginspage=\"http://www.macromedia.com/shockwave/download/\" width=\"640\" height=\"480\"
class=\"FlashGame\">
</object>
</p></body>
</html>";

$crear = write_file($content, $urlHtml);

if($crear){
   echo "El archivo se creo con exito";
}else{
   echo "Ocurrio un error";
}

function write_file($data, $url) {
    $fp = fopen("$url", "w+");
    if ($fp) {
        if (fwrite($fp, $data) === FALSE){
            return false;
        }
    }
    fclose ($fp);
    return true;
}
me dice el siguiente error (aunque me crea una archivo en blanco)

Warning: fopen(games/) [function.fopen]: failed to open stream: Is a directory in /home/.ruddibuddy/alexfs/***.com/script.php on line 65

Warning: fclose(): supplied argument is not a valid stream resource in /home/.ruddibuddy/alexfs/***.com/script.php on line 71
El archivo se creo con exito

-----

me cuesta creer que hacer algo tan sencillo como esto pueda llebar tantas complicaciones cuando en C era un plis!!! (yo hasta ahora solo había programado en C pero parece mu similar)

pongo un mini resumen de lo que quiero q me haga, q es simplemente que me introduzca el valor de una variable en una parte del texto que inserto

es decir:

$fgame=fopen("games/$php_name","a+"); /*$php_name es 1 variable q contiene el nombre de 1 archivo de página */
fwrite($fgame,"hola hola hola %s %s",$ressource,$ressource);

(si pusiera solo "hola hola hola" me iria perfectamente, i puedo imprimir por pantalla el valor de $ressource, pero a la que meto la variable en el archivo no va, i las variables van perfectamente)

Última edición por alexfs; 26/07/2007 a las 13:49
  #10 (permalink)  
Antiguo 26/07/2007, 14:44
Avatar de eskorbutin  
Fecha de Ingreso: junio-2006
Mensajes: 65
Antigüedad: 17 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

Mira tal ves esto te ayude un poco:

$urlFlash = la ruta del archivo swf, cuya direccion se va a poner en:
<embed src=\"$urlFlash\"....

tu comentas que $ressource es la ruta del archivo tambien debes verificar que esa ruta tenga el nombre del archivo, por ejemplo:

html://www.tudominio.com/archivos_flash/archivo.swf


$urlHtml = será la ruta del archivo que se creará por ejemplo :
html://www.tudominio.com/archivos_html/archivo.html

Y observe que tu usas mal el valor de $urlHtml, lo pones como"games/" debes poner tambien el nombre del archivo: games/archivo.html .

Todo lo demás trabaja bien tal y como lo escribi, yo ya lo probe y me funciona de maravilla.

PD. si quieres postea el codigo tal cual lo estas usando y veremos cual es su función.


Felicidades por los 10 años de Foros del Web!!!!

Última edición por eskorbutin; 26/07/2007 a las 23:07
  #11 (permalink)  
Antiguo 27/07/2007, 04:05
 
Fecha de Ingreso: junio-2007
Ubicación: En mi casa
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Ayuda escribir cógido HTML para crear 1 nueva página con la función FWRITE

hola Eskorbutin GRACIAS, pero por lo que se ve he descubierto otra forma, despues de varias horas probando cosas llegué a la conclusión que escribir valores de una variable a 1 archivo con los %s %d ... etc i después una ","+ $variable no funciona, lo que hice es simplemente ponerlas en medio del código!!! i asi funciona :):):)

me queda de esta forma->

$fgame=fopen("games/$php_name","w+");
fwrite($fgame, "LOQUESEA $ressource LOQUESEA $ressource");

i esto es lo que me daba error:

$fgame=fopen("games/$php_name","w+");
fwrite($fgame, "LOQUESEA %s LOQUESEA %s", $ressource, $ressource);
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:42.