- Perl und PHP mit Tags einbinden
<perl>
out "hier ist Perl...<br>";
</perl>
<php>
out("hier ist PHP...");
</php>
PHP wird genauso wie Perl mit entsprechenden Tags eingebunden. "out" steht auch in PHP zur Verfügung, es müssen allerdings immer Klammern um die Ausgabe stehen.
Ausgabe:
hier ist Perl...
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
- Perl von PHP aus aufrufen
<php>
perl('$x=5;');
</php>
Wert von x: $x
Perl wird von PHP aus aufgerufen und die Variable $x gesetzt - diese kann nun ausserhalb von PHP abgerufen werden.
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
Wert von x:
- Perl von PHP aus aufrufen, Datenbank abfragen und Wert zurückgeben
<php>
$x=perl('get "range=0,1", "php_test"; return $Name');
out($x);
</php>
Perl wird von PHP aus aufgerufen, der erste Eintrag der Datenbank "test" abgefragt und das Feld "Name" zurückgegeben. Zurück in PHP wird der Rückgabewert ausgegeben.
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
- Perl von PHP aus aufrufen, Datenbank abfragen und in Perl darauf zugreifen
<php>
perl('get "Id==*", "php_test"');
</php>
<perl>
while(get_next "php_test")
{
out "$Name - $Text<br>";
}
</perl>
Perl wird von PHP aus aufgerufen und die komplette Datenbank "test" ausgelesen. Da dies alles in Perl passiert, kann sie, zurück in Perl, dann ausgegeben werden.
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
- PHP von Perl aufrufen und Wert zurückgeben
<perl>
$x=php 'return phpversion();';
out "PHP-Version: $x";
</perl>
Von Perl aus wird PHP aufgerufen und die Versionsnummer von PHP zurückgegeben. In Perl wird sie dann ausgegeben.
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
PHP-Version:
- get / get_next in PHP
<php>
get("Name>a", "php_test");
while(get_next("php_test"))
{
out("$Name - $Text<br>");
}
</php>
Genauso wie in baseportal gewohnt, werden auch in PHP Datenbanken abgefragt. Hier werden alle Einträge von "test" mit "Name" > "b" geholt und mit "get_next" durchlaufen. Der obige Code funktioniert sowohl in Perl, als auch in PHP.
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
- put / mod / del in PHP
<php>
put(array("Name", "Josef", "Text", "und Text..."), "php_test");
get("Name==Josef", "php_test"); out("Text: $Text<br>");
mod("Name==Josef", array("Text", "was anderes ;-)"), "php_test");
get("Name==Josef", "php_test"); out("Text: $Text<br>");
del("Name==Josef", "php_test");
</php>
In PHP muss zur Übergabe einer Liste array davor geschrieben werden. Ansonsten funktioniert alles wie in Perl.
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
- do_all in PHP
<perl>$_get{cmd}="";</perl>
<php>
do_all("db=php_test");
</php>
Natürlich gibt es auch das do_all in PHP (Die Links sind deaktiviert, damit nicht jeder die Datenbank ändern kann).
Ausgabe:
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
- Geschwindigkeit
Das Ganze geschieht natürlich schön schnell, wie von baseportal gewohnt... ;-)
Laufzeit dieser Seite: 0.01
Die obigen Ausgaben sind kein statisches HTML, sondern werden alle tatsächlich ausgeführt. Allerdings benötigt das Umschalten zwischen Perl und PHP und das Übertragen der Werte (z.B. bei Datenbank-Abfragen) auch Zeit, so dass man es soweit möglich reduzieren sollte. Diese Seite komplett in Perl gelöst benötigt z.B. nur die Hälfte der Zeit.