Re: php include

From: h! y n e k . l i p a (hynek.lipa@worldonline.cz)
Date: 30. 04. 2003, 11:08 CEST

  • Next message: Petr Wogurka: "Re: stranky o PHP"
    Petr Pokorny wrote:
    ------------------------------
    a od kdy pouzivas sve jmeno :)
    
    jo, bude to trosku delsi, tak uz mackejte delete ;)))
    
    
    > Koukam, ze si to pochopil jinak nez ja :(
    > IMHO Mirex chce vlozit vse co je mezi <body ...> a </body>, ne jen
    > to co je v <h1>.
    > Bohuzel ten regexp zmenit nedokazu (omezena kapacita meho chapani).
    > Je totiz treba pocitat s tim, ze body nemusi byt vzdy <body>, ale
    > treba <body onload='neco'>.
    ---------------------------------
    
    tak mozna to chapu jinak, blbej, ale co se da delat.
    
    uprava je naprosto jednoducha (regularni vyrazy jsou sice na pohled
    skarede, ale velmi jednoduche, teda pokud vis co chces)
    
    takze rekneme, ze mame tento soubor menu.html:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="cs">
    <head>
      <meta http-equiv="content-type" content="text/html;
    charset=windows-1250">
      <title
    </head>
    <body bgcolor="#FFFFFF">
    <h1>ahoj</h1>
     <h2>nazdar</h2>
        <p>dsfsdfsdfsdf</p>
     <h2>nazdar</h2>
        <p>dsfsdfsdfsdf</p>
     <h2>nazdar</h2>
        <p>dsfsdfsdfsdf</p>
    </body>
    </html>
    
    tak a pokud budu chtit vypsat vse co je v tele dokumentu (element
    body), tak regularni vyraz bude nasledujici:
    <?php
     $text = implode("", file("./menu.html"));
     $vyraz = '^(.+)<body([^<]*)(.+)</body>(.+)';
     $nahrada = '\\3';
    echo (ereg_replace($vyraz,$nahrada,$text));
    ?>
    
    vyraz jsem rozlozil a doplnil o tvuj dodatek k souboru (alespon k
    necemu jsi uzitecny;) ) a trosku to popiseme:
    
     $text - to je jasne, natahneme obsah souboru do promenne text
    
     $vyraz - ten obsahuje zhruba toto: prvni zavorka odpovida jakemukoliv
    textu, pak je zacatek presneho textu '<body', ale jelikoz nevim co
    vsechno obsahuje, tak mam druhou zavorku, kde rikam, ze konci u
    prvniho znaku '<', pak nasleduje jakykoliv text az po presny text
    '</body>' a za nim opet nasleduje jakykoliv text. ted mam precteny
    cely text a to co je v kulatych zavorkach '()' je ulozeno do promenne,
    ktere jsou ocislovany od 1 a volaji se takto dvemi zpetnymi lomitky a
    cislem promenne
    
    $nahrada - to uz je ted jasne, cely, pro mne, zajimavy text je ulozen
    v promenne cislo tri, tak si ji zavolam. pripadne to jeste muzu obalit
    treba nejakym tagem, napr. '<div id="menu"\\3</div>', ktery nastyluji
    
    
    a taky jde vyuzit tech poznamek, co navrhoval nekdo pred tim, tedy:
    soubor menu.html upravime takto:
    ...
    <h1>ahoj</h1>
    <!-- mixinc -->
     <h2>nazdar</h2>
        <p>dsfsdfsdfsdf</p>
    <!-- mixinc -->
     <h2>nazdar</h2>
    ...
    
    tzn. ze chci vkladat do co je mezi poznamkami 'mixinc', takze vyraz
    bude vypadat nasledovne:
     $vyraz = '^(.+)<!-- mixinc -->(.+)<!-- mixinc -->(.+)';
    
    ale jelikoz je hledany text ulozen v promenne cislo 2, tak nahrada
    musi znit takto:
    $nahrada = '\\2';
    
    
    jak proste, mily watsone ;)
    
    
    > -pp21-
    --------------------------------
    a je to on ;)
    
    
    - h! -
    http://www.hyneklipa.cz/
    
    P.S. nejsem ucitel, tak to neumim vysvetlit, ale je to proste takto
    

  • Next message: Petr Wogurka: "Re: stranky o PHP"

    This archive was generated by hypermail 2.1.6 : 30. 04. 2003, 11:08 CEST