WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   perl und html mit php (http://www.wcm.at/forum/showthread.php?t=132759)

ff 28.04.2004 21:58

perl und html mit php
 
* Ein perl-script ruft eine ausgabe.html-Datei auf und gibt innerhalb eines html-Layouts Daten aus.

* Ich aendere den Namen der Datei auf ausgabe.php und passe den Aufruf entsprechend im perl-Script an.

Soweit, so gut - alles funktioniert wie gewohnt. Schreibe ich allerdings ein paar Zeilen php in den html-Code, wird der php-Code einfach ignoriert.

Warum ist das so?

Danke
ff

heli2sky 28.04.2004 22:08

der webserver kann kein php? :confused:

ff 28.04.2004 22:13

Sehr wohl. Reine php-Scripts laufen problemlos.

AAD 29.04.2004 00:30

wir rufst du das PHP-Script auf?

per HTTP oder mit der Perl-Funktion open

ff 29.04.2004 01:19

open(F,"<data/ausgabe.php");

Der php-Code steht dann z.B. wie <?php print "hallo"; ?> im html-Teil und . . . wird nicht angezeigt.

Ich finde keine logische Erklaerung fuer dieses Verhalten, da ja php gar nicht wissen kann, ob die php-Seite von einen Perl-Script aufgerufen/erzeugt wurde oder "normal".

Meine Perl-Kenntnisse sind auf kleine Anpassungen beschraenkt, deshalb meine Anfrage hier.

AAD 29.04.2004 01:50

Mit open öffnest du nur die Datei ohne das sie ausgeführt wird.

nur wenn die PHP-datei über HTTP aufgerufen wird, wird der PHP-Code ausgeführt.

Fals PHP als CGI läuft oder die PHPversion >4.3(CLI) installiert ist kannst du mal das versuchen.
open(F,"php -q <data/ausgabe.php |");

jak 29.04.2004 08:03

Wie sieht's mit
include aus?

Jak

SNo0py 29.04.2004 14:37

Eine andere Möglichkeit ist system/exec, und die php-Datei an den PHP-Interpreter zu übergeben (als Shell-Script).

mfg

ff 29.04.2004 17:34

@AAD

Es laeuft php 4.1 und ich moechte mit einem Update auf 5.0 warten.
open(F,"php -q <data/ausgabe.php |"); funktioniert daher (noch) nicht.

> Mit open öffnest du nur die Datei ohne das sie ausgeführt wird.

Sollte nicht eine php-Datei automatisch beim oeffnen ausgefuehrt werden? Woher weiss der php-Interpreter, dass die Datei von einem Perl-Script geoeffnet wurde und nicht vom User, der die ausgabe.php direkt aufruft? Dann funktioniert der php-Code naemlich - die perl-Ausgabe dafuer natuerlich nicht . . .


@jak

schlecht. Kein php-Code wird in dem beschriebenen Fall ausgefuehrt.

@SNo0py

Klingt interessant, aber schaut mir nach umschreiben des "fremden" perl-Scripts aus. Da moechte ich mich nicht hineinarbeiten, nur um ein paar Zeilen php ins html zu integrieren.

Jedenfalls herzlichen Dank an alle fuer eure Antworten
ff

AAD 30.04.2004 21:34

Zitat:

Original geschrieben von ff
Sollte nicht eine php-Datei automatisch beim oeffnen ausgefuehrt werden? Woher weiss der php-Interpreter, dass die Datei von einem Perl-Script geoeffnet wurde und nicht vom User, der die ausgabe.php direkt aufruft? Dann funktioniert der php-Code naemlich - die perl-Ausgabe dafuer natuerlich nicht . . .
Da kann man ja auch fragen woher weis der php-Interpreter das die Datei mit einem Editor (zum bearbeiten) geöffnet wird?

Ganz einfach, mit open öffnet man die normale Text-Datei.
Dem php-Interpreter muss angegeben werden, wann er die PHP-Datei ausführen soll.

PHP als Apache-Modul installiert:
Eintrag in der httpd.conf AddType application/x-httpd-php .php .phtml
Der Webserver kontrolliert die Dateiendung, wenn diese im Eintrag application/x-httpd-php vorhanden ist, dann wird die Datei mit dem php-Interpreter ausgeführt.

PHP als CGI auf Linux/Unix Webserver:
bei CGI muss in der 1.Zeile der Interpreter angegeben werden, in welcher Sprache die Datei geschrieben ist.
z.b.
#!/usr/bin/php für PHP
#!/usr/bin/perl für Perl


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag