Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyswietlanie htmla
Forum PHP.pl > Forum > PHP
Kubus
Witam,

Napisalem mala funkcje do tego, aby osoby wrzucajace tekst w panelu i majacy mozliwosc uzywania htmla i chcieli wyswietlic kod htmla, nie musieli go konwertowac

  1. <?php
  2. return preg_replace ("/{html}(.+){/html}/e", "htmlspecialchars ('1', ENT_QUOTES)", $string);
  3. ?>


Kod ladnie dziala, tekst umiesczony pomiedzy znaczniki {html} a {/html} jest odpowiendio wyswietlany, pod warunkiem, ze wszystko jest w jednej linijce, jak sie trafi w srodku enter, to sie sypie.... czy ".+" nie oznaczaja tez znakow chr(10) i chr(13)?
siemakuba
Domyślnie . nie łapie znaków nowej lini. Możesz to jednak zmienić dodając modifier s - wtedy kropka będzie obejmowała również i te znaki.

  1. <?php
  2. return preg_replace ("/{html}(.+){/html}/es", "htmlspecialchars ('1', ENT_QUOTES)", $string);
  3. ?>


pozdr.
Kubus
Dziala, ale nie do konca jak powinno. Chpdzi o to, ze jak w tekscie uzyje kilka razy te znacnziki {html} {/html}, to on bierze pierwszy i ostatni, czyli

  1. ala {html}<b>ma</b>{/html} kota a {html}<b>kot</b>{/html} ma ale


... zamiast oddzielnie potraktowac {html}<b>ma</b>{/html} i {html}<b>kot</b>{/html} to on bierze na raz {html}<b>ma</b>{/html} kota a {html}<b>kot</b>{/html}

Nie za bardzo wiem jak to ograniczyc, czy dlugoscia tekstu, czy inaczej.... worriedsmiley.gif
Hacker
Pattern Modifiers
/U

  1. <?php
  2. return preg_replace ("/{html}(.+){/html}/esU", "htmlspecialchars ('1', ENT_QUOTES)", $string);
  3. ?>
Kubus
Dzieki, nie pomyslalem o przelacznikach, musze o nich wiecej poczytac biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.