Autor | Zpráva | ||
---|---|---|---|
Bartolomey Profil |
#1 · Zasláno: 11. 10. 2008, 18:07:54
Mám sekce webu založené na php souborech, obsah generuju přes get metodu a chtěl bych docílit toho, abych měl u každé stránky vlastní <title>. Není možné dávat všude podmínky if($_GET['sekce']=='stranka') .... protože to je přes 200 souborů. Chtěl jsem se teda zeptat, jak docílit toho, aby se mně titulek vytáhnul z nadpisu. Nadpisy jsou v souborech na různém řádku, není pravidlem, že je na prvním. Mám na ně funkci, tak bych potřeboval vědět, jak můžu ten text z té php funkce vytáhnout.
Mohl by mě někdo aspoň nějak navést jak na to, jakou funkcí nebo ještě lépe úplným příkladem? :) Vím, že by to šlo snad nějak přes regulární výrazy, ale s těma jsem si moc nepotykal. Díky |
||
Kcko Profil |
#2 · Zasláno: 11. 10. 2008, 18:15:39
Jak jsi sam rekl .. regexp .. ukaz nakej priklad jak to mas a treba Ti to napisu nebo nekdo jiny
|
||
Bartolomey Profil |
#3 · Zasláno: 11. 10. 2008, 18:24:43 · Upravil/a: Bartolomey
Kcko
Začátek souboru vypadá vždycky nějak tak: <?php hnadpis('Nadpis'); ?> ... html kód .. nebo taky <?php hnadpis('Nadpis'); ... php kód .. ?> nebo i <?php hnadpis('Nadpis'); // před tímto můžou být i mezery ..... ?> |
||
Kcko Profil |
#4 · Zasláno: 11. 10. 2008, 18:32:19
Zeptam se takhle ... je to alespon v nejake H1,H2 .. ?
|
||
Bartolomey Profil |
#5 · Zasláno: 11. 10. 2008, 18:35:22 · Upravil/a: Bartolomey
V php souborech ne, jen ve výstupu se to formátuje na <h3> tagy. Jen nechápu, jak by se to dalo udělat, když se hlavičky generují před obsahem.
|
||
Kcko Profil |
#6 · Zasláno: 11. 10. 2008, 18:37:02
Velmi snadno .. zkus si precist http://www.webfaq.cz/clanek/Jak-na-mnohonasobne-bufferovani-aneb-jak-s pravne-pouzivat-ob-start
ja to pouzivam taky takhle mam HTML HLAVICKU {ZASTUPNA_ZNACKA_TITULKU} dalsi HML + PHP trebas .. HTML KONEC toto vsechno si hodim do bufferu a nahradim zastupnou znacku titulku necim co sem ziskal treba uprostred stranky ... |
||
Bartolomey Profil |
#7 · Zasláno: 11. 10. 2008, 18:41:11
Díky, na bufferovaní jsem úplně zapoměl. :)
|
||
Kcko Profil |
#8 · Zasláno: 11. 10. 2008, 18:58:58
Neni zac :)
|
||
Bartolomey Profil |
#9 · Zasláno: 11. 10. 2008, 19:18:57
Jak už jsem psal, ty regulární výrazy mně do hlavy nevlezly, zkusil jsem to nahrazování pořešit přes explode, ale k ničemu pádnému jsem se nedostal. Napsal by jsi mně, prosím, příklad jak to z toho <h3> tagu dostanu? :) Díky
|
||
jansfabik Profil |
#10 · Zasláno: 11. 10. 2008, 20:24:31
no jednoduše takto:
$page = file_get_contents($filename); $startpos = strpos($page, '<h3>')+4; $endpos = strpos($page, '</h3>'); $title = substr($page, $startpos, $endpos-$startpos-1); PS: nemám to odzkoušené, pravděpodobně to ještě bude chtít někde přidat -1 nebo +1 ;-) |
||
Kcko Profil |
#11 · Zasláno: 11. 10. 2008, 20:34:54
preg_match("~<h3>(.+?)</h3>~si", $stranka, $out);
print_r($out); |
||
jansfabik Profil |
#12 · Zasláno: 11. 10. 2008, 21:28:58
Kcko
moje řešení je rychlejší ;-) nedoporučuji používat regulární výrazy při každém načtení stránky, jednak to sníží zátěž na serveru a zároveň to taky zvýší rychlost načítání |
||
Kcko Profil |
#13 · Zasláno: 11. 10. 2008, 22:56:46 · Upravil/a: Kcko
Ale nepovidej :-) to jsou mi sakra veci ;-))) tak ja du vyhazet vsechny regexpy co mam na webe v sablonach a tak a doufam ze mi pak admin posle email jak sem mu snizil zatez serveru minimalne o 30% :)))
|
||
BetaCam Profil |
#14 · Zasláno: 12. 10. 2008, 05:50:58 · Upravil/a: BetaCam
jansfabik
„moje řešení je rychlejší ;-)“ No tvrzení je to pěkné, ale bohužel tomu tak není. Při měření se tvé řešení pohybovalo mezi 1,2ms - 1,9ms, řešení od Kcko se pohybovalo mezi 1,1ms - 1,5ms. Nejvíce z zápisů trvala funkce file_get_contents() a to +- 0,6ms. Při volání v cyklu ( 1000 cyklů ) bylo Kckovo řešení pomalejší zhruba o 100ms a trvalo +- 320ms tvé řešení trvalo +- 230ms Při volání v cyklu ( 100 cyklů ) bylo Kckovo řešení pomalejší zhruba o 10ms a trvalo +- 33ms tvé řešení trvalo +-25ms Zhruba je tedy použití preg_match pomalejší o +-10ms na každých 100 cyklů, což ovšem není tento případ. Když vypustíš chyby způsobené měřením zjistíš, že oba zápisy sou v tomto případě zhruba stejně rychlé. Jen u toho tvého se člověk víc napíše a udělá si kód víc nepřehledný :) „nedoporučuji používat regulární výrazy při každém načtení stránky, jednak to sníží zátěž na serveru a zároveň to taky zvýší rychlost načítání“ O tomhle by se dalo spekulovat celé hodiny. :) |
||
Časová prodleva: 16 let
|
0