Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z echo
Forum PHP.pl > Forum > Przedszkole
czerep
Witam mam drobny problem z wywołaniem daty która jest wstawiana w tekst za pomocą znaczników, a dopiero później w PHP wstawiany jest prawidłowy kod daty.
Poniżej przedstawiam kod który zmienia znaczniki na kod:
  1. <?php
  2. function my_nl3br($str)
  3. {
  4. $str = str_replace("[date]", "'.date(", $str);
  5. $str = str_replace("[/date]", ").'", $str);
  6. $str = str_replace("[imieniny]", '.$imieniny.', $str);
  7. return $str;
  8. }
  9. ?>

Następnie próbuje wywołać tekst ze zmienionymi znacznikami na kod:
  1. <?php
  2. $text = my_nl3br($text);
  3. echo $text;
  4. ?>

Niestety po otwarciu skryptu w przeglądarce wywala mi błąd T_ECHO. Próbowałem rozwiązać to na wiele sposobów jednak żaden nie pomógł.
nospor
nie: $text = echo $text;
a: echo $text;
czerep
To i tak nic nie zmieni bo muszę te dane zapisać i przesłać dalej do klienta.
nospor
ale oco ci chodzi? PRzeslac do klienta? To wlasnie robi echo.

echo 'Jol, klient, widzisz wlasnie mnie';

Klient zobaczy:
Jol, klient, widzisz wlasnie mnie
smile.gif
czerep
Dobra powiedzmy że jest to skrypt erds i nie ma on wyświetlić rezultatów na ekranie monitora ale ma je wysłać do shoutcasta przetworzone. A więc muszę je zapisać do jakiejś zmiennej, ale już z wywołaną datą.
kwiateusz
przypisanie do zmiennej to $text = my_nl3br($text); i tyle... $text bedzie zawierał to co zwróciła funkcja
czerep
Tak ale wtedy wyświetli coś takiego Dziś jest: date(dM) zamiast zamienić to na datę. A chodzi mi o to aby to date(dM) zmieniało na konkretną datę podaną w znacznikach.
oscar17
Chodzi ci o coś takiego:
  1. <?php
  2. function my_nl3br($str)
  3. {
  4. preg_match('/[date]([^[]+)[/date]/', $str, $matches);
  5. $date = $matches[1];
  6. preg_match('/[imieniny]([^[]+)[/imieniny]/', $str, $matches);
  7. $imieniny = $matches[1];
  8. return 'dnia '.date("d M", strtotime($date)).' Imieniny obchodzi: '.$imieniny;
  9. }
  10.  
  11. echo my_nl3br('[date]2008-02-03[/date] [imieniny]oskar[/imieniny]');
  12. ?>
czerep
Niestety nie ale już prawie doszedłem do tego jak się okazuje nie trzeba nigdzie stosować echo. Ogólnie jest już dobrze gdyby chciało jeszcze wyświetlać datę, ale problem rozwiąże za pomocą funkcji.
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.