Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica z powietrza
Forum PHP.pl > Forum > PHP
rzeka
Mam mały problem. Robię mini-bbcode i zatrzymuję się przy tagu [ht] ([html]), który ma za zadanie wykonywać kod html zawarty między znacznikami [ht] i [/ht]

  1. <?php
  2. $pokaz = '[ht]<b>asd</b>[/ht]';
  3. $pokaz = htmlspecialchars(trim($pokaz));
  4. $a = is_array($pokaz); //zwraca, ze nie jest tablica
  5. $pokaz = preg_replace_callback("#[ht](.*?)[/ht]#si", html_entity_decode, $pokaz); //zwraca blad, ze $pokaz to tablica
  6. print_r($pokaz);
  7. ?>


$pokaz poddaję htmlspecialchars oraz trim, gdyż mam również inne tagi w planach, a tag [ht] będzie dostępny jedynie dla adminów.

Pytanie brzmi: dlaczego zwraca, że zmienna pokaż to tablica?
Zamieniając $pokaz na $a również jest błąd.
mike
Pokaż treść tego błędu.
Coś mi się wierzyć nie chce, że tak Ci PHP mówi.
rzeka
Warning: html_entity_decode() expects parameter 1 to be string, array given in e:\php\www\netgamer.pl\index.php on line 18

przynajmniej tak to rozumiem... Jeśli nie uderzyłem się w głowę i przestałem rozumieć angielski, to dobrze to odczytuję winksmiley.jpg
ActivePlayer
a twoj drugi parametr w preg_replace_callback to stała ?:-)
rzeka
Z preg_* nigdy nie korzystałem. Drugi parametr gdzie?

Tj, źle się wypowiedziałem. Jedyny parametr podawany to $pokaz, zdefiniowana kilka linijek wyżej.
bne
  1. <?php
  2. $pokaz = preg_replace_callback("#[ht](.*?)[/ht]#si", html_entity_decode, $pokaz);
  3. ?>


html_entity_decode - jest tu użyty jako stała.

tak powinno zadziałać :

  1. $pokaz = preg_replace("#\[ht\](.*?)\[/ht\]#si", "\\1", html_entity_decode($pokaz));


(daje w html bo w [php] czasem przerabia a tu liczy sie każdy slash :])
rzeka
Zrobiłem ciut inaczej:

  1. <?php
  2. function bbcode_html ($str) {
  3. $str = html_entity_decode($str[1]);
  4. return $str;
  5. }
  6. ?>


i odwołanie w bbcode

  1. $str = preg_replace_callback("#\[html\](.*?)\[/html\]#si", "bbcode_html", $str);


specjalnie jako html daję, bo php psuje mi z deczka winksmiley.jpg
bne
I to ci działa? Bo śmiem w to powątpiewać...
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.