2012-03-31 9 views
9

Meine Ordnerstruktur wie ist -erstellen Datei in ein anderes Verzeichnis mit PHP

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

I-Code haben eine neue PHP-Datei in „Seiten“ Ordner für das Erstellen. der Code ist wie -

$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; 
} 

Der Code wird normal ausgeführt .. kein Problem. aber die Seite wird nicht erstellt. Bitte sag mir, was ich falsch mache. Gibt es ein Problem mit dem Pfad? fclose ($ ourFileHandle);

+0

Sie setzen '$ dir_path', aber Sie verwenden es nicht. Ich bin mir auch nicht sicher, ob Sie relative Links verwenden können, Sie möchten vielleicht den absoluten Pfad verwenden. Stellen Sie sicher, dass Sie Schreibberechtigungen für das Map-Schreiben festgelegt haben. – ArendE

+0

'$ page_name' ist nicht gesetzt und Sie haben nicht geschrieben welche Datei ist es – safarov

+0

wo setzen Sie' $ page_name' Sie haben auch einen Syntaxfehler in dieser Zeile '' Nicht vergessen das schließende Semikolon –

Antwort

18

Hier ist ein Beispiel mit dem einfacheren file_put_contents() Wrapper für 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

haben Sie absichtlich die Konkatinierung von $ dir_path und $ ourFileName verpasst;

jetzt

  1. ist Ihr Verzeichnis/Datei writable?
  2. überprüfen Sie für Ihre current working directory
  3. ist Ihre error_reporting auf?
6
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file"); 

Sprechen Sie die obige Änderung der dritten Zeile, und es wird wahrscheinlich funktionieren; Ich habe es versucht und es hat funktioniert.

+0

arbeitet für mich thankx –

0

Versuchen Sie, diese

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

Während dieser Code die Frage beantworten kann, zusätzlichen Kontext betreffend zur Verfügung stellend, warum und/oder wie dieser Code die Frage beantwortet, verbessert sein langfristiger Wert. – NathanOliver

1

haben das gleiche Problem, Datei wird nicht in einem Ordner mit unterschiedlicher Berechtigung erstellt werden, stellen Sie sicher, dass die Berechtigungen der Ordner wie andere Dateien identisch sind.

+0

Sie hatten Recht! Ich änderte die Berechtigungen des Ordners, in dem ich die Dateien erstellen wollte, mit chmod 777, und fopen erstellte die Datei ordnungsgemäß. – MaryamH

Verwandte Themen