2010-03-09 30 views
8

tôi đã cố gắng này:tập tin không mở sử dụng PHP fopen

<?php 
$fileip = fopen("test.txt","r"); 

?> 

này nên đã mở các tập tin trong tâm trạng đọc chỉ nhưng nó không file test.txt là trong cùng một thư mục như của index.php (chính thư mục dự án)

file không mở

và khi tôi đặt tiếng vang như:

echo $fileip; 

nó trở

id Resource # 3

Trả lời

15

Tệp đã mở tốt, bạn không thể lặp lại như vậy vì đó là con trỏ tệp chứ không phải nội dung của tệp. Bạn cần sử dụng fread() để đọc nội dung thực tế hoặc tốt hơn, sử dụng file_get_contents() để tải nội dung ngay lập tức.

Làm theo cách của bạn:

$handle = fopen("test.txt", "r"); 
$fileip = fread($handle, filesize($filename)); 
fclose($handle); 

echo $fileip; 

Hoặc, sử dụng file_get_contents():

$fileip = file_get_contents("test.txt"); 

echo $fileip; 
+0

nếu bạn muốn in nội dung trực tiếp, bạn không cần phải lưu nội dung vào biến trước, chỉ cần sử dụng readfile ("test.txt"); – Tobias

+0

@Tobias, hoặc bạn cũng có thể chỉ cần 'echo file_get_contents (...' nhưng tôi đã thêm các biến vì OP có nó trong câu hỏi của mình. –

2

Từ php.net:

Trả về một nguồn tài nguyên con trỏ tập tin trên thành công, hoặc FALSE về lỗi.

Kể từ khi resource được trả lại, tệp của bạn đã mở thành công, bạn cần thêm các hoạt động như fwrite, v.v. trên tệp của bạn. Vì vậy, không có lỗi, các tập tin là có được thao tác.

2

Nếu bạn nhận được một id tài nguyên là kết quả của cuộc gọi fopen, thì nó thành công, vì nó sẽ trả về SAI nếu nó không thành công. Vì vậy, chính xác những gì làm cho bạn nghi ngờ rằng các tập tin thực sự là mở?

Kiểm tra http://www.php.net/fopen để biết thêm thông tin.

2

Bạn chỉ mở một trình xử lý tệp chứ không phải chính tệp đó.

Nếu bạn đang sử dụng PHP5 - mà bạn thực sự cần cho phát triển mới, bạn có thể sử dụng $ fileip = file_get_contents ("test.txt") để đọc nội dung của tệp này vào bộ đệm.

0

Để sản lượng nội dung file văn bản:

$fh = fopen('myfile.txt', 'r'); 
$text = fread($fh, filesize('myfile.txt')); 
echo $text; 
2

Một ví dụ hoàn chỉnh.

<?php 
    $fileip = file_get_contents("test.txt"); 

    echo($fileip); 
?> 
Các vấn đề liên quan