Autor Zpráva
Blskr1
Profil *
Dobry den mam problem s titulkem stranky, vkladam stranky z databaze ktere se generuji a vybiraji az uprostred stranky, a chtel bych aby kazda stranka mela svuj vlastni title. Potrebuji to realizovat pomoci php, aby promena ktera je ve zdrojovem kodu nize nez by se mela zobrazit tak aby se zobrazila vyse. Jak to provest?
Str4wberry
Profil
Přečti si Nejčastější potíže s PHP (FAQ) — najdeš tam odpověď.
Blskr1
Profil *
Cetl jsem, je tam 5 moznosti, z nichz nektere nevyhovuji a ostatni s tim object start sem nepochopil.
Alphard
Profil
Jak vypadá ta stránka? Byl by problém nejdříve vytáhnout data z databáze a pak vypsat hlavičku a pokračovat?
jinak zbývá asi jen bufferování
Blskr1
Profil *
Alphard
Problem by to byl protoze jsem mluvil o tom ze data taham z databaze, ale taky tam mam par statickych stranek ktere by mely tu promenou s tim titulkem take uprostred
Alphard
Profil
Problem by to byl protoze jsem mluvil o tom ze data taham z databaze

to je těžké, ono by mohlo být třeba

include "pripojeni_db.php";
$result = mysql_query ("...");
list ($title) = mysql_fetch_row ($result);
include "head.php";
// pokracujeme

těžko radit na základě daných informací

a statické stránky stejně tak, includuje se obsah nebo se includuje hlavička, nebo nic? apod.
Blskr1
Profil *
Alphard

ne je to tak, proste uprosted stranky bude promena treba:
$page_title = mysql_result...... // pro dynamicke stranky
$page_title = "Neco neco"; // pro staticke stranky

a ja potrebuji aby se promena $page_title objevila nahore mezi tagy title,
<title>$page_title</title>

Kod ma vypadat nejak takto ...
<head>
<title>$page_title</title>
</head>
<body>
$page_title = mysql_result...... // pro dynamicke stranky
$page_title = "Neco neco"; // pro staticke stranky
</body>

... ale jak to udelat aby se promena deklarovana nize ve zdrojovem kodu zobrazila vyse????
tiso
Profil
Blskr1 - Alphard ti už odpovedal - pozri si funkcie na bufferovanie výstupu (ob funkcie).
v6ak
Profil
Blskr1
To spíš: echo '<title>'.htmlspecialchars($page_title).'</title>';
apod.

Já mám titulek jako pole a pak vše spojím pomocí implode.
Blskr1
Profil *
No tak dival sem se na ten buffer a nejak mi porad nedochazi jak tu promenou zobrazit vyse nez se nachazi, pomuze mi nekdo a napise tady funkcni zdrojak?
tiso
Profil
Blskr1:
1. na začiatku stránky ob_start();
2. po vybraní titulku z DB $content=ob_get_contents();
3. str_replace('$page_title', $page_title, $content);
4. echo $content;

Ale skôr sa prihováram za zmenu logiky skriptu, aby si nemusel používať takéto barličky.
pecan987
Profil *
Ono možná nejlepší by bylo kdyby jsi oddělil PHP kód od HTML a použil nějaký šablonovací systém a tohle by pro tebe nebyl žádný problém. Nejznámější asi SMARTY, ale dají se použít i méně "robustní" systémy.
Mastodont
Profil
Blskr1
Nic ti snad nebrání ukládat si různé údaje do proměnných a začít vypisovat do výstupu až poté, kdy budeš mít všechna potřebná data, ne?
AM
Profil *
Souhlas s temi, co doporuci data nejdriv precist. Rekl jsi si, ze data budes cist prubezne jak to jde, protoze je to jednodussi, a hle, ono se to stalo slozitejsim :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: