ďťż

Zmiana znaku nowej lini na <br> php

       

Podstrony


telcocafe

Pisze proste forum. Mam pole "textarea", w które wklepuje się treść postu. Zawartość pola jest następnie zapisywana w pliku textowym. Jednak jeżeli pisząc post wcisnę ENTER i zacznę pisać w nowej lini to zawarośc pola zostanie zapisana w pliku tak jak wyglądała w textarea. Co zrobić, żeby post był zapisywany w jednej lini, a wszelkie wystąpienia entera(nowej lini) zostawały zamienione na znaczniki <br>? Próbowałem funkcją nl2br(), ale nic z tego. Pomóżcie.



jak używasz nl2br? pokaż ten kawałek kodu, to wtedy można coś powiedzieć.

$topic=$_POST['ttxt'];    $topic=nl2br("$topic");    $topic.="\n";

'ttxt' to nazwa "textarea". Po zmianie znaków nowej lini na <br> na końcu dodaje dodaje /n. Jeżeli trzeba to moge wrzucić treść całej funkcji.

spróbuj tak:
$topic=nl2br($_POST['ttxt'])."\n";
w nl2br niepotrzebnie dajesz "". a po co \n na końcu?



qrcze niby nl2br działa, ale nie tak jak bym chcial. Przed tem post z enterem zapisywany był tak:
text text po enterze

teraz zapisywany jest tak:
text<br /> text po enterze

a chciałbym żeby był zapisywany tak:
text<br />txt po enterze

no to, zrób tak:
$sep = "\n"; $text = str_replace($sep, '<br />', $_POST['ttxt']); //ew dla poprawny na windowsach $text = str_replace("\r", '', $text)

teraz jest tak jak trzeba. wielkie dzięki za pomoc

napotkałem kolejny problem, który niejako wiąże się z tym w temacie. już mówię o co chodzi. Piszę forum oparte na plikach txt,żeby nabrać wprawy zanim przejdę do SQL'a. W jednym z plików mam taki kod:
$id=fopen("topics.txt", "w"); foreach($tmp_line as $val){        fputs($id,"$val\n");    }    fclose($id);

po zapisaniu w pliku topics.txt pojawiają się wszystkie potrzebne dane, jednak dodatkowo na końcu pliku dodawana jest jedna pusta linia. Jeżeli wywołam skrypt 10 raz podając te same dane to merytoryczna zawartość pliku się nie zmieni, ale na koncu będe mial 10 pustych lini. Nie przeszkadz to w dzialaniu innych poleceń, ale wygląda bardzo"nieelegancko". Próbowałem wstawiś if'a:
$id=fopen("topics.txt", "w");    foreach($tmp_line as $val){        if(($val=="\r")){            continue;        }        fputs($id,"$val\n");    }    fclose($id);
jednak to nic nie daje. Jeżeli zamiast "\r" wstawie "\n" to w pliku nic się nie zapisze. Skonczyły mi się pomysły, więc prosze o pomoc.


napotkałem kolejny problem, który niejako wiąże się z tym w temacie. już mówię o co chodzi. Piszę forum oparte na plikach txt,żeby nabrać wprawy zanim przejdę do SQL'a. W jednym z plików mam taki kod:
$id=fopen("topics.txt", "w"); foreach($tmp_line as $val){        fputs($id,"$val\n");    }    fclose($id);

po zapisaniu w pliku topics.txt pojawiają się wszystkie potrzebne dane, jednak dodatkowo na końcu pliku dodawana jest jedna pusta linia. Jeżeli wywołam skrypt 10 raz podając te same dane to merytoryczna zawartość pliku się nie zmieni, ale na koncu będe mial 10 pustych lini. Nie przeszkadz to w dzialaniu innych poleceń, ale wygląda bardzo"nieelegancko". Próbowałem wstawiś if'a:
$id=fopen("topics.txt", "w");    foreach($tmp_line as $val){        if(($val=="\r")){            continue;        }        fputs($id,"$val\n");    }    fclose($id);
jednak to nic nie daje. Jeżeli zamiast "\r" wstawie "\n" to w pliku nic się nie zapisze. Skonczyły mi się pomysły, więc prosze o pomoc.

nie pomyślałem o tym. dzięki za pomoc

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.