Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Rivinvaihdot tiedoston muokkauksessa

Sivun loppuun

d-hunter [04.05.2005 20:24:14]

#

Eli ongelma on seuraava:
Vieraskirjani ottaa uudet rivit aina uusina viesteinä.
Tätä varten olen laittanut seuraavanlaisen skriptan:

$viesti = str_replace("\n", "<br>", $viesti);

Kuitenkin, kun muokkaa admin-paneelista viestiä, rivit ovat tyyliin
<br>
<br>
<br>

..ja kun tallentaa muutokset, tämä ihanasti sekoittaa kirjan tyhjillä viesteillä.

Mikä neuvoksi?

Kape [04.05.2005 20:39:43]

#

Siin muokkauksessa ilmeisesti tulostaa johonki text areaan niin sitä tulostusta ennen toi.

$viesti = str_replace("<br>", "\n", $viesti);

ja sit kun tallennetaan muokkaus niin uudestaa

$viesti = str_replace("\n", "<br>", $viesti);

d-hunter [04.05.2005 21:02:00]

#

hmm
ei onnistunut....
käsittelevä tiedosto näyttää tältä:

$kirjoitettava = stripslashes($_POST['data']);
$tt = fopen("tekstiteidosto", "w");
fwrite($tt, "$kirjoitettava");
header("location: xxx.php");

tsuriga [04.05.2005 21:48:30]

#

Kirjoitusmodeksi a, w tyhjentää koko tiedoston.
EDIT: Ach so, vois lukea viestit ennen vastailua.

d-hunter [04.05.2005 21:58:11]

#

sen kuuluukin olla w, koska muokkaan tiedostoa, en lisää sen perään mtn

ajv [04.05.2005 22:37:09]

#

No miltä tiedoston _pitäisi_ näyttää muokkauksen jälkeen ja miltä se sitten näyttää? Ratkaisu on varmasti yksinkertainen, mutta kysymyksesi hieman epämääräinen. Jos sinne tulee noita ylimääräisiä rivinvaihtoja, niin KaPe:han tuossa jo mainitsi ratkaisun.

IcX [05.05.2005 11:43:14]

#

Korvaa teksti

$viesti = str_replace("\n", "<br>", $viesti);

tekstillä:

$viesti = str_replace("\r\n", "<br>", $viesti);

ajv [05.05.2005 12:50:25]

#

Jos nyt tarkkoja ollaan, niin:

$viesti = str_replace(array("\r\n","\r","\n"),"<br />",$viesti);

"\r\n" on ainoastaan Windowsin rivinvaihto. Unix-rivinvaihto sen sijaan on "\n" ja tottakai Macilläkin pitää olla erilainen rivinvaihto, ettei mene liian helpoksi: "\r" (korjatkaa, jos muistin jotain väärin)

d-hunter [06.05.2005 18:42:18]

#

ajv kirjoitti:

Jos nyt tarkkoja ollaan, niin:

$viesti = str_replace(array("\r\n","\r","\n"),"
",$viesti);

"\r\n" on ainoastaan Windowsin rivinvaihto. Unix-rivinvaihto sen sijaan on "\n" ja tottakai Macilläkin pitää olla erilainen rivinvaihto, ettei mene liian helpoksi: "\r" (korjatkaa, jos muistin jotain väärin)

Tuhannet kiitokseni, jos nekään riittää :)

wwwapu [06.05.2005 20:25:10]

#

Voi olla että olen vajaajärkinen, mutta mikä ero on

$viesti = str_replace(array("\r\n","\r","\n"),"<br />",$viesti);
//ja
$viesti=nl2br($viesti);

ajv [06.05.2005 20:41:44]

#

Tuo nl2br() ei poista sitä rivinvaihtoa, joten jos tekstitiedostossa data on riveittäin, niin tuo ei käy ;)

wwwapu [06.05.2005 21:09:29]

#

Höh. Olin oikeassa, vajaajärkinen mikä vajaajärkinen.

manuaali kirjoitti:

Inserts HTML line breaks before all newlines in a string

Siinähän se selvästi sanotaan


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta