2009-05-28 38 views
9

Tôi cần phải lặp lại toàn bộ nội dung của tệp được bao gồm. Tôi đã thử các cách sau:Bao gồm toàn bộ nội dung của một tệp và phản hồi nó

echo "<?php include ('http://www.example.com/script.php'); ?>"; 

echo "include (\"http://www.example.com/script.php\");"; 

Nhưng không hoạt động? PHP có hỗ trợ điều này không?

+0

Bạn đang cố gắng để thực hiện chính xác? Bạn có muốn lặp lại kết quả của hàm include() không? Bạn có muốn lặp lại nội dung của tệp bạn đang cố đưa vào không? –

+0

Hãy thử để echo nội dung của tập tin bao gồm – Elliott

Trả lời

16

Chỉ cần làm:

include("http://www.mysite.com/script.php"); 

Hoặc:

echo file_get_contents("http://www.mysite.com/script.php"); 

Ghi chú:

  • này có thể làm chậm trang của bạn do độ trễ mạng hoặc nếu máy chủ khác là chậm.
  • Điều này yêu cầu allow_url_fopen để bật cho cài đặt PHP của bạn. Một số máy chủ tắt nó đi.
  • Điều này sẽ không cung cấp cho bạn mã PHP, nó sẽ cung cấp cho bạn đầu ra HTML/văn bản.
+1

nhờ file_get_contents hoạt động :) – Elliott

+0

chỉ để nói với bạn, tôi không biết tại sao, trong trường hợp của tôi chỉ là Phiên bản 'include' hoạt động –

1

Echo in một thứ gì đó vào bộ đệm đầu ra - nó không được phân tích bởi PHP. Nếu bạn muốn bao gồm thứ gì đó, chỉ cần làm điều đó

include ('http://www.mysite.com/script.php'); 

Bạn không cần in mã nguồn PHP, khi bạn đang viết mã nguồn PHP.

+0

hi, tôi đã thử này và nhận được một lỗi nói rằng truy cập tập tin trực tiếp là không được phép – Elliott

+1

Âm thanh như allow_url_fopen bị tắt. Nếu máy chủ của bạn cho phép, bạn có thể thử đặt "php_value allow_url_fopen 1" trong tệp .htaccess. – ceejayoz

+0

Câu hỏi của ông là làm thế nào để thực hiện một nhiệm vụ đặc biệt, không nên hay không. Nói với anh ta những gì anh ta làm và không cần phải làm không giúp trả lời câu hỏi.Trừ khi được hỏi, chiến lược của anh ta là tùy thuộc vào anh ta. – KOGI

1
+0

liên kết này nói về các hàm output_buffer của php. Các câu trả lời được cung cấp cho đến nay trong chủ đề này (ví dụ: echo, readfile, file_get_contents) chỉ trả lại nội dung theo nghĩa đen của một tệp php được bao gồm __as a string__, mà không thực hiện bất cứ điều gì. Nhưng hàm ob _... quản lý đầu ra của tệp được bao gồm EXECUTED. [php ob_start] (http://php.net/manual/en/function.ob-start.php) – dsdsdsdsd

0

Không thực sự chắc chắn những gì bạn đang yêu cầu, nhưng bạn thực sự không thể bao gồm thông tin nào đó qua http và mong đợi để xem mã, vì máy chủ sẽ phân tích cú pháp tệp.

Nếu "script.php" là một tập tin địa phương, bạn có thể thử một cái gì đó như:

$file = file_get_contents('script.php'); 
echo $file; 
2

cách ngắn nhất là:

readfile('http://www.mysite.com/script.php'); 

Đó sẽ trực tiếp đầu ra tập tin.

0

Đây có thể không phải là câu trả lời chính xác cho câu hỏi của bạn, nhưng tại sao bạn không đóng câu lệnh echo, chèn câu lệnh include của bạn và sau đó thêm câu lệnh echo mới?

<?php 
    echo 'The brown cow'; 
    include './script.php'; 
    echo 'jumped over the fence.'; 
?> 
0

Matt là đúng với readfile() nhưng nó cũng có thể hữu ích cho một ai đó để nhìn vào các chức năng xử lý file PHP manual entry for fpassthru

<?php 

$f = fopen($filepath, 'r'); 

fpassthru($f); 

fclose($f); 

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