2010-04-28 7 views
11

Tôi đã sử dụng tiêu đề để tạo mẫu cho trang web. Thật dễ dàng và rất tiện lợi để gỡ lỗi.WebDesign: Tệp tiêu đề, nhưng với tiêu đề Trang tùy chỉnh?

Tôi hiện đang gặp sự cố khi sử dụng head BUT với tiêu đề trang tùy chỉnh. Nếu đây là header.php của tôi>

<html> 
    <head> 
     <title> My Site : ??? </html> 
    </head> 
<body> 


</body> 
</html> 

Tôi cần ??? được thay thế cho mỗi trang.

Điều này có khả thi không? Nếu vậy, làm thế nào? Cảm ơn bạn. :)

Trả lời

18

Không biết thêm về chương trình bao gồm tập tin của bạn, cách đơn giản nhất sẽ là:

page2.php

<?php 
$pageTitle = 'Page 2'; 
include 'header.php'; 
?> 

<div>My content</div> 

<?php include 'footer.php'; ?> 

header.php

<html> 
    <head> 
     <title> My Site : <?php echo $pageTitle ?> </title> 
    </head> 
<body> 

footer.php

</body> 
</html> 
+0

Oh, tôi đoán tôi gõ chậm ...:) – Bojack

0

bạn có thể truy vấn một DB cho tiêu đề của một trang và sau đó in nó sử dụng php :)

Edit:

Nhìn lại vấn đề, tùy thuộc vào cách bạn có trang web của bạn được thiết kế này có thể không phải là giải pháp đơn giản nhất. Nhưng nếu bạn đã sử dụng một số loại hệ thống ID, điều này sẽ dễ dàng.

1

Nếu tôi đã thêm một số mã trước khi đưa vào tiêu đề, nó có giúp ích gì không?

<?php 
    $currentPage = "Random Page Title"; 
    include "header.php"; 
?> 

Và sau đó sử dụng giá trị trong header.php để in tiêu đề trang?

+0

có nhưng nếu bạn xác định trang hiện tại là "tiêu đề trang ngẫu nhiên", nó sẽ là "trang ngẫu nhiên Tiêu đề "trên mọi trang hoặc bạn sẽ phải chỉnh sửa mọi trang nơi bạn muốn có tựa đề ... về lâu dài điều này là xấu. Sử dụng cơ sở dữ liệu sẽ giúp bằng cách cho phép bạn chọn tiêu đề trang. – ChelseaStats

2

Câu trả lời của webbiedave là hoàn toàn tốt đẹp, nhưng về lâu dài, bạn thực sự nên học cách sử dụng ngôn ngữ mẫu phong nha (Smarty, Twig) hoặc khung PHP có khuôn mẫu riêng. Kohana và Codeigniter đều dễ dàng tham gia.

+0

Đồng ý. Theo kinh nghiệm và nhu cầu của mình tiến bộ, anh ta nên thực hiện bước nhảy vọt. Câu trả lời của tôi chỉ là một điểm khởi đầu đơn giản. – webbiedave

0

Có, nó sẽ giúp chắc chắn. Nhưng bạn cần phải làm một chút tùy biến.

Trước hết, hãy đảm bảo rằng bạn kết nối với cơ sở dữ liệu, nếu bạn muốn truy vấn/tìm nạp dữ liệu từ cơ sở dữ liệu. Để điều này xảy ra, hãy bao gồm trang "config.php" ở phần đầu của tập lệnh, trong đó logic kết nối cơ sở dữ liệu của bạn sẽ xuất hiện.

Sau đó, viết truy vấn của bạn để tìm nạp dữ liệu từ cơ sở dữ liệu đó và gán giá trị đó cho biến được yêu cầu để sử dụng nó trong trang tiêu đề.

Cuối cùng, bao gồm trang "header.php" của bạn.

Đối với trang "config.php": -

Logic của Database Connection, như sử dụng của "mysql_connect()" & "mysql_select_db()" chức năng.

Dành cho "tùy chỉnh.php" page: -

<?php 
    include "config.php"; 

    $sql = "SELECT pageTitle FROM db_table WHERE condition = 'something'"; 
    $sql_exe = mysql_query($sql) or die("Error in Fetching Page Title"); 
    if(mysql_num_rows($sql_exe)) { 
    $currentPage = mysql_result($sql_exe, 0, 0); 
    } 
    else { 
    $currentPage = "Random Page Title"; 
    } 
    mysql_free_result($sql_exe); 

    include "header.php"; 
?> 

Ngoài ra, nếu bạn muốn, bạn luôn có thể sử dụng một số lớp cho kết nối mysql & truy vấn, để lấy dữ liệu Nhưng đây là cách nó luôn luôn làm việc

0

bạn có thể gọi javascript.. để thay đổi tiêu đề của trang năng động, đây là một giải pháp tốt hơn nếu bạn có một tập tin index.php bậc thầy mà các cuộc gọi tất cả các khác bao gồm

0

bạn cũng có thể sử dụng một cái gì đó như thế này:

nếu bạn kết hôn lên php của bạn tên tệp với trang của bạn tiêu đề

bạn có thể sử dụng phát nổ hoặc str thay thế để làm cho nó thân thiện với người dùng hơn để thay thế dấu phẩy hoặc dấu gạch dưới chẳng hạn.

<?php 
    echo basename($_SERVER['REQUEST_URI']); 
    ?> 

hoặc

<?php 
    // my_page_title.php 
    $var=basename($_SERVER['REQUEST_URI']); 
    $pagetitle=str_replace("_"," ",$var); 

    // my page title 
    ?>  
    <title> My Site : <?php echo $pagetitle; ?> </title> 
0

Sửa 1 lỗi nhỏ trong mục header.php Webbiedave của

</html> should be </title> 

<html> 
    <head> 
     <title> My Site : <?php echo $pageTitle ?> </title> 
    </head> 
<body>