[php] Inteligentne NL2BR

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Ahelor
Posty: 14
Rejestracja: ndz lip 10, 2005 10:53 am
Lokalizacja: Jaworzno
Kontakt:

[php] Inteligentne NL2BR

Post autor: Ahelor »

Chciałbym serdecznie prosić drogich forumowiczy o pomoc przy stworzeniu kodu zamieniającego w ciągu znaków (dość długim) nowe linie (takie w formularzy, czyli \r\n) na <br />. Jednak cały problem w tym aby robił to inteligentnie.

Załóżmy że ktoś będzie chciał zrobić liste wypunktowaną:

<ul>
<li>adasd</li>
<li>dsaff</li>
</ul>

W takich miejscach aby nie wstawiało <br />. Czyli poprostu jeśli ostatnia linia kończy się > a następna po \r\n zaczyna się z < ma nie wstawiać <br />. Ma to jednak robić zawsze gdy są tam normalne litery, cyfry, spacje, znaki specjalne. Kombinowałem troche z preg_replace ale nie wychodziło tak jak trzeba.

Z góry dziękuję za pomoc.
Krzysztof Aszkiełowicz
Zaczyna działać
Zaczyna działać
Posty: 458
Rejestracja: pn maja 26, 2003 9:29 pm
Lokalizacja: Warszawa
Kontakt:

Re: [php] Inteligentne NL2BR

Post autor: Krzysztof Aszkiełowicz »

Spróbuj takie wyrażenie:

[php]<?php
$text = preg_replace("[^>]\r\n[^<]", "<br />", $text);
?>[/php]
ODPOWIEDZ