Autor Zpráva
Janicek
Profil *
Přeji pěkný podvečer.
Potřeboval bych poradit s tímto kódem:

<?php

$text = <<<'TEXT'
for($CISLO = 0;$CISLO < 55;$CISLO++){
    echo $CISLO . "<br>\n";
}
TEXT;

$soubor = fopen("text.txt", "a+");
fwrite($soubor, $text);
fclose($soubor);

?>

Ale po vytvoření souboru se v něm nachází:

for( = 0; < 55;++){
    echo  . "<br>
";
}

Avšak já bych potřeboval, aby se v souboru zobrazilo:


1
2
3
4
5
6
7
..

Méně slov a více kódu :) Doufám, že moje ukázky vystihují to, s čím bych potřeboval poradit. Jde tedy něco takového vůbec udělat? Pokud ano, mohl by někdo upravit tento kód na funkční nebo dát dobrou radu? Děkuji
DJ Miky
Profil
Konstrukcí $text = <<<TEXT přiřadíš do proměnné $text samotný text, který se jako PHP kód nezpracovává, pouze se v něm nahradí případné proměnné (zde $CISLO) za jejich hodnotu (zde nic, protože není definovaná).

Stačí pouze nechat cyklus jako PHP kód a místo vypisování pomocí echo přidávat hodnoty do proměnné $text. Bude to vypadat takto:

$text = '';
for($cislo = 0; $cislo < 55; $cislo++) {
    $text .= $cislo . "\n";
}
// následné zapsání do souboru

Mimochodem, řadu čísel vygeneruješ jednodušeji pomocí funkce range() a spojíš je do řetězce pomocí funkce implode():

$hodnoty = range(0, 55);  // výsledkem je pole hodnot 0, 1, 2, ..., 55
$text = implode("\n", $hodnoty);  // spojí pole do řetězce a hodnoty proloží novým řádkem, tedy výsledkem bude 0\n1\n2...\n55
// následné zapsání do souboru stejným způsobem

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: