Autor | Zpráva | ||
---|---|---|---|
Enko Profil |
#1 · Zasláno: 1. 4. 2015, 16:36:21
Ahoj,
mám hotový PHP skript, který když pustím z webového prohlížeče s GET parametry, tak se vykoná přesně jak potřebuji. Nicméně rád bych ještě tento skript (nebo si udělal nový) chtěl spouštět i ze shellu na Ubuntu. Skript mi zpracovává unikátní klíče. Tyto klíče chci buď zadat vstupem ze souboru (kde je na každém řádku jiný klíč), tak aby mi je PHP skript zpracoval nebo je chci předat jako parametr při spouštění z shellu, tak aby mi je PHP skript zpracoval. Poradí mi někdo prosím, jak na to? Nikdy jsem nic podobného nedělal. Protože nejsem úplně zžitý s prací v shellu, jak to pak spustím, abych si mohl otestovat, že to funguje? Děkuji |
||
Keeehi Profil |
#2 · Zasláno: 1. 4. 2015, 18:56:48
Při spouštění z shellu jsou parametry v proměnné $argv. Je to velmi podobné proměnné $_GET ovšem v $argv nejsou indexy řetězce ale čísla.
|
||
Kubo2 Profil |
#3 · Zasláno: 2. 4. 2015, 00:49:07
Dodám, že treba dať pozor na nastavenie dorektívy
register_argc_argv , pretože v prípade Off PHP globálnu premennú $argv nevytvorí. Jednoduchý workaround by bol približne nasledovne:
<?php if(!ini_get('register_argc_argv')) { list($argc, $argv) = [ $_SERVER['argc'], $_SERVER['argv'] ]; } |
||
Enko Profil |
#4 · Zasláno: 2. 4. 2015, 17:42:04
Děkuji za rady. Přesně toto jsem potřeboval vědět. Nakonec jsem tam udělal takto:
<?php //zpracovani parametru z shellu if(count($argv) > 1){ //preskocime prvni hodnotu pole, protoze v ni je nazev spousteneho skriptu //udelej neco } //zpracovani standartniho vstupu (souboru) z shellu else{ $f = fopen( 'php://stdin', 'r' ); $i = 1; while($tag = fgets($f)){ //udelej neco, $tag je hodnota z kazdeho radku, ze standartniho vstupu } } // ?> |
||
Časová prodleva: 9 let
|
0