🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #219946

Re: formularze i wyrażenia regularne problem

#219946
From: slx
Date: Thu, 06 Aug 2009 15:39
26 lines
2034 bytes
Krzysiek napisał:
>>> Mam pytanko, otóż mam jakiś $tekst=$teksPoczatek.$tekstKoniec
>>> Zmienne $teksPoczatek i $tekstKoniec są przekazywane z formularza
>>> $tekst jest następnie w postaci HTML wysyłane mailem.
>>>
>>> Problem pojawia się gdy próbuję zastąpić \n na <br>
>>> $text=str_replace('\n', '<br>', $textPoczatek.$textKoniec)
>>> - pomiędzy $teksPoczatek i $tekstKoniec wskakuje mi kilka <br> a
>>> chciałbym tylko jedno :).

Po pierwsze, to  '\n' nie oznacza nowego wiersza, tylko dwa znaki: ukośnik 
i literę n. Powinieneś użyć "\n".


> no ale trim() usuwa wszytkie \n – chodzi o to żeby jedno \n bądź więcej, 
> bądź \n kilka znaków i znowu  \n zostało zastąpione jednym <br>

Myślę, że trzeba to zrobić w  dwóch podejściach:

$Text = "123456789\n\n\n\n123456\n1\n2\n345\n7890";
var_dump($Text);
// zamiana znaków nowego wiersza oddzielonych max 3 innymi znakami na spacje
$Text = preg_replace('/\n([^\n]{1,3})(?=\n)/', ' $1', $Text);
// zamiana 1 lub więcej znaków nowego wiersza na <br>
$Text = preg_replace('/\n+/', '<br>', $Text);
var_dump($Text);
Technical Details
Message-ID: <4a7af94b$1@news.home.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.home.net.pl!not-for-mail
References: <h4ud9u$l0g$1@node2.news.atman.pl> <h4uei4$1n$1@nemesis.news.neostrada.pl> <h51ifd$1e0$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Date: Thu, 06 Aug 2009 17:39:55 +0200
From: slx <nomail@nomail>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.16) Gecko/20080708 Thunderbird/2.0.0.16 Mnenhy/0.7.5.666
MIME-Version: 1.0
Newsgroups: pl.comp.lang.php
Subject: Re: formularze i wyrażenia regularne problem
References: <h4ud9u$l0g$1@node2.news.atman.pl> <h4uei4$1n$1@nemesis.news.neostrada.pl> <h51ifd$1e0$1@node2.news.atman.pl>
In-Reply-To: <h51ifd$1e0$1@node2.news.atman.pl>
NNTP-Posting-Host: 83.16.144.149
Message-ID: <4a7af94b$1@news.home.net.pl>
X-Trace: news.home.net.pl 1249573195 83.16.144.149 (6 Aug 2009 17:39:55 +0200)
Organization: home.pl news server
Lines: 26
X-Authenticated-User: slx.wirelesslan
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.home.net.pl!not-for-mail
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit