2012-02-13 61 views
48

Estoy intentando crear y guardar un archivo en el directorio raíz de mi sitio, pero no sé dónde está creando el archivo ya que no puedo ver ninguno ... Necesito para presentar a ser cada vez sobrescribe si es posible tambiénPHP Crear y guardar un archivo txt en el directorio raíz

Aquí está el código:

$content = "some text here"; 
$fp = fopen("myText.txt","wb"); 
fwrite($fp,$content); 
fclose($fp); 

¿Cómo puedo configurarlo para ahorrar en la raíz?

+0

Eso se ve bien para mí. Siempre que el script esté ubicado en su raíz web, entonces debería estar bien. Lo único que lo detendría son tus permisos. – seanbreeden

+1

Si tiene permiso intente '$ fp = fopen ("/myText.txt "," wb ");' –

+0

Aparte de ser una mala idea, y aparentemente una hacker, simplemente asegúrese de especificar la ruta completa y tener suficientes permisos. – Mikhail

Respuesta

90

Está creando el archivo en el mismo directorio que su secuencia de comandos. Prueba esto en su lugar.

$content = "some text here"; 
$fp = fopen($_SERVER['DOCUMENT_ROOT'] . "/myText.txt","wb"); 
fwrite($fp,$content); 
fclose($fp); 
+3

Solo una nota: esto necesita permiso de escritura para el directorio en el que está escribiendo. – mboy

+0

No puedo escribir contenido en ese archivo. ¿Cómo puedo hacerlo? – huykon225

0

fopen() abrirá un recurso en el mismo directorio que el archivo que ejecuta el comando. En otras palabras, si solo está ejecutando el archivo ~/test.php, su script creará ~/myText.txt.

Esto puede ser un poco confuso si está utilizando cualquier reescritura de URL (como en un marco MVC), ya que es probable que cree el nuevo archivo en cualquier directorio que contenga el archivo raíz index.php.

Además, debe tener los permisos correctos establecidos y es posible que desee probar antes de escribir en el archivo. Lo siguiente lo ayudaría a depurar:

$fp = fopen("myText.txt","wb"); 
if($fp == false){ 
    //do debugging or logging here 
}else{ 
    fwrite($fp,$content); 
    fclose($fp); 
} 
9

Si está ejecutando PHP en Apache, puede utilizar la variable de entorno llamada DOCUMENT_ROOT. Esto significa que la ruta es dinámica y puede moverse entre servidores sin interferir con el código.

<?php 
    $fileLocation = getenv("DOCUMENT_ROOT") . "/myfile.txt"; 
    $file = fopen($fileLocation,"w"); 
    $content = "Your text here"; 
    fwrite($file,$content); 
    fclose($file); 
?> 
Cuestiones relacionadas