Diskuze: PHP uložení textu tak aby se pri ukladani ulozila hodnota promenne
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Vytáhni si ten text z $menu.txt do nějaké proměně a pak ji tam jen do
toho textu přidej...
Problém je v tom ze ty ulozis do HTML souboru kód který by se měl vykonat na
serveru, ale asi jak jistě víš tak bez speciálního nastavení se na serveru
"spustí" jen soubory s koncovkou PHP (+ par dalších)
asi sem nebyl plně pochopen. Mám na řádku 26 tento kod
fwrite($soubor,'
za tímto kodem se vse az na posledni 3 radky uklada do $menu.php. Problem je ten ze na 13 radku od spoda mam tento kod
<?php include ("./$menu.txt"); ?>
a ja by jsem chtel aby se mi ten kod neulozil v podobe v jake ho tam mam napsany ale misto $menu se mi ulozila hodnota dane promene.
Uz chapu jak to myslis a toto reseni mi nevyhovuje proto protoze tento PHP script se bude pouzivat opakovane vzdy s jinou hodnotou promene menu, takze se tam napevno nazev textoveho dokumentu nelze vlozit.
tak tu proměnou v místě kde potřebuješ prostě vypiš, tedy:
echo file_get_contents("./odkazy.txt");
nebo
echo file_get_contents("./{$menu}.txt");
Po vygenerovani stranky mam v ni zase
$soubor = fopen("./$menu.php", "a+");
Kdyz to zjednodusim tak potrebuji
<?php echo file_get_contents("./{$menu}.txt"); ?>
fwrite($soubor,' nejaky text $menu (tuto promenou $menu chci ulozit jako hodnotu promenne a ne jako promenou) text text text ');
Tak na to asi mé mozkové buňky nestačí... ale jestli soubor uložíš jako TXT, tak se nediv, že se v takovém souboru kod v PHP nechová jako kod v PHP, ale jako prostý text...
Nevim jak je to myšleno ale po vykonání prvního PHP scripu se mi proměná nikam neukládá, takže úplně nechápu jak ji tam mám vypsat aby ve vygenerovaném souboru nebyla proměná ale pouze její hodnota. Asi jsem navrdlej ale nic mě prostě nenapadá až na řešení uložit hodnotu proměné do databáze ale této variantě se chci vyvarovat.
Nezkoušel jsem.
Vzhledem k tomu, že vkládání textu za pomocí proměnné je celkem běžná
věc, tak by tohle mohlo fungovat.
<?php echo file_get_contents("./{$menu}.txt"); ?>
fwrite($soubor," nejaky text".$menu."(tuto promenou $menu chci ulozit jako hodnotu promenne a ne jako promenou) text text text");
Jinak řečeno vyhodíš proměnnou z části textu a vypíšeš ji zvlášť a opět to spojíš.
fwrite($soubor,"něco".$promena."pokračujeme ve větě");
funguje narozdíl od 'text text ' použil jsem to o pár kroků předtim a
nějak mi vůbec nedošlo že ' a " nejsou stejné značky, jediné co mě štve
že všude kde mám v textu " to budu muset ošetřit, takže docela dobrá
pakárna ale co už
. Kdyby
jste někdo věděl jak vložit proměnou mezi ' ' tak dejte vědět. Docela by
mě zajímalo.
Obávám se, že bohužel nijak. V tom je právě jeden z rozdílů jednoduchých a dvojitých uvozovek. Pravděpodobně můj uvedený příklad by měl fungovat i s jednoduchými uvozovkami.
nefunguje, při spuštění scriptu je klasický eror za špatnou syntaxi.
Tak to zkus takto a pak se koukni, zda je v souboru co potřebuješ 
<?php
$nazev = "test-stranka";
$menu = <<<EOT
<ul id="polozky">
<li><a href="/neco.html">Něco</a></li>
<li><a href="/nekam.html">Někam</a></li>
<li><a href="/nekdo.html">Někdo</a></li>
</ul>
EOT;
$obsah = <<<EOT
<h1 class="nadpis">Nadpis</h1>
<p>Lorem ipsum dolor sit amet consectetuer eu non turpis netus Mauris. Nam semper magna semper Morbi enim Pellentesque hendrerit id nec Quisque. Lorem Praesent ipsum tempor Quisque vitae at volutpat pretium hendrerit elit. Amet tincidunt Vestibulum dui.
</p>
EOT;
$stranka = <<<EOT
<!doctype html>
<html lang="cz">
<head>
<meta charset="utf-8">
<title>The HTML5 Herald</title>
<meta name="description" content="stranka">
<meta name="author" content="autor">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="menu">
{$menu}
</div>
<div id="obsah">
{$obsah}
</div>
</body>
</html>
EOT;
echo "Soubor $nazev.txt ";
if(!file_put_contents("{$nazev}.txt", $stranka)) { echo "ne";}
echo "vytvořen";
?>
Zobrazeno 13 zpráv z 13.
