2012-03-31 34 views
9

Mi estructura de carpetas es como -crear el archivo en otro directorio con php

root 
    admin 
    create_page.php 
    pages 
    my_page1.php 
    my_page2.php 

tengo código para crear un nuevo archivo PHP en la carpeta de "páginas". el código es como -

$dir_path = "../pages/"; 
$ourFileName = '../'.$page_name.".txt"; 
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 
$ourFileContent = '<?php echo "something..." ?>'; 
if (fwrite($ourFileHandle, $ourFileContent) === FALSE) { 
    echo "Cannot write to file ($filename)"; 
    exit; 
} 

El código se ejecuta normalmente ... no hay problema. pero la página no se está creando. por favor dime que estoy haciendo mal. ¿Hay algún problema con el camino? fclose ($ ourFileHandle);

+0

Establece '$ dir_path', pero no lo usa. Además, no estoy seguro si puede utilizar enlaces relativos, es posible que desee utilizar la ruta absoluta. Asegúrese de haber establecido permisos de escritura en el mapa en el que se escribe. – ArendE

+0

'$ page_name' no está configurado y usted no escribió qué archivo es – safarov

+0

donde establece' $ page_name' también tiene un error de sintaxis en esta línea '' Dont forget el punto y coma de cierre –

Respuesta

18

Aquí hay un ejemplo usando la más simple file_put_contents() envoltura para fopen, fwrite, FCLOSE

<?php 
error_reporting(E_ALL); 

$pagename = 'my_page1'; 

$newFileName = './pages/'.$pagename.".php"; 
$newFileContent = '<?php echo "something..."; ?>'; 

if (file_put_contents($newFileName, $newFileContent) !== false) { 
    echo "File created (" . basename($newFileName) . ")"; 
} else { 
    echo "Cannot create file (" . basename($newFileName) . ")"; 
} 
?> 
1

ha perdido deliberadamente la concatenación de $ dir_path y $ ourFileName;

ahora

  1. es el directorio/archivo writable?
  2. chequea tu current working directory
  3. ¿Cuál es tu error_reporting?
6
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file"); 

realizar el cambio anterior a la tercera línea y probablemente va a funcionar; Lo intenté y funcionó.

+0

funciona para mí thankx –

0

Prueba este

$pagename = 'your_filename'; 
$newFileName = '../pages/'.$pagename.".php"; 
+0

Aunque este código puede responder a la pregunta, proporciona contexto adicional con respecto a por qué y/o cómo este código responde la pregunta mejora su valor a largo plazo. – NathanOliver

1

tenía el mismo problema, archivo no se creará en una carpeta que tiene el permiso diferente, asegúrese de que los permisos de las carpetas son iguales como cualquier otro archivo.

+0

¡Tenías razón! Cambié los permisos de la carpeta en la que quería crear los archivos con chmod 777 y fopen creó el archivo correctamente. – MaryamH

Cuestiones relacionadas