[PHP]Problem z odstępami

[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>
johny_bravo
  • Rejestracja:około 19 lat
  • Ostatnio:ponad 13 lat
0

Moze rowniez byc tak:

Kopiuj
$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.


You need to learn how to walk
before you can run
nediam
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 15 lat
0

a nie lepiej cos w ten desen:

Kopiuj
<?
$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ę.

SZ
  • Rejestracja:ponad 21 lat
  • Ostatnio:ponad 15 lat
  • Postów:3356
0

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


Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir "Szczawik" Włodkowski
nediam
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 15 lat
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!

nediam
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 15 lat
0

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

nediam
  • Rejestracja:około 22 lata
  • Ostatnio:ponad 15 lat
0

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

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.