php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.04.2009, 13:51  
Neuer Benutzer
 
Registriert seit: 30.04.2009
Beiträge: 5
Nichofix befindet sich auf einem aufstrebenden Ast
Standard exec() Probleme

Hallo ihr PHP`ler,

ich komme zu euch weil ich langsam etwas verzweifle.

Aber zuerts einmal das Problem:
Ich schreibe gerade ein kleines PHP-Script das Videos automatisch konvertieren soll. Hierzu möchte ich gerne den Befehl exec() benutzen, welcher eine Batch-Datei aufrufen soll, die wiederrum die Videos konvertiert.

Soweit die Aufgabe. Leider habe ich das Problem, dass sich gar nichts tut. Ich erwarte jetzt, dass sich ein CMD-Fenster öffnet, in dem dann die Operationen ausgeführt werden, die in der Batch-Datei stehen...

Hier ist einmal der PHP-Code:
PHP-Code:

convertVideo
();

function 
mysqlConnect(){
    require_once(
'mysqlSettings.php');
    
$mysql mysql_connect($dbserver$dbuser$dbpw) or die(mysql_error());
    
mysql_select_db($dbname$mysql) or die(mysql_error());
    return 
$mysql;
}

function 
convertVideo(){

    
mysqlConnect();

    if (
$handle opendir('../uploads')) {
        while (
false !== ($file readdir($handle))) {
            if (
$file != '.' && $file != '..') {
                
$fileArray[] = $file;
            }
        }
    
closedir($handle);
    }
    
    for (
$x=0;$x<count($fileArray);$x++) {
        
$mysql "select * from videos where filename ='".$fileArray[$x]."'";
        
$mysqlQuery mysql_query($mysql);
        while(
$mysqlRow mysql_fetch_array($mysqlQuery)){
            
$filename explode('.',$mysqlRow['filename']);
            
$convertArray[] = 'C:\Progs\xampp\htdocs\streaming\convert\convert.bat C:\Progs\xampp\htdocs\streaming\uploads\ '.$fileArray[$x].' '.$filename[0].' '.$mysqlRow['userid'].'';
        }
    }
    
    for (
$x=0;$x<count($convertArray);$x++) {
        
$videoExec exec($convertArray[$x]);
        
print_r($videoExec);
        echo 
$convertArray[$x];
        echo 
'<br>';
    }
    

Die Batch-Datei wird also folgendermaßen aufgerufen:
C:\Pfad\zur\Batch-Datei\convert.bat Pfad\zum\Video Videoname Ausgabename User

Die Attribute werden dementsprechen in der Batch-Datei angenommen:
PHP-Code:
@echo off
cls

rem 
## %1 = Pfad
rem ## %2 = Datei
rem ## %3 = Datei-OutputName
rem ## %4 = User

rem ## Veriablen festlegen
set input=%1
set file
=%2
set output
=%3
set user
=%4

rem 
## Codec Festlegen
set vcodec=libx264

rem 
## Bitraten festlegen
set bitrateHigh=500000
set bitrateLow
=100000

rem 
## Auflösungen festlegen
set resolutionHigh=480x360
set resolutionLow
=320x240

rem 
## Hohe Qualität
ffmpeg.exe -%input%%file% --vcodec %vcodec% -%bitrateHigh% -%resolutionHigh% %input%%user%%output%_%user%_convertedHigh.flv

rem 
## Niedrige Qualität
ffmpeg.exe -%input%%file% --vcodec %vcodec% -%bitrateLow% -%resolutionLow% %input%%user%%output%_%user%_convertedLow.flv

rem 
## Datei aus Upload-Ordner löschen
rem del %input%%file
Wenn ich die PHP-Datei jetzt ausführe, bekomme ich nur die Ausgaben von dem Array, welches ich an exec() übergebe (gebe das zum Testen mit echo() aus).

Code:
C:\Progs\xampp\htdocs\streaming\convert\convert.bat C:\Progs\xampp\htdocs\streaming\uploads\ 00_fußball.avi 00_fußball user123
C:\Progs\xampp\htdocs\streaming\convert\convert.bat C:\Progs\xampp\htdocs\streaming\uploads\ 00_TESTVID.avi 00_TESTVID user123
Ich mache das ganze auf meinem eigenem Rechner, mit Hlilfe von XAMPP. Ich nutze daher die PHP-Version 5.2.9. Safe-Mode ist deaktiviert.

Ich hoffe ich konnte mich einigermaßen verständlich ausdürcken
Villeicht könnt ihr mir damit ja weiterhelfen!

Danke schonmal im vorraus!

Bis bald
Nichofix
Nichofix ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.04.2009, 14:12  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nichofix Beitrag anzeigen
Ich erwarte jetzt, dass sich ein CMD-Fenster öffnet, in dem dann die Operationen ausgeführt werden, die in der Batch-Datei stehen...
Zitat:
Zitat von exec()
exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die letzte Zeile aus dem Befehlsergebnis zurück. Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie stattdessen die Funktion passthru().
[edit]
Sind das wirklich Fortgeschrittene, denen man das Handbuch vorlesen muss?
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 30.04.2009, 14:24  
Neuer Benutzer
 
Registriert seit: 30.04.2009
Beiträge: 5
Nichofix befindet sich auf einem aufstrebenden Ast
Standard

Howdie...

Okay, habe ich damit versucht.
Zum test habe ich auch mal nen Kommentar in die Batch-Datei geschrieben:

Code:
echo Starte-Batch...
Den Kommentar bekomme ich sowohl bei exec() als auch bei passthru() zurückgegeben.

PHP-Code:
$videoExec exec($convertArray[$x]);
$videoExec passthru($convertArray[$x]);
print_r($videoExec); 
Bei der Benutzung von passthru() wird das Batch-Script leider immer noch nicht ausgeführt...

MfG
Nichofix
Nichofix ist offline   Mit Zitat antworten
Alt 30.04.2009, 14:36  
Neuer Benutzer
 
Registriert seit: 30.04.2009
Beiträge: 5
Nichofix befindet sich auf einem aufstrebenden Ast
Standard

Hallo nochmal,

also ich habe jetzt noch was ausprobiert:

PHP-Code:
$videoExec exec('cmd.exe /c convertTest.bat');
$videoExec passthru('cmd.exe /c convertTest.bat'); 
Mit dem Ergebnis, dass beide Befehle für mich das Selbe machen.
ABER das Video wird tatsächlich konvertiert, nur geht halt einfach kein Batch-Fenster auf. Ich kann damit zwar leben, aber rein interessehalber, würde ich schon gerne wissen warum??

Mfg
Nichofix
Nichofix ist offline   Mit Zitat antworten
Alt 30.04.2009, 14:48  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Nichofix Beitrag anzeigen
nur geht halt einfach kein Batch-Fenster auf
Wo soll denn ein Batch-Fenster aufgehen? Auf dem Server? Da ist u.U. nicht mal ein Bildschirm dran.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 30.04.2009, 17:51  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Zitat:
Zitat von Nichofix Beitrag anzeigen
ABER das Video wird tatsächlich konvertiert, nur geht halt einfach kein Batch-Fenster auf. Ich kann damit zwar leben, aber rein interessehalber, würde ich schon gerne wissen warum??
Das ist kein Batch-Fenster was da aufgeht, sondern die Eingabeaufforderung bzw. Shell. Und die geht auch nur auf weil du sie aufgerufen hast. Du darfst dir eine Batch/Programm ohne GUI nicht wie ein Programm mit Fenstern vorstellen. Diese Programme senden ihre Daten einfach nur über definierte Schnittstellen, ob diese Schnittstellen nun von einer cmd.exe oder einer php.exe implementiert sind ist dem Programm egal.
erc 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
vbscript, php und exec godfather Server, Hosting und Workstations 9 19.05.2010 13:31
[Erledigt] Firefox / IE - Probleme HTML, Usability und Barrierefreiheit 5 20.07.2009 17:04
Exec() im IIS funktioniert nicht Superfunk2000 PHP Tipps 2008 24 04.07.2008 15:12
exec; seite bleibt hängen...auch mit umleitung Crypi PHP Tipps 2006 7 20.12.2006 21:14
Probleme bei Speicherung von serialize() Strings Manni2k PHP Tipps 2006 13 15.10.2006 15:06
Probleme mit mbstring extension unter Debian HStev Server, Hosting und Workstations 3 30.08.2006 20:55
exec kommando liefert keinen rückgabewert? sputnik83 PHP-Fortgeschrittene 3 06.04.2006 15:21
Probleme beim Datenupload zu meiner Datenbank Datenbanken 3 05.09.2005 19:47
[Erledigt] exec() Funktion PHP-Fortgeschrittene 1 22.08.2005 19:33
unzip per exec() funktioniert leider nicht PHP-Fortgeschrittene 7 27.06.2005 15:33
[Erledigt] hilfe! probleme mit... PHP Tipps 2005 4 12.04.2005 22:55
[Erledigt] CSV Größe macht Probleme mit php PHP Tipps 2005 5 15.03.2005 21:29
exec() und linuxkonsole (xterm) PHP Tipps 2004-2 0 09.12.2004 13:04
[Erledigt] Technische Probleme mit Sessions PHP-Fortgeschrittene 4 18.11.2004 14:45
Probleme mit exec und Konsorten PHP-Fortgeschrittene 6 22.10.2004 14:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
xampp exec, exec xampp, php exec funktioniert nicht, php exec xampp, xampp php exec, xampp exec php, xampp exec(), php exec problem, php xampp exec, php exec firefox, video exec dateien video, php exec geht nicht, xampp exec convert, exec php xampp, exec xammp, exec probleme, lampp exec, exec funktioniert nicht, xampp exec funktioniert nicht, php cls cmd.exe

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