php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.04.2006, 10:50  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard Methode als gz_handler?

Hallo zusammen,

ist es möglich eine Methode einer Klasse als ob_gzhandler zu nutzen?
(Eine Funktion dafür zu definieren und zu nutzen geht einwandfrei)

Beispiel:
PHP-Code:
<?php
function newgzhandler($fullOutput) {
    
$fullOutput preg_replace("/[\s]+/i"" "$fullOutput);
    return 
gzencode($fullOutput,3);
}
ob_start("newgzhandler");      // geht einwandfrei
ob_start("klasse::methode"); // geht nicht
ob_start("\$this->methode"); // geht auch nicht
?>
Der Aufruf von ob_start würde in der Klasse stattfinden. Die gewünschte Methode ist in der gleichen Klasse, in der der Aufruf stattfinden soll.

Zweck des Ganzen:
1.) Der ob_gzhandler(); von PHP funktioniert bei mir nicht immer richtig.
2.) Ich möchte im Outputcache noch Whitespaces entfernen
Andreas ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.04.2006, 11:23  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

PHP-Code:
<?php
$cls 
= new WasAuchImmer();
ob_start(array(&$cls"methode")); // PHP4 Safe, PHP5 übergibt Referenzen auf Objekte automatisch
//oder 

ob_start(array(&$this"methode"));

?>
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline   Mit Zitat antworten
Alt 11.04.2006, 11:42  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hey Klasse, das scheint tatsächlich zu funktionieren. Danke.
Allerdings tritt nun ein weiteres Problem auf. Die Methode:
PHP-Code:
<?php
/** Neue Gzhandler, ob_gzhandler weist Fehler auf
 * @param string $fullOutput
 */
function ob_newgzhandler($fullOutput) { 
// Whitespaces entfernen
if($this->getRemoveWhitespaces())
    
$fullOutput preg_replace("/[\s]+/i"" "$fullOutput);

if(
strstr($_SERVER['HTTP_ACCEPT_ENCODING'],"gzip"))
    return 
gzencode($fullOutput,1);
else
    return 
$fullOutput;
}   
?>
behandelt $fullOutput so, dass ich Zeichensalat beim Aufruf erhalte. Ohne gzencode funktionierts klasse. Gibts da irgendwo ein Beispiel wie man gzippen muss, damit das überall funktioniert?
BTW:
Erstaunlicherweise funktioniert der oben genannte code einwandfrei, wenn er sich in einer Funktion und nicht in einer Methode befindet.
Andreas ist offline   Mit Zitat antworten
Alt 11.04.2006, 12:32  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hi Andreas.

Setz mal den Header explizit:
PHP-Code:
<?php
header
('Content-Encoding: gzip');
?>
Basti
Basti ist offline   Mit Zitat antworten
Alt 11.04.2006, 13:14  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Eigentlich sollte das der Output Buffer doch selber erledigten oder? Mhh komischerweise gehts so. Alles klar, Problem gelöst. Danke
Andreas ist offline   Mit Zitat antworten
Alt 11.04.2006, 14:14  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Zitat:
Zitat von Andreas
Eigentlich sollte das der Output Buffer doch selber erledigten oder?
Woher soll der OB denn wissen, dass du die Daten komprimierst? Woher soll
gzencode() wissen, dass die komprimierten Daten ausgegeben werden
sollen? Wer außer dir könnte diesen Job also erledigen, dem Client
mitzuteilen, dass gleich komprimierte Daten kommen?

Basti
Basti ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] OOP mit PHP 5, Methode kann nicht innerhalb der class ausgeführt werden dudi PHP Tipps 2008 6 04.07.2008 00:02
[Erledigt] GET methode - php skript in &amp;amp;lt;div Block&amp;amp;gt; einbinden Moritz PHP Tipps 2008 4 23.06.2008 14:12
[Frage] Mehrere Rückgabewerte in Methode pPanther PHP Tipps 2008 9 06.09.2007 13:14
Ermitteln ob Methode geerbt wurde oder nicht? MaMo-Net PHP Tipps 2007 23 14.04.2007 00:28
Auf static Methode von variabler Klasse zugreifen Riks PHP Tipps 2007 11 16.03.2007 15:08
Methode zum ver- und entschlüsseln Mano PHP Tipps 2007 10 17.08.2006 18:54
Methode kann Methode nicht verwenden PHP Tipps 2006 2 05.03.2006 21:30
Probleme mit der post methode PHP Tipps 2005-2 19 28.09.2005 15:28
[Erledigt] Rekursive Methode PHP-Fortgeschrittene 7 02.06.2005 15:09
PHP5: Klassenattribut für statische Methode, mit Vererbung PHP-Fortgeschrittene 9 24.05.2005 09:35
Erzeugung eines neuen Objektes in einer statischen Methode PHP-Fortgeschrittene 8 25.04.2005 21:23
Methode aus einer anderen Methode aufrufen PHP Tipps 2005 3 02.03.2005 10:07
Methode kapseln PHP Tipps 2004 2 12.10.2004 10:53
[Erledigt] Probleme mit SESSIONS innerhalb einer METHODE PHP-Fortgeschrittene 0 26.09.2004 16:57
[Erledigt] einfachste methode ein array in ein text file zu schreiben? PHP-Fortgeschrittene 10 25.06.2004 18:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php gz_handler, pgp output buffering gz_handler, gz_handler php

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:14 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.