Autor Zpráva
Kukusak
Profil
Zdravím,
mám formulář, kde se po odeslání odešlou data do databáze. To funguje bez problémů...

Ale zároveň mám soubor start.php ve kterém je:

                    <div class="stahni-datum">
                      <h6>
                    <?php  
                      echo $datum;
                     ?>   
                      </h6>
                    </div>
to se v tom souboru opakuje 5x akorát s jinou proměnnou ($jmeno, $prijmeni, ...)

A já chci, aby při odeslání dat z formuláře se přepsali proměnné ve start.php na hodnoty z formuláře. To taky funguje. Ale chci, aby se mi to uložilo jako soubor $datum.php (třeba "452012.php") a nemůžu na to přijít...
Uloží se to jen když tam dám text z proměnné, kterej si napíšu sám (třeba $text = "ngdhdgh"; a pak fwrite($soubor, $text))
Zkoušel jsem to už dlouho a na internetu ani v diskusi jsem to najít nemohl, skončil jsem u tohoto nesprávného řešení:

                              $souburek = include 'start.php';                              
                              $soubor = fopen("start.php","a+");                         
                              fread($soubor, 1000);
                              fwrite($soubor, $souborek);
                              fclose($soubor);

Děkuji předem za pomoc...
Alphard
Profil
Ten htm obsah předejte jako string pomocí return.
Kukusak
Profil
a jak na to? :-)
Alphard
Profil
Ideálně ho zapsat do proměnné, to není třeba dál komentovat. To lze obejít bufferovacími funkcemi. Asi nejhezčí řešení je mít statickou šablonu, tu načíst, nahradit proměnné za klíčová slova a vytvořit nový soubor.
Kukusak
Profil
Alphard:
Asi nejhezčí řešení je mít statickou šablonu, tu načíst, nahradit proměnné za klíčová slova a vytvořit nový soubor
načíst pomocí fopen? a jak dál... pořád mi to nedává smysl... :-)
_construct
Profil *
nie
$souburek = include 'start.php';
ale
ob_start();
include 'start.php';
$souburek = ob_get_clean();
alebo
$souburek = fread(fopen('start.php', 'r'));
alebo
$souburek = file_get_contents('start.php');
Alphard
Profil
_construct:
$souburek = include 'start.php';
Fungovat může, ale include musí vracet obsah pomocí return, jak jsem psal na začátku.

Kukusak:
Jak kolega píše, nejlépe file_get_contents(), fread() takhle fungovat nebude, druhý parametr je povinný.

pořád mi to nedává smysl... :-)
Princip náhrady za proměnné třeba zde php šablona. Stačí výstup nevypisovat, ale zapisovat.
Kukusak
Profil
Díky to funguje (file_get_content), ale jak udělám, aby z proměnnejch byli hodnoty??
Z tohohle:
                    <div class="stahni-datum">
                      <h6>
                    <?php  
                      echo $datum;
                     ?>   
                      </h6>
                    </div>

Bylo tohle:
                    <div class="stahni-datum">
                      <h6>
                          7.5.2012
                      </h6>
                    </div>

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: