Co można zrobić, to zapisać wyjście w zmiennej typu:
header.php
<?php
$output = '<html><title>%TITLE%</title><body>';
?>
PS: trzeba usunąć wszystkie ec hos/prints itp., aby wszystkie możliwe dane wyjściowe były przechowywane w zmiennej $output
.
To może być easely zrobić, definiując $output = '';
na początku pliku, a następnie find/zastąpićecho
do $output .=
.
A potem wymienić %TITLE%
do czego potrzebujesz:
<?php
include("header.php");
$title = "TITLE";
$output = str_replace('%TITLE%', $title, $output);
echo $output;
?>
Innym sposobem jest użycie javascript
w kodzie, zamiast:
<title><?php echo $title; ?></title>
umieścić to w tam:
<script type="text/javascript">
document.title = "<?=$title;?>"
</script>
Lub jQuery, jeśli wolisz:
<script type="text/javascript">
$(document).ready(function() {
$(this).attr("title", "<?=$title;?>");
});
</script>
Najlepszym sposobem, aby przejść byłoby zmienić logika programu, dzięki czemu możesz zdefiniować tytuł przed wydrukowaniem tagu tytułu. Istnieją obejścia, ale są kludgy. –
Powiązane: http://stackoverflow.com/questions/2825776/header-how-to-modify-title-of-the-page-on-the-fly – JNF
+1 Pekka. A dla "kludgy" przeczytaj "Skomplikowane", "Stosunkowo wysokie koszty przetwarzania" i "Szalony gotcha dla każdego, kto musi to utrzymać". Napraw swoją architekturę, nie walcz z tym. – Quentin