Diskuze: Jak přidat custom HTML za <body*>?
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Sak, zapomen chvilku na ob_start a zkus tam pridat testovaci kod, pak zdroj +
vystup vypisuj pres htmlspecialchars a uvidis, co to dela, ne? (pridani
baneru)
Ja mam pocit, ze tyhle veci se delaji v .htaccess, mozna linuxem, na serverech,
ze to do php snad ani nejde. Ale musel bych zkusit googlovat. Jeste jsem nic
tekoveho nepotreboval.
tak, oprava, 3.
$pattern = '[<]body[^>]*[>]'; - je spatne, viz forko programujte.com, to mi rano nedoslo
$pattern = '~[<]body[^>]*[>]~';
$pattern = '/[<]body[^>]*[>]/'; // nebo takto, a porom mas na programujte jeste to body velkymi pismeny
$pattern = '~[<]body[^>]*[>]~im'; // a multiline, vice radku, nekonci u privniho \n
Hej, sak v nejhorsim muzes pouzit strpos. Najit <body a od te pozice prvni
>. A ziskas pozici, kam muzes pridat dalsi kod. Potom to cele zplacat pres
substr
substr($html,0,$pos).'mujkod'.substr($html,$pos+1)
Nevim jak teď, ale před několika lety toto webhosting Endora neřešil, a dával to naopak na konec každého souboru. Hezky za </html>. Kód byl sice W3C nevalidní, ale dnešní prohlížeče si s tím bez problému poradí.
Peter Mlich: Děkuji ti moc, že sis dal s tím tolik práce a zamyslel se nad mým problémem. Nicméně, došlo mi, že ta cesta PHP a načítání obsahu celých HTML dokumentů do bufferu a nad tím provádění dalších operací by jen zpomalovalo načítání stránek a vyžíralo paměť na serveru.
Daniel Vítek: Tohle je hodně dobrá poznámka, děkuji ti. To by fungovalo, ale má to háček, je to v zápatí, já to potřebuji v záhlaví. Zkoušel jsem to pomocí absolutního pozicování CSS, ale to mi zakrývalo content webu. Musel bych hrabat do CSS konkrétního webu, což je podobný problém jako výše uvedený, chtělo by to zase nějak podvrhovat zdrojový kód pomocí PHP. Pak jsem to zkoušel přes javascript, aby to nezatěžovalo server, což se mi ale též nepovedlo, firefox nezpracovával </script> tak za koncovou značkou </html>, nebo mi to jen nefungovalo, nevím.
Kdyby tě napadlo, jak to z patičky dostat do zahlaví jednoduchým způsobem, byla by to pecka.
Zkus přiblížit o co konkrétního jde - nějaký banner?
Každopádně musíš počítat s tím, že i když to dostaneš hned za <body>, můžeš pak mít na webu navigaci, která bude mít fixní pozici nahoře, a to co ty si tam vložíš to stejně překryje. Případně tomu ten web může přes CSSko nastavit display: none a stejně se to nezobrazí.
Takže hodně záleží na konkrétním případu.
Cele to reseni je podle mne uplne na prd. Neco podobne pouzival wz.cz. Ale, po te, co mi zrusili stranky, tak muzu takovy hosting jen nedoporucit. (jsem tam mel nejaky prehistoricky mail tusim peter@mail.tw, na strankach jsem mel vsude jine mail a ani se neobtezovali mi napsat na ne).
No, co chci rici, ze pridavat do kodu na stranky je spatna vec. Treba CMS to moc nemaji rady. Lepsi je dat uzivateli moznost rici, kde bude kod vkladan, jako to melo to wz.
<!-- reklama --><!-- /reklama -->
Nebo, jak pise Vitek, pouzil bych ale htaccess a pridal ten kod na konec. Mohla by tam byt moznost, tesne pred odeslanim uzivateli kod nejka upravit.
Co se tyce pozicovani, melo by stacit nastavit
<html>...</html>
<style>html, body {position:relative; margin:0;
padding:0;}</style>
Dnesni prohlizece by to meli vzit. A nebo je mozne jeste pouzit vice body
najednou. vim, ze jsem to videl pouzivat nekde u mysqldump.php, nejaky program
pro import velkych sql souboru, ktere neslo protlacit pres phpmyadmin.php.
Pouzivali to k vykreslovani progressbar.
Daniel: Ano, banner.
Peter: To je zase sahání do vzhledu webu pomocí CSS, což ho může rozbít,
možná sem nepochopil jak to myslíš.
Jde o to, že už sem tím zabil tolik hodin času, že nakonec jsem se
rozhodl, že ten banner do záhlaví webu automaticky prostě dávat nejde.
Mas tolik moznosti
Jo, napadla mne takova finticka. Vpasovat tam js kod, ktery pri onmouseover
provede onclick a presmeruje to do nejakeho neviditelneho iframu Vis, jakoze uzivatel neklikl, ale
tobe to zapocita klik na reklamu
Zobrazeno 10 zpráv z 10.