[PHP]Problem z odstępami

0

Google nic nie poradziło, więc zostałem zmuszony do założenia owego tematu ;)

W jaki sposób zamienić w podanym ciągu znaków podwójne odstępy między wierszami (entery) na inny ciąg znaków np. '

'?

Próbowałem zastosować coś takiego:
$tekst = preg_replace("/\n\n/", "</p><p>", $tekst);
ale niestety nie działa...

Chyba, że jest lepszy sposób na dodawanie znaczników

oraz

do każdego akapitu tekstu.</p>
0

Moze rowniez byc tak:

$tekst = str_replace("\r\n", "\n", $tekst);//nowa linia moze byc zapisana za pomoca \r, \r\n oraz \n, wiec pasuje obsluzyc wszystkie przypadki
$tekst = str_replace("\r", "\n", $tekst);
$tekst = str_replace("\n\n", "</p><p>", $tekst);

Ale musisz jakos przypilnowac poczatku pierwszego akapitu i konca ostatniego.

0

a nie lepiej cos w ten desen:

<?
$tekst = str_replace("\r\n", "\n", $tekst);
$tekst = preg_replace("/(.*)\n\n/", "<p>$1</p>", $tekst);
?>
0

Dzięki za odpowiedzi, lecz jest jedno ale...

Chodzi mi o podwójne odstępy (dwa entery) i tylko je chcę zamieniać na akapity. W akapicie może zdarzyć się przejście do nowej linii (pojedynczy enter). Obecnie niestety zamienia mi nawet pojedyncze przejście do nowej linii na akapit.

Będę wdzięczny za zmodyfikowanie podanych skryptów. Z góry dziękuję.

0

Może zamiast szukać po enterach, podziel wg. enterów i poszukaj pustej linii.

0

Newbie_bb: cos musiales pomieszac, niemozliwe zeby to dzialalo na 1 enter :>

0

Możliwe, ale Twój kod nie działał... Nawet po jednym enterze wstawiał nowy akapit. A kopiować to ja potrafię ;)

Teraz dopiero sprawdziłem rozwiązanie od johny_bravo i wszystko śmiga ;) Wielkie dzięki za pomoc!

0

rzeczywiście mój błąd [wstyd]

0

Ok to dziala na 99,9% tak jak chcesz :)

$tekst = str_replace("\r\n", "\n", $tekst);
$ary_tekst = explode("\n\n", $tekst);
$tekst = "";
foreach ($ary_tekst as $p)
	$tekst .= "<p>" . $p . "</p>";

1 użytkowników online, w tym zalogowanych: 0, gości: 1