Elikkä ongelmana on se, että otan tekstilaatikossa kirjoitetun uutisen tällä skriptillä, mutta kun haluaa tehdä rivinvaihdon pitää kirjoittaa <br>, haluaisinkin niin, että kun painaa enter-näppäintä se kirjoittaa tuohon tekstitiedostoon <br>.
Eli esimerkiksi näin: eka rivi<br>toinen rivi<br>kolmasrivi.
Miten tälläisen saisi toteutettua?
<?php $viesti = stripslashes(htmlspecialchars("".$_POST['viesti']."")); $viesti = str_replace("\n", "<BR>\n", $viesti); $paivamaara = date("d.m.Y H:i:s"); $avaa = fopen("uutiset.txt", "a"); fputs($avaa,"".$_POST['nimi']."|"); fwrite($avaa, "$paivamaara"); fwrite($avaa, "|"); fputs($avaa,"".$_POST['otsikko']."|"); fputs($avaa,"".$_POST['viesti'].""); fputs($avaa, "\r\n"); fclose($avaa); header( "Location: ../index.php" ); ?>
$viesti = str_replace("\n", "<BR>\n", $viesti); fputs($avaa,"".$_POST['viesti']."");
Kirjoita toi muokattu alkuperäisen sijaaan.
Nyt meni kyllä yli ymmärryksen, siis noihan on samat komennot mitä tuolla jo lukee?
helpoiten onnistuu nl2br-functiolla lukuvaiheessa, ei tule <br>:iä tekstiin, pelkästään html:n sekaan
$file = fopen("uutiset.txt", "r");
while(!feof($file))
{
echo nl2br(fgets($file));
}
fclose($file);
Uutisen tulostaja on tälläinen:
<?php $file = file("admin/uutiset.txt"); $file = array_reverse($file); $i = 0; $filu = file("admin/uutiset.txt"); $mont2 = count($filu); $yht = $mont2; echo "<i>Yhteensä <b>$yht</b> uutista</i><br><hr>"; foreach ($file as $i => $value) { if ($i < 4) { $eroteltuviesti = explode("|", $value); echo ('<table>' . 'Kirjoittaja: ' . '<b>' . $eroteltuviesti[0] . '</b>' . ' Julkaistu: ' . '<b>' . $eroteltuviesti[1] . '</b>' . '<br>' . '<h1>' . $eroteltuviesti[2] . '</h1>' . '<br>' . $eroteltuviesti[3] . '</table><hr>'); } $i++; } ?>
Pelto kirjoitti:
Nyt meni kyllä yli ymmärryksen, siis noihan on samat komennot mitä tuolla jo lukee?
Niko tarkoitti, että korjaa rivi muotoon
fputs($avaa,"".$viesti."");
Eli kirjoitat tuon muokatun merkkijonon sinne tiedostoon sen sijaan, että kirjoitat suoraan tekstikentän sisällön ($_POST...).
Ja vielä fputs( $avaa, $viesti )
, eli usein näkee ihan turhaan ympättävän tuota tyhjää merkkijonoa muuttujiin. Location otsakkeelle absoluuttista URLia speksien mukaan, jotenkin näin jos nyt satun oikean indeksin muistamaan:
<?php $host = $_SERVER[ 'SERVER_NAME' ]; $page = 'index.php'; header( "Location: http://{$host}/{$page}" ); ?>
Juu kiitoksia, nyt sain toimimaan halutulla tavalla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.