dangermouse: HTML-Code einbauen mit mod_ext_filter

Hallo liebes Forum,

auf meinem Raspberry Pi habe ich LAMP installiert und möchte gerne in jede ausgelieferte Seite nachträglich HTML-Code einbauen.

Dazu würde ich gerne mod_ext_filter verwenden. Ich habe mir einige Beispiele angeschaut, funktionieren tut es bei mir aber nicht. Die httpd.conf wird gelesen, die Seiten werden auch ausgeliefert, nur mod_ext_filter macht gar nichts. Ich weiß auch nicht, wie ich besser testen kann, woran es liegt.

Hier der Code, den ich verwende:
httpd.conf:

ServerName freebox  
  
ExtFilterDefine inject cmd="/usr/bin/php /var/www/inject.php"  
  
<Directory />  
        SetOutputFilter inject  
        ExtFilterOptions DebugLevel=1  
</Directory>  

/var/www/inject.php:

<?  
$stdin = fopen('php://stdin', 'r');  
  
while($line = fgets($stdin)){  
  $line = preg_replace('/a/','A',$line);  
  
  fwrite($stdout, $line);  
}  
?>  

Was kann ich machen, damit es funktioniert?

Liebe Grüße

danger

  1. Bin nun schon selbst weitergekommen: Das Modul war gar aktiviert, ich habe es nun in die apache2.conf eingebunden und das PHP-Skript wird auch ausgeführt, wenn auch jetzt sonst keine Seite mehr angezeigt wird.
    Ich such nun erst mal weiter, vielen Dank und liebe Grüße an alle!

    danger

  2. /var/www/inject.php:

    <?php  
    # Das kann es auch sein! Nicht immer ist (wegen xml!) short-tags aktiviert  
    $stdin = fopen('php://stdin', 'r'); # Das wartet auf eine Eingabe?  
    while($line = fgets($stdin)){  
        #$line = preg_replace('/a/','A',$line); # zu teuer  
        $line = str_replace('a', 'A', $line);  
      
        #fwrite($stdout, $line);  
        # PHP Notice:  Undefined variable: stdout in /tmp/test.php on line 7  
        # PHP Warning:  fwrite() expects parameter 1 to be resource, null given in /tmp/test.php on line 7  
        #damit gehts erst mal bis geklärt ist, was $stdout sein soll.  
        echo $line;  
    }  
    ?>  
    
    

    Jörg Reinholz

    1. Jörg Reinholz

      Danke, mit echo hab ich es jetzt auch gelöst und es funktioniert!
      Das $stdout war aus dem verlinkten Beitrag. fopen('php://stdin', 'r') funktioniert, es ist wohl der Eingangspuffer von php.
      str_replace bau ich noch ein.

      Vielen Dank, Jörg, und liebe Grüße an alle!

      danger