Autor Zpráva
Milan Sobotka
Profil
Zdravím.
Potřeboval bych se zeptat, jak mám vložit celkem velký a obsáhlý kó s html ale i php do PHP echa... Vím, že se to dá řešit výměnou uvozovek nebo tak podobne ale je to kód asi s 2000 řádky a všude je něco jinýho. Navíc v tom php jsou naopak jednoduchý uvozovky a celý by se to mlátilo a navíc bych si nějaký uvozovky ani nevsiml. A tak bych se nutně potreboval zeptat, jestli není nějaká jiná možnost... Tuto problematiku řeším už celkem dlouho a nevím si radfy. Předem děkuji za rady. :-)
Joker
Profil
Milan Sobotka:
Pro dlouhý kód v PHP se hodí heredoc syntaxe.

Ale nejlepší by bylo ten kód separovat do zvláštního HTML souboru (nebo šablony).
juriad
Profil
1) Můžeš dočasně přerušit PHP:

<?php
if (1 == 1) {
?>
<span>kus html</span>
<?php
} else {
?>
<span>toto nikdy nenastane</span>
<?php
}
?>

2) Můžeš použít hereodoc (http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)

echo <<<END
toto se chová jako řetězec, ale můžeš tu bez obav používat jakékol uvozovky
poslení řádek musí být  stejný jako je slovo za těmi třemi šipkami na začátku
END;

3) Můžeš použít nějaký šablonovací systém.
Milan Sobotka
Profil
Takže chápu to dobře, že když dám echo <<<END
zde dlouhy jakykoliv text, skript, php skript
END;
Tak se mi vše krásně vypíše?
juriad
Profil
Milan Sobotka:
A když to vyzkoušíš, tak se to i dozvíš. :-)
Milan Sobotka
Profil
Už zkouším. Zatím perfekt. :) Akorat ted nevim co s tim protoze mam html a v nem php a pak zase html a porad dokala... Musim HODNE premislet kam to end dat. :)
Jan Tvrdík
Profil
Milan Sobotka:
Akorat ted nevim co s tim protoze mam html a v nem php a pak zase html a porad dokala
Nebylo by v tom případě skutečně lepší použít nějaký šablonovací systém? Kdysi jsem udělal pro ukázku takové malé demo.
Milan Sobotka
Profil
No ten šablonovací systém, to vůbec netuším co to je, jak to funguje atd...


Tak to END mi nefunguje... Asi jsem nekde udelal chybu... a to musi byt to echo pred kazdym <<<END?


Je tohle dobře? :
 
       <?php echo <<<END
       
       <form method='post' action='zpracovat2.php' accept-charset='utf-8'> 
       <select name="1">
           <option >1</option>
           <option >2</option>
           <option >3</option>
           <option >4</option>
           <option >5</option>
           <option >6</option>
           <option >7</option>
           <option >8</option>
           <option >9</option>
           <option >10</option>
           <option >11</option>
           <option >12</option>
           <option >13</option>
           <option >14</option>
           <option >15</option>
           <option >16</option>
           <option >17</option>
           <option >18</option>
           <option >19</option>
           <option >20</option>
           <option >21</option>
           <option >22</option>
           <option >23</option>
           <option >24</option>
           <input type="submit" >
       </select>
       </form>
    
END;

$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '1') {
  echo "Skript1";
}

$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '2') {
  echo "Skript2";
}

$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '3') {
  echo "Skript3";
}

$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '4') {
  echo "Skript4";
}

$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '5') {
  echo "Skript5";
}

if(isset($_POST['1']))
{ 
  $f =fopen("./radky.txt", "w");
  fwrite($f, "".$_POST['1']."");
  fwrite($f,"\n");
  fclose($f); 
}
Joker
Profil
Milan Sobotka:
Manuál k té heredoc syntaxi jste četl?

Reakce na edit:

Tak v té ukázce by prostě jen stačilo přesunout <?php až za ten HTML kód.
Milan Sobotka
Profil
Ješte ne... Ted se na to podívám. :-)


No ted uz jo ale nejsem o moc chytrejsi... :D


Obavam se, ze tohle je moc narocny...
lionel messi
Profil
Milan Sobotka:
Ješte ne... Ted se na to podívám. :-)
Lepší postup je prečítať návod pred použitím. :-)

Inak stačí to tak, ako písal Joker, teda:
       <form method='post' action='zpracovat2.php' accept-charset='utf-8'> 
       <select name="1">
           <option >1</option>
           <option >2</option>
           <option >3</option>
           <option >4</option>
           <option >5</option>
           <option >6</option>
           <option >7</option>
           <option >8</option>
           <option >9</option>
           <option >10</option>
           <option >11</option>
           <option >12</option>
           <option >13</option>
           <option >14</option>
           <option >15</option>
           <option >16</option>
           <option >17</option>
           <option >18</option>
           <option >19</option>
           <option >20</option>
           <option >21</option>
           <option >22</option>
           <option >23</option>
           <option >24</option>
           <input type="submit" >
       </select>
       </form>
    
<?php
$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '1') {
  echo "Skript1";
}
 
$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '2') {
  echo "Skript2";
}
 
$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
//a ďalší kód, pre prehľadnosť skrátené
?>
Milan Sobotka
Profil
No takhle jsem to myslel ale tohle je ukazka z 2200 radku a porad se tam micha php a html... :-)
mimochodec
Profil
Milan Sobotka:
Ještě si jednou pořádně přečti juriadovu první radu.

Kromě toho: opakování tohoto
$obsah = file_get_contents ('./radky.txt');
$radky = explode("\n", $obsah);
$druhy_radek = $radky[0]; # indexuje se od nuly
if ($druhy_radek == '1') {
  echo "Skript1";
}
s tím, že se mění jen číslo, je blbost. A jestli jde o nějaký sled formulářů, kde se podle selectu z jednoho kroku načítají hodnoty do selectu v druhém kroku, šlo by to všechno realizovat jedním php souborem, který by nebyl o moc delší, než to, co píšeš v #8. popiš pořádně, co chceš a dostaneš lepší radu.
Milan Sobotka
Profil
mimochodec:
Prostě. :-) Potřeboval bych mít php echo, ve kterém bude nějaký dlouhý php, html, css, js kod... A to se mi nedaří... :-)
juriad
Profil
Milan Sobotka:
Moc to kombinuješ. Zkus popsat, o co se snažíš.
Skoro nikdy nepotřebuješ v PHP tvořit CSS nebo JS. Obchází se to tak, že pomocí PHP nastavuješ elementům třídy a id, a těch se pak CSS a JS chytne.

Uvnitř echa také nemůžeš mít PHP kód, můžeš tam maximálně použít proměnnou pro výpis.
Milan Sobotka
Profil
Jo to vim ze PHP nemuze byt v php... CSS chapu. To muzu dat na jinej soubor. JS taktez no proste v echu budu mit html ale to se mi nedari...
tiso
Profil
Milan Sobotka: skús doplniť čo chcel juriad: „Moc to kombinuješ. Zkus popsat, o co se snažíš.
Milan Sobotka
Profil
PHP nastavitelná tabulka...
_es
Profil
Milan Sobotka:
PHP nastavitelná tabulka...
To má byť čo? Vygeneruješ v PHP HTML kód tabuľky - aký len chceš. Kde, kedy, má byť „nastaviteľná“?
mimochodec
Profil
Milan Sobotka:
Z #8, ř. 36-69 je zřejmé, že to chceš prostě nějak uplácat, aniž by ses třeba jen minimálně zamyslel, co to dělá. Neumíš ani popsat, co chceš. Těžko radit.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: