php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.11.2004, 15:47  
Gast
 
Beiträge: n/a
Standard [Erledigt] externers Programm "lame" mit PHP aufrufen

Hallo, ich mögchte das externe Programm lame mit PHP aufrufen.
Das ganze läuft auf einem debian Betriebssystem mit Apache 1.3 Webserver. Das Programm lame wurde installiert und funktioniert auf der Kommando (Shell) Ebene problemlos. Ich rufe das Programm folgendermaßen auf:

Code:
001
002
$output = `ls -al`;
echo "<pre>$output</pre>";



dieses Beispiel funktionert ohne Probleme, aber

Code:
001
002
$output = `lame`;
echo "<pre>$output</pre>";



funktioniert nicht.

ich habe das Prog. anschließend in den /bin Ordner kopiert, ohne Erfolg.
anschließend habe ich die Rechte überprüft, es sind genau die selben wie beim ls Kommando.

Woran könnte es noch liegen?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 04.11.2004, 16:27  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Und wie genau äussert sich, dass es nicht funktioniert?
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 04.11.2004, 17:34  
Gast
 
Beiträge: n/a
Standard

Beim ls Kommando wird, wie auch erwartet der ganze Verzeichnisbaum ausgegeben.

Bei lame wird gar nichts ausgegeben, nicht mal eine Fehlermeldung.
  Mit Zitat antworten
Alt 04.11.2004, 17:43  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Gib es mal direkt aus, ohne zwischenspeicherung in einer Variable.
Und nimm vielleicht shell_exec() statt dieser Backticks...

Bei mir geht es nämlich:

<?php
echo shell_exec("lame *wav");
?>

Folgendes passiert:
wagner@kiew:~/tmp/php $ php lame.php
LAME version 3.96.1 (http://lame.sourceforge.net/)
CPU features: MMX (ASM used), 3DNow! (ASM used), SSE
Using polyphase lowpass filter, transition band: 17249 Hz - 17782 Hz
Encoding 05 - Emma Shapplin The Fifth Heaven.wav
to 05 - Emma Shapplin The Fifth Heaven.wav.mp3
Encoding as 44.1 kHz 128 kbps j-stereo MPEG-1 Layer III (11x) qval=3
Frame | CPU time/estim | REAL time/estim | play/CPU | ETA
11226/11228 (100%)| 0:30/ 0:30| 0:35/ 0:35| 9.5397x| 0:00
average: 128.0 kbps LR: 817 (7.276%) MS: 10412 (92.72%)

Writing LAME Tag...done
ReplayGain: -7.9dB
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 04.11.2004, 18:32  
Gast
 
Beiträge: n/a
Standard

Habe ich ausprobiert, mit genau dem selben Ergebnis wie vorher.
Vielleicht hab ich bei der Installation von lame was falsch gemacht, hier meine Vorgehensweise:

Download von SourceForge
Code:
tar -xzf lame-3.96.1.tar.gz 
in Verzeichnis opt/web8/html/
cd lame-3.96.1
./configure 
cd frontend
make  
mv lame /bin
da es mit dem php script nicht funktioniert hat, habe ich die lame Datei auch in den Ordner opt/web8/html kopiert, da dies das doc_root für meine Homepage darstellt, und ich dachte, dass der Zugriff auf die Datei nur hier möglich ist.

die lame Datei liegt aber weiterhin auch noch im /bin Verzeichnis
  Mit Zitat antworten
Alt 04.11.2004, 18:45  
Gast
 
Beiträge: n/a
Standard Re: externers Programm "lame" mit PHP aufrufen

Zitat:
Zitat von Thomas27
Code:
 $output = `lame`;
funktioniert nicht.

Woran könnte es noch liegen?
Was würde denn passieren, wenn Du 'lame' mit absoluten Pfad aufrufst?
  Mit Zitat antworten
Alt 04.11.2004, 18:57  
Gast
 
Beiträge: n/a
Standard

Ich habe gerade festgestellt, dass mir
Code:
<?
echo shell_exec("lame --help");  
?>
den gesamten Hilfetext ausgibt, daher meine neue Vermutung mit der Installation ist alles in Ordnung.

was mich wundert, wenn ich nur lame auf Kommandozeilenebene eingebe bekomme ich folgendes zu sehen:

Code:
LAME version 3.96.1 (http://lame.sourceforge.net/)

usage: lame [options] <infile> [outfile]

    <infile> and/or <outfile> can be "-", which means stdin/stdout.

Try:
     "lame --help"           for general usage information
 or:
     "lame --preset help"    for information on suggested predefined settings
 or:
     "lame --longhelp"
  or "lame -?"              for a complete options list
müsste das nicht auch ausgegeben werden, wenn ich
Code:
<?
echo shell_exec("lame");  
?>
per script ausführe
  Mit Zitat antworten
Alt 04.11.2004, 19:00  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

bei mir kommt dann die Hilfe-Ausgabe
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Alt 04.11.2004, 19:06  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Thomas27
müsste das nicht auch ausgegeben werden, wenn ich
Code:
 ...
per script ausführe
Nein. Generell kennt Linux zwei Ausgabekanäle (normale Ausgaben und Fehlermeldungen). shell_exec zeigt nur die normalen Ausgaben an.
Falls auch Fehlermeldungen und Returnstatus von Interesse sind, dann mußt Du exec() nehmen.

string exec ( string befehl [, array ausgabe [, int return_var]])

Ich rate Dir trotzdem noch mal, bei Systembefehlen immer den absoluten Pfad zum auszuführenden Programm anzugeben, weil Du dann nicht davon abhängig bist, welche Shell in welcher Konfiguration PHP benutzen darf.

/usr/bin/foo haut dann immer hin, foo nur dann, wenn /usr/bin im Path steht.
  Mit Zitat antworten
Alt 04.11.2004, 19:15  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von meikel
shell_exec zeigt nur die normalen Ausgaben an.
Kann ich nicht bestätigen. Bei wir wird auch stderr durchgereicht.
__________________
mod = master of disaster
Waq 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
exec(), Programm läuft nur als Task Superfunk2000 Server, Hosting und Workstations 1 05.07.2008 09:14
Programm zum erstellen von Formularen cycap Beitragsarchiv 2 30.07.2007 23:12
anderes PHP-Script aufrufen Smily0412 PHP Tipps 2005-2 14 27.10.2005 14:28
Suche dringend Programm Beitragsarchiv 1 21.09.2005 15:44
Prüfen ob ein Exteres Programm gerade läuft! Blank PHP Tipps 2005-2 1 20.07.2005 20:28
Welches Programm auf Port 199 atom-dragon Server, Hosting und Workstations 5 15.06.2005 23:02
programm um zugriffe zu simulieren Beitragsarchiv 5 15.06.2005 20:06
variables programm aufrufen in der formaction PHP Tipps 2005-2 5 09.06.2005 20:31
Programm zur MySQL Verwaltung maximus Datenbanken 1 01.06.2005 19:39
Programm für eine Internet seite Beitragsarchiv 27 08.03.2005 16:26
Funktion aufrufen im selben Script aufrufen PHP Tipps 2005 5 23.02.2005 21:21
Programme im Browser aufrufen? PHP Tipps 2005 7 19.01.2005 15:48
Programm ausführen PHP-Fortgeschrittene 4 15.10.2004 14:40
[BlödeFrage:] aufrufen von html/php seiten mittels php PHP Tipps 2004 9 16.08.2004 15:58

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
lame php, php lame, programm mit php aufrufen, php programm aufrufen, wie rufe ich kommandoshell, php programmaufruf, php externer programmaufruf, http://www.php.de/php-fortgeschrittene/11734-externers-programm-lame-mit-php-aufrufen.html, lame aufrufen, &amp;quot; mit php, shell_exec zeigt nur an, lameversion by phwip, in php prüfen ob externes programm läuft, programmaufruf php, php programm aufruf aus html code, programmaufruf aus php, php shell lame, php aufruf programm, php prüfen ob externes programm läuft, php aufruf externer programme

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:25 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.