2017-07-05 1 views
0

Wie kann PHP Variablen aus Shell-Skript erhalten. ich habe: shell_exec('php /var/www/html/test/kobi.php $param1'); Und ich möchte empfangen $parm1 in kobi.php Ich habe versucht, es zu tun mit: $imsi=$argv[1]; aber es funktioniert nicht. kann jemand erklären, was los ist? Wie soll ich das richtig machen?PHP erhalten Variable von Shell-Skript

+0

es enthält nichts ...., weil das Skript, das innerhalb von 'shell_exec' ausgeführt wird, in einem separaten Thread läuft und' $ argv' für diesen Thread ist. Ich benutze den Begriff Gewinde locker. Instanz von PHP ist wahrscheinlich "richtiger" – ArtisticPhoenix

Antwort

0

Sie verwenden die falsche Funktion versuchen exec statt

http://php.net/manual/en/function.exec.php

exec (string $ command [, array & $ output [, int & $ return_var]])

$param1 = escapeshellarg($param1); 
    exec('php /var/www/html/test/kobi.php $param1', $output); 

Und das auch verwenden.

http://php.net/manual/en/function.escapeshellarg.php

Andernfalls wird Ihr Server maybee jemand übernehmen ...

UPDATE

'php /var/www/html/test/kobi.php $param1' 

wörtlichen Ist String, so dass Ihre Eingabe $param1 wahrsten Sinne des Wortes, nicht der Wert von es. Apropos. Sie würden " doppelte Anführungszeichen für variable Interpolation verwenden.

+0

Immer noch nicht funktioniert. Von echo $ output Im Erhalten eines leeren Array –

+0

'echo' wörtlich? Da 'print_r()' 'var_export()', 'var_dump()' für Arrays sind, können Sie kein Array zurückgeben. – ArtisticPhoenix

+0

Entschuldigung, ich meinte zu print_r() ofcours. was soll ich tun ?? –