2010-09-25 46 views
9

tôi muốn bao gồm PHP tôi tập googleanayltics.php trên mỗi trang trên máy chủ web của tôi đó là một .php hoặc tài liệu .htmlLàm thế nào để bao gồm một file PHP Toàn trang web Sử dụng .htaccess hoặc các phương pháp khác

Tôi muốn biết:

A) làm thế nào để thêm quyền này TRƯỚC thẻ </head>
B) làm thế nào để tôi thêm đúng ngay sau thẻ <body>

tôi muốn biết cả hai phương pháp cho sự linh hoạt

Tôi nghĩ .HTACCESS có thể thực hiện điều này dễ dàng, và nếu bạn biết làm thế nào, hoặc nếu bạn biết về bất kỳ phương pháp dễ dàng hơn thì xin vui lòng chia sẻ.

P.S. Tôi không muốn đăng nhập theo cách thủ công và nhập mã trên mỗi tệp, đó là lý do tôi hỏi câu hỏi này (để tiết kiệm thời gian)

+0

Google analytics thường là một javascript nếu trang web của bạn đang chạy javascript. Thông thường cho hiệu suất chúng tôi kết hợp javascript và css vào tập tin duy nhất của riêng mình và nén/giảm bớt nó để có vẻ như javascript này bao gồm đã được một tuyên bố rộng trang web. – Chris

+0

Bạn có bao nhiêu trang? Bạn có thể tự đặt mình lên để có kiến ​​trúc linh hoạt hơn nếu bạn chỉ dành thời gian một lần để sử dụng tiêu đề và chân trang phía máy chủ bao gồm việc quản lý mẫu HTML của bạn (và Google Analytics) – philfreo

Trả lời

3

Bạn có thể thêm hoặc thêm tệp bằng cách đặt giá trị ini trong PHP .htaccess

php_value auto_prepend_file "full_path_to_the_include_directory/prepend.php" 
php_value auto_append_file "full_path_to_the_file_containing_your_analytics_code" 

(Nó muốn được tốt hơn để cài đặt chúng bằng tay trong php.ini)

http://php.net/manual/en/ini.core.php

+0

Cảm ơn, nó sẽ thêm tệp vào đâu . Nó cần phải đi cụ thể ngay TRƯỚC KHI hoặc phải SAU KHI các thẻ . Điều này có hoạt động như thế này không? –

+0

Có hình phạt về hiệu suất khi sử dụng các tính năng tự động thêm này không? – Pacerier

5

EDIT: Chỉ bây giờ tôi thấy những gì bạn ac tually muốn (bị ẩn do định dạng). Mặc dù có thể, đó sẽ là một điều rất vụng về để làm, và thực sự không đáng để nỗ lực. Xem câu trả lời khác của tôi để biết cách thực hiện điều đó.


Có hai php.ini cài đặt bạn có thể quan tâm:

auto_prepend_fileauto_append_file

Chúng có thể được thay đổi thông qua .htaccess (xem câu trả lời khác).

GHI CHÚ:

  • Những điều này sẽ được đưa vào trước hoặc sau khi kịch bản toàn bộ PHP; nhưng không phải trong các phần cụ thể của đầu ra.

  • Chúng sẽ chỉ ảnh hưởng đến các tệp được xử lý thông qua PHP, có nghĩa là tệp HTML không được bao gồm, trừ khi máy chủ của bạn được thiết lập để chuyển các tệp HTML thông qua PHP. Điều này có thể được thực hiện bằng cách thêm dòng sau vào .htaccess của bạn:

    AddType application/x-httpd-php .html .htm 
    
  • Auto prepending một tập tin mà tạo ra sản lượng là một điều nguy hiểm để làm, vì nó sẽ ảnh hưởng (nghỉ) kịch bản thiết lập tiêu đề hoặc các phiên sử dụng .

+0

Tại sao nó là 'x-httpd-php'? Giá trị này được xác định ở đâu? – Pacerier

0

Dưới đây là những gì bạn có thể thực hiện những gì bạn thực sự muốn.

  • Tạo hai tập tin, gọi prepend.phpappend.php.
  • Sử dụng phương pháp được mô tả trước đây để đặt chúng là auto_prepend_fileauto_append_file.

prepend.php

<?php 

function callback($buffer) { 
    $fileContents = file_get_contents('somefile.html'); 

    // insert $fileContents right BEFORE </head> tag 
    return str_replace('</head>', $fileContents . '</head>', $buffer); 

    // insert $fileContents right AFTER <body> tag 
    // return str_replace('<body>', . '<body>' . $fileContents , $buffer); 

} 

ob_start("callback"); 

?> 

append.php

<?php 

ob_end_flush(); 

?> 

này dựa trên output buffering và là tương đối tốn kém. Bạn cũng có thể gặp sự cố nếu tập lệnh của bạn cũng sử dụng tính năng lưu vào bộ đệm đầu ra. Vì vậy, lời khuyên tốt nhất của tôi là thiết kế kịch bản theo cách bố cục được sử dụng cho mọi trang và bạn có thể dễ dàng thay đổi những gì được bao gồm trong các trang của mình bằng cách chỉ thay đổi bố cục.

+0

Xin chào. Tôi không biết bộ đệm đầu ra là gì hoặc nếu tập lệnh của tôi sử dụng ... nhờ tập lệnh prepend.php này. Làm thế nào tôi có thể sửa đổi nó để đặt mã SAU KHI một chuỗi cụ thể như ", và bạn có thể giải thích ob_start (" gọi lại "); và ob_end_flush(); là dành cho? Cảm ơn! –

+0

@ RB.J' ob_start' bật đầu ra đệm, 'ob_end_flush()' gửi đầu ra đệm và tắt nó đi.Đối với câu hỏi khác của bạn, tôi đã cập nhật câu trả lời của tôi - chỉ cần chuyển các dòng nhận xét. chứa các thuộc tính. – NullUserException

1

Trong htaccess bạn có thể đặt

php_value include_path "your/include/path/here/googleanayltics.php" 
0

nếu nó trong cùng một thư mục

<?php include_once("googleanayltics.php") ?> 

Nếu không sử dụng này

<?php include("/customers/f/5/f/example.com/httpd.www/folder/googleanayltics.php"); ?> 
Các vấn đề liên quan