2012-03-31 58 views
9

cấu trúc thư mục của tôi là như thế nào -tạo tập tin trong thư mục khác với php

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

tôi có mã để tạo một file php mới trong "trang" thư mục. mã giống như -

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

Mã thực thi bình thường..không có vấn đề gì. nhưng trang không được tạo. xin vui lòng cho tôi biết những gì tôi đang làm sai. là có vấn đề với con đường? fclose ($ ourFileHandle);

+0

Bạn đặt '$ dir_path', nhưng bạn không sử dụng nó. Ngoài ra im không chắc chắn nếu bạn có thể sử dụng liên kết tương đối, bạn có thể muốn sử dụng đường dẫn tuyệt đối. Đảm bảo bạn đã đặt quyền ghi trên bản đồ bằng văn bản. – ArendE

+0

'$ page_name' không được đặt và bạn đã ghi tập tin nào là – safarov

+0

nơi bạn đặt' $ page_name' cũng có lỗi cú pháp trên dòng này '' Dont forget kết thúc bán kết tràng –

Trả lời

18

Dưới đây là một ví dụ bằng cách sử dụng đơn giản hơn file_put_contents() wrapper cho 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

bạn đã cố tình bỏ lỡ việc hợp nhất $ dir_path và $ ourFileName;

tại

  1. là thư mục của bạn/file writable?
  2. kiểm tra current working directory
  3. của bạn có phải đang bị lỗi không?
6
$ourFileHandle = fopen("../pages/" .$ourFileName, 'w') or die("can't open file"); 

Hãy thay đổi ở trên để dòng thứ ba và nó có lẽ sẽ làm việc; Tôi đã thử và nó đã hoạt động.

+0

hoạt động cho tôi thankx –

0

Hãy thử điều này

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

Trong khi mã này có thể trả lời câu hỏi, cung cấp ngữ cảnh bổ sung về lý do và/hoặc cách mã này trả lời câu hỏi giá trị dài hạn. – NathanOliver

1

đã có vấn đề tương tự, tập tin sẽ không được tạo ra trong một thư mục có sự cho phép khác nhau, đảm bảo các điều khoản của thư mục là tương tự như các file khác.

+0

Bạn đã đúng! Tôi đã thay đổi quyền của thư mục mà tôi muốn tạo các tệp trong đó với chmod 777 và fopen đã tạo tệp đúng cách. – MaryamH

Các vấn đề liên quan