Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Tekst w bazie danych.
mayu11
post
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

Ostrzeżenie: (0%)
-----


Mam problem... zrobiłem system newsów i nie wiem jak zrobić automatyczne entery w bazie danych (a wiem, że jakoś się da).

Chcę np. wysłać przez textarea i, żeby przy wczytaniu (do edycji, lub wyświetleniu na stronie głównej) automatycznie zawierało "enter", zamiast <br>.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
luck
post
Post #2





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Przed zapisem do bazy, albo po odczycie potraktuj wynik odpowiednią funkcją:
  1. str_replace("\n", '<br />', $string);
albo
  1. nl2br($string)

Zależy w którą stronę potrzebujesz.


--------------------
Go to the top of the page
+Quote Post
mayu11
post
Post #3





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

Ostrzeżenie: (0%)
-----


Chodzi mi o to, by w bazie NIE BYŁO (!) wpisów tego typu.
Go to the top of the page
+Quote Post
luck
post
Post #4





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Więc zamień miejscami dwa pierwsze parametry funkcji str_replace().


--------------------
Go to the top of the page
+Quote Post
mayu11
post
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

Ostrzeżenie: (0%)
-----


Ale będzie wtedy w bazie "\n" czy może się mylę?
W treści newsa też ma się nie pisać "<br />"

Ten post edytował mayu11 12.04.2010, 21:31:04
Go to the top of the page
+Quote Post
luck
post
Post #6





Grupa: Zarejestrowani
Postów: 317
Pomógł: 58
Dołączył: 6.11.2005

Ostrzeżenie: (0%)
-----


Jak zamienisz <br /> na "\n" to w bazie zapiszą się "entery". Pytałeś "jak zrobić automatyczne entery w bazie danych", więc myślałem, że o to Ci chodzi.


--------------------
Go to the top of the page
+Quote Post
mortus
post
Post #7





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Mamy pole:
  1. <textarea name="content"></textarea>
I wpisujemy do niego przykładową treść (wpisujemy dokładnie tak, jak to przedstawia kod poniżej):
Kod
Tekst w pierwszej linii
Tekst w drugiej linii
Tekst w trzeciej linii
Po przesłaniu formularza tekst możemy pobrać ze zmiennej $_POST['content'] i przypisać do zmiennej $tekst:
  1. $tekst = $_POST['content'];
Zawartość zmiennej $tekst będzie następująca:
Tekst w pierwszej linii\nTekst w drugiej linii\nTekst w trzeciej linii
przy czym '\n' to niewidoczny dla nas znak przejścia do nowej linii. Przeglądarka nie potrafi zinterpretować '\n' jako przejścia do nowej linii, dlatego jeśli chcemy wyświetlić wiadomość tak, jak została wpisana, musimy zamienić znaki przejścia do nowej linii na odpowiedni kod html. Zadanie to spełnia funkcja nl2br, która automatycznie zamienia wszystkie '\n' na '<br />' (odpowiednikiem tej funkcji jest str_replace("\n", '<br />', 'tekst')). Zatem zastosujmy funkcję:
  1. $wersja_html = nl2br($tekst);
Teraz zmienna $wersja_html zawiera ciąg znaków:
Tekst w pierwszej linii<br />Tekst w drugiej linii<br />Tekst w trzeciej linii
który przez przeglądarkę jest wyświetlany tak, jak w kodzie z drugiego listingu. Jeśli chcemy się całkowicie pozbyć znaków przejścia do nowej linii możemy zastąpić je np. spacjami:
  1. $nowy_tekst = str_replace("\n", ' ', $tekst);
Zawartość zmiennej $nowy_tekst będzie następująca:
Tekst w linii pierwszej Tekst w linii drugiej Tekst w linii trzeciej
Jednak w tej chwili nie możemy już wyświetlić (w ogóle) tekstu tak, jak był wpisywany.
I przykład:
  1. <?php
  2. ini_set('display_errors', 1);
  3.  
  4. if(!empty($_POST['content']) ) {
  5. $tekst = $_POST['content'];
  6. $wersja_html = nl2br($tekst);
  7. $inny_teskt = str_replace("\n", ' - ', $tekst);
  8. echo 'tekst zawierający znaki przejścia do nowej linii \'\n\', przeglądarka ich nie interpretuje<br />';
  9. echo stripslashes($tekst);
  10. echo '<br /><br />tekst zawierający kod html przejścia do nowej linii \'&lt;br /&gt;\', przeglądarka je interpretuje<br />';
  11. echo $wersja_html;
  12. echo '<br /><br />tekst, który zawiera znaki spacji zamiast znaków przejścia do nowej linii, nie możemy go wyświetlić tak, jak był wpisany:<br />';
  13. echo $inny_teskt;
  14. }
  15. ?>
  16. <form action="" method="post">
  17. <textarea name="content"><?php echo isset($tekst) ? $tekst : ''; ?></textarea><br />
  18. <input type="submit" name="action" value="send" />
  19. </form>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:42