Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyrażenia regularne, uśmieszki z bbcode
Forum PHP.pl > Forum > PHP
KCG
Chciałbym skorzystać z funkcji uśmieszków na stronie do której mam forum phpBB3. Skopiowałem część kodu z klasy forum i kod wygląda tak:
  1. <?php
  2. $sql = 'SELECT * FROM `phpbb_smilies` ORDER BY LENGTH(`code`) DESC';
  3. $res = $mysql->query($sql);
  4. while ($smil = $mysql->fetch_array($res)) {
  5.  $pattern = '(?<=^|[\n .])' . preg_quote($smil['code'], '#') . '(?![^<>]*>)';
  6.  $replacement = '<!-- s' . $smil['code'] . ' --><img src="forum/images/smilies/' . $smil['smiley_url'] . '" alt="' . $smil['code'] . '" title="' . $smil['emotion'] . '" /><!-- s' . $smil['code'] . ' -->';
  7.  $text = preg_replace($pattern,$replacement,$text);
  8. }
  9. ?>

Jednak po przejściu przez pętle $text jest pusta (zupełnie nic, nawet tekstu bez uśmieszków). Złe wyrażenie?

pzdr

Nikt nic nie wie? :|
Dodam, że w bazie `code` jest w formacie np. ':cry:'.
bim2
Daj echo $patter; i powiedz co zwraca smile.gif
KCG
Przykładowe:
(?<=^|[\n .])\:twisted\:(?![^<>]*>)
(?<=^|[\n .])\:mrgreen\:(?![^<>]*>)
(?<=^|[\n .])\:shock\:(?![^<>]*>)
Dałem echo w pętli, wyświetliło wszystkie te $paterrny, a tekstu w ogóle.
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.