Skocz do zawartości

[PHP] zamiana < na <


gnysek

Rekomendowane odpowiedzi

  • Administratorzy

Słuchajcie mam taki problem. Zrobiłem sobie w Wordpressie kolorowanie składni. Ale jest jeden problem, ponieważ dla bezpieczeństwa wordpress zapisuje < jako <, > jako > a & jako &. No i jak kod ląduje w tagu <pre> to mam kaszankę.

Wyjściem jest zamiana tych trzech znaków w tagu PRE, na takie HTMLowe, ale jak zwykle nie wiem jak zrobić to za pomocą preg_replace. Pomoże ktoś ?

 

 

Alternatywna droga:

Zamieniamy <pre> na <div>, ale wtedy w tagu div potrzebuję zamienić \n na <br/> - kod praktycznie ten sam, nadal z preg_replace.

 

Chyba nigdy nie pojmę tych wyrażeń regularnych -_-

Odnośnik do komentarza
Udostępnij na innych stronach

To może użyj str_replace, według mnie prostsze w obsłudze. Za bardzo nie rozumiem o co ci chodzi.

 

$wynik = str_replace(array(
                             "<",
                             ">"
), array(
         "<",
         ">"
), $tekst);

Odnośnik do komentarza
Udostępnij na innych stronach

To nie możesz zmodyfikować parsera, żeby szukał znaków & lt;, a nie <?

 

function myCallback( $matches )
{
     return str_replace( array( '& lt;', '& gt;' ), array( '<', '>' ), $matches[0] );
}
$output = preg_replace_callback( '/<pre>(.+?)<\/pre>/i', 'myCallback', $input );

Usuń tylko spacje.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...