[MySQL][HTML][PHP]Spacje i nowe linie - zapis |
[MySQL][HTML][PHP]Spacje i nowe linie - zapis |
2.11.2016, 15:37:31
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 2.11.2016 Ostrzeżenie: (0%) |
Cześć i czołem!
Być może istnieje już taki temat, szukałem ale nic nie znalazłem, jeśli się mylę to proszę o naprostowanie. Jak wygląda mój problem: mam zwykły formularz HTML, kodowany w utf-8, przesyłany do skryptu PHP. W skrypcie PHP zawartość pola textarea zapisuję w bazie danych MySQL. Co chciałbym uzyskać? Możliwość używania znaczników HTML w treści tego pola, z tym wyjątkiem, żeby tekst między <pre> a </pre> nie był potem przetwarzany na HTML, gdy chcę te dane z bazy wyciągnąć na stronę. Używałem:
Działało w miarę w porządku, problem jest taki, że jak dodam znak nowej linii między <pre> i </pre> to zawartość między tymi znacznikami jest zupełnie ignorowana. Kolejna kwestia, próbowałem używać funkcji trim po odczycie danych, aby usunąć nowe linie, i dopiero wtedy korzystać z preg_replace_callback, ale okazało się że trim w ogóle nie reaguje na wszelkie nowe linie, brak efektów, podglądałem źródło i kod jest taki jaki został zapisany do bazy danych (razem z nowymi liniami i wielokrotnymi spacjami). Bardzo proszę kogoś obcykanego w kodowaniu znaków o pomoc, bardzo zależy mi na wytłumaczeniu które zrozumiem, albo przynajmniej będę w stanie do niego zadać jakieś pytania. Próbowałem używać str_replace przy zapisywaniu danych do bazy: I bardzo mnie to zaskoczyło, bo okazało się że dane w bazie są widoczne razem z nowymi liniami i spacjami, ale na stronie już były w jednej linii. Teoretycznie było w porządku, usunęło mi też nowe linie i spacje z tekstu pomiędzy <pre> i </pre> przez co kod tam zawarty zlał się w jedną linię, co było niepożądane. Krótkie wyjaśnienie, aby było wiadomo o co mi chodzi: piszę mini-bloga z artykułami w których będzie można zawrzeć kod HTML do formatowania tekstu, lecz chciałbym też aby kod HTML między <pre> i </pre> był ładnie wyświetlany na stronie. Dziękuję serdecznie i pozdrawiam, Dawid Zaroda (Quis) ------------------------ @EDIT Dałem radę zrobić coś samemu, ale jest to raczej amatorszczyzna, chciałbym coś bardziej profesjonalnego Wstawię kodzik dla innych, może się przyda, po wczytaniu danych:
Gdyby ktoś miał dla mnie ciekawszą propozycję, to jestem zainteresowany. Pozdrawiam Ten post edytował Quis 2.11.2016, 15:46:35 |
|
|
2.11.2016, 17:36:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
Gdyby ktoś miał dla mnie ciekawszą propozycję, to jestem zainteresowany. Pozdrawiam
Coś takiego ? Ten post edytował KsaR 2.11.2016, 17:39:24 -------------------- |
|
|
2.11.2016, 19:33:41
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 2.11.2016 Ostrzeżenie: (0%) |
Niestety nie działa, podane dane:
Wynik na stronie:
Ale dałeś naprawdę ciekawą propozycję. Ten post edytował Quis 2.11.2016, 19:52:53 |
|
|
3.11.2016, 03:27:15
Post
#4
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
Dodałem tylko ENT_QUOTES, i skasowalem <pre></pre> z return. Przykładowe demo: https://eval.in/670887 Zwraca: Kod <b>test</b> <p><u>dsadasdsa</u></p> oninput="test('dsadsa');" <p><a href="http://google.pl/">sassdddfsfds</a></p> Czyli chyba tak, jak chciałeś. Edit. Forum zamienia automatycznie &# 039; (bez spacji) na ' Ten post edytował KsaR 3.11.2016, 03:34:36 -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 15:03 |