2012-12-26 31 views
7

Tôi muốn tự động bao gồm một tập lệnh PHP vào mỗi exection vào máy chủ, tôi đã nhảy để làm điều đó thông qua PHP ini, thông qua một thiết lập hoặc có thể viết một extention trong php được đơn giản và bao gồm của tôi tập lệnh php.PHP auto bao gồm

+4

Bạn đang tìm tùy chọn 'auto_prepend_file'. – Maerlyn

+0

Bạn đã có câu trả lời đúng nếu bạn đăng nó ở phía dưới, bạn sẽ được cho điểm – WojonsTech

+1

bản sao có thể có của [Làm thế nào để bao gồm một tệp tự động trong PHP?] (Http://stackoverflow.com/questions/5827594/how- to-include-a-file-automatic-in-php) – Jocelyn

Trả lời

4

Nếu chạy Apache và có thể truy cập vào .htaccess bạn có thể làm như sau nếu không thì nhìn vào @ Khóa của câu trả lời

prepend.php: 
<?php 
echo "<p>this is the prepended file</p>\n"; 

main.php: 
<?php 
echo "<p>this is the main file</p>\n"; 

append.php: 
<?php 
echo "<p>this is the appended file</p>\n"; 

Và thêm prepend.php và chắp thêm append.php bằng cách sử dụng các hướng dẫn bên dưới, khi main.php được gọi như sau sẽ được xuất ra từ tập lệnh:

<p>this is the prepended file</p> 
<p>this is the main file</p> 
<p>this is the appended file</p> 

Và thêm vào trước prepend.php và thêm append.php sử dụng các hướng dẫn dưới đây, khi main.php được gọi sau đây sẽ được xuất ra từ các tập lệnh:

<p>this is the prepended file</p> 
<p>this is the main file</p> 
<p>this is the appended file</p> 

prepending một kịch bản

Để thêm trước một tệp để tệp được phân tích cú pháp trước tập lệnh chính, hãy thêm cài đặt sau vào tệp .htaccess, php.ini (tất nhiên sẽ ảnh hưởng đến tất cả các trang web) hoặc cấu hình:

php_value auto_prepend_file prepend.php 

Đường dẫn không cần phải được bao gồm nhưng nếu không thì sẽ sử dụng đường dẫn bao gồm để tìm đường đi. Điều này có thể dẫn đến lỗi như "Cảnh báo: Không xác định: không mở được luồng: Không có tệp hoặc thư mục nào trong Không xác định trên dòng 0" nếu không có bản sao của tệp này trong đường dẫn hoặc thư mục bao gồm tập lệnh. để có đường dẫn đầy đủ đến tệp được thêm vào trước. Thêm một tập lệnh

Điều này gần như giống như việc thêm một tập lệnh và các ghi chú tương tự được áp dụng. Cách để nối thêm một tập tin là như sau:

php_value auto_append_file append.php 

Trọng một khung cảnh nên không có gì được thêm vào phía trước hoặc nối

Nếu bạn cần phải ghi đè một auto_append_file hiện có hoặc auto_prepend_file thiết lập mà bạn có thể làm điều này bằng cách thiết lập giá trị cho "none" như vậy:

php_value auto_prepend_file none 
php_value auto_append_file none 

Điều này có thể hữu ích nếu bạn muốn có .htaccess thiết lập các tập tin append/thêm vào trước ở cấp độ gốc của một trang web nhưng sau đó muốn có một thư mục con đặc biệt để không làm phụ thêm hoặc thêm vào trước . Bạn sẽ tạo một tệp .htaccess mới trong thư mục con đó, đặt chúng thành không như trên.

Nguồn: http://www.electrictoolbox.com/php-automatically-append-prepend/

+0

Tôi đã nghĩ về một cái gì đó như thế này trước đây nhưng nó là dành cho khách hàng có thể được trên apache hoặc nginx hoặc bất cứ điều gì mà họ chọn. – WojonsTech

3

Một giải pháp khác, nếu bạn đang ở trên Apache và điều này là có sẵn cho bạn, là sử dụng .htaccess.Tôi thêm một dòng:

php_value include_path "/var/www/mysite.com/config"

và sau đó trong file PHP của tôi, tôi có thể bao gồm

include_once('someconfig.php');

trông trong /var/www/mysite.com/config/. Phải thừa nhận rằng, tôi đã làm điều này mà không biết giải pháp tự động thêm vào - trông có vẻ sạch hơn và hiệu quả hơn nhiều.

+0

đây cũng là suy nghĩ đầu tiên của tôi nhưng tôi không muốn phải thêm dòng đó vào tất cả các tệp tôi đã hy vọng nó sẽ là toàn cục nên không có bản mod nào cho các kịch bản cần phải xảy ra chỉ với cấp độ máy chủ – WojonsTech

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