PHP und mimetex

i_hasser

Grand Admiral Special
Mitglied seit
06.06.2002
Beiträge
18.964
Renomée
85
Standort
IO 0x60
Hi

Will in ein Forum LaTeX integrieren, und soweit geht das auch erstmal. Mimetex ist ein cgi, das die Umwandlung in ein Bildchen vornimmt.

Das Problem: In dem Skript für phpbb2 wird mimetex automatisch aufgerufen, einmal wird per system() ein Bild erzeugt und in einem bestimmten Verzeichnis als Cache abgelegt, und einmal wird einfach die Ausgabe vom cgi direkt als Bild genommen (ohne Cache).
Letzteres funktioniert (zB. http://www.i-hasser.net/cgi-bin/mimetex.cgi?f(x)=y^2 ), aber wenn ich das per system() aufrufe, bekomm ich nur einen Rückgabewert von 126 und keine Fehlermeldung oder ähnliches.

Weis jemand zufällig, wie ich an die Fehlermeldung rankomme?
 
Hm, ich kann zwar kein cgi, aber ein wenig php.

Schlägt man die Funktion system() im php manual nach, stößt man auf folgendes:

system -- Führt ein externes Programm aus und zeigt dessen Ausgabe an.

Könnte mir daher vorstellen, dass das gar kein Fehler ist sondern die ganz normale Ausgabe von mimetex. Per system() wird ja ein Bild abgespeichert und abgelagert. Dann musst du das gecachete (verdammte Anglizismen^^) Bild auch aufrufen.
Ist jetzt aber nur reine Vermutung.

flO
 
Zuletzt bearbeitet:
aber wenn du es doch mit der $_GET Variable aufrufst (heißt das bei cgi genauso?), funktionierts doch auch?

Was willst du denn genau machen? Nur Funktionen in ein Bild schreiben lassen? Das lässt sich doch genauso mit php ohne cgi realisieren.

Du müsstest auch mal schauen, was das cgi Script zurückgibt, wenn es das Bild erzeugt und abspeichert? Wenn du es direkt ausgeben lassen willst, wie wenn du das cgi Script mit dem Parameter aufrufst, musst du den richtigen Header angeben.
ODer lass doch einfach system() weg? und rufe das Script direkt auf:

zB. <img src="http://www.i-hasser.net/cgi-bin/mimetex.cgi?f(x)=y^2" alt="funktion" />

oder reden wir aneinander vorbei?
 
Zuletzt bearbeitet:
wir reden aneinander vorbei *suspect*

Also das cgi funktioniert soweit problemlos, und produziert auch Ausgaben. Nun will ich die Ausgaben f&#252;r identische Ausdr&#252;cke aber nicht jedesmal neu erzeugen, weil das unn&#246;tig Rechenzeit kostet - ergo muss ein Cache her. Dazu bietet mimetex die Option per -e <dateiname> das Ding in irgendeiner Datei abzulegen.

Der Mod f&#252;r phpbb2 macht genau das, die Ausdr&#252;cke werden per hash identifiziert und entsprechend wird ein kleiner Cache angelegt - daf&#252;r muss mimetex aber direkt aufgerufen werden. Dummerweise klappt das nur eben leider nicht, und system() liefert selbst bei Ausdr&#252;cken die nicht den geringsten Sinn machen 126 als Fehlercode (anstatt zB. 127 f&#252;r "dat gibts net").
 
hm, dann habe ich dich am Anfang doch richtig verstanden.
Wäre vielleicht hilfreich, wenn du den Code von dem Mod fürs phpbb2 mal postest, in dem die system() funktion vorkommt.
 
Ich kann doch selbst php ;). Das Problem ist, dass ich anscheinend bei allen möglichen Sachen einen 126 bekomme.
 
Zurück
Oben Unten