Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Output buffer, zmiana contentu przed wyświetleniem

Napisany przez: Strelok 13.02.2018, 21:42:47

Witam.

Potrzebuję wskazówek odnośnie rozwiązania pewnego problemu.
Mianowicie planuję napisać prosty skrypt, który będzie podpinany do strony internetowej (np. w index.php), a jego zadaniem ma być przechwycenie odpowiedzi, która trafia do przeglądarki, następnie wykonanie na przechwyconej do bufora zawartości dowolnych operacji (głównie typu string replace) i następnie zwolnienie zmienionej zawartości.
Skrypt ma być pewnego rodzaju rozbudową callbacka z użyciem ob_start(). Klasa z metodami, gdzie każda metoda odpowiada za inne operacje na tym samym przechwyconym do bufora "contencie".

  1. function callback($buffer)
  2. {
  3. // replace all the apples with oranges
  4. return (http://www.php.net/str_replace("apples", "oranges", $buffer));
  5. }
  6.  
  7. http://www.php.net/ob_start("callback");


Sposób w jaki jest to realizowane powyżej chciałbym rozbudować do formy jaką opisałem.
Główny problem - w jaki sposób złapać content np. do zmiennej i na tej zmiennej stosować dowolne metody jednej klasy i na koniec zwrócić zmieniony już bufor.

Oczywiście znalazłem skrypty, które realizują przechwycenie contentu do zmiennej poprzez ob_get_contents(), lecz owy content w znalezionych przykładach jest wyświetlany tuż przed ob_get_contents() na potrzeby danego przykładu:

  1. http://www.php.net/ob_start();
  2. http://www.php.net/echo "Hello ";
  3. $out1 = http://www.php.net/ob_get_contents();
  4. http://www.php.net/echo "World";
  5. $out2 = http://www.php.net/ob_get_contents();
  6. http://www.php.net/ob_end_clean();
  7. http://www.php.net/var_dump($out1, $out2);


Zatem jak zrealizować to w taki sposób, aby przechwycić cały content strony metodą z callbacka i jednocześnie zapisać to w jakiejś zmiennej, na której będzie można wykonywać dowolne operacje odrębnymi metodami z klasy?

Z góry dziękuję za pomoc.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)