web-dev-qa-db-fra.com

créer un fichier dans un autre répertoire avec php

Ma structure de dossier est comme - 

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

J'ai du code pour créer un nouveau fichier php dans le dossier "pages". le code est comme - 

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

Le code s'exécute normalement .. pas de problème. mais la page n'est pas en cours de création. s'il vous plaît dites-moi ce que je fais mal. Y at-il un problème avec le chemin? fclose ($ ourFileHandle);

15
Imrul.H

Voici un exemple utilisant le plus simple file_put_contents () wrapper pour 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) . ")";
}
?>
22
Lawrence Cherone
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file");

Effectuez les modifications ci-dessus sur la troisième ligne et cela fonctionnera probablement. Je l'ai essayé et cela a fonctionné.

7
ghazi

avez-vous délibérément oublié de concatiner $ dir_path et $ ourFileName;

à présent 

  1. votre répertoire/fichier accessible en écriture
  2. vérifier votre répertoire de travail actuel
  3. votre rapport d'erreur est-il allumé?
1
Kishor Kundan

Si le même problème existait, le fichier ne serait pas créé dans un dossier ayant des autorisations différentes. Assurez-vous que les autorisations des dossiers sont identiques à celles des autres fichiers.

1
Kuldeep

Essaye ça 

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