2014-10-19 108 views
0

我想從另一個php腳本中執行一個php腳本。我似乎無法讓它正確傳遞參數。我究竟做錯了什麼?exec PHP不傳遞參數

第一個劇本叫

<?php 

$item = "hello"; 
$item2 = "world"; 
exec("php scriptToBeExecuted.php arg1=".$item." arg2=".$item2." &"); 
?> 

腳本執行

<?php 
var_dump($argc); 
if (isset($argv)) 
{ 
    parse_str(implode('&', array_slice($argv, 1)), $_GET); 

    $item= $_GET['arg1']; 
    $item2= $_GET['arg2'];; 
} 
else 
{ 
    echo "not set"; 
} 
?> 

我沒有收到在瀏覽器中的任何輸出,當我嘗試執行此操作。這不是主要問題,因爲我正在使用它來進行數據庫調用,但正如我所說的,經過幾個小時的忙碌之後,它將無法正常執行或根本無法執行

+0

嘗試PHP的許多exec'ers的另一個:http://nl3.php.net/exec – Rudie 2014-10-19 01:35:18

回答

0

您必須將此腳本作爲命令運行或者作爲網頁。如果前者沒有$_GET這樣的東西。如果是後者,則不存在$argv。嘗試這個。

第一個劇本叫

<?php  
$item = "hello"; 
$item2 = "world"; 
exec("php scriptToBeExecuted.php $item $item2"); 
?> 

腳本執行

<?php 
var_dump($argc); 
if (count($argv) === 3) { 
    $item= $argv[1]; 
    $item2= $argv[2]; 
} else { 
    echo "not set"; 
} 
?> 

參見:

PHP passing $_GET in linux command prompt

$_SERVER['argv'] with HTTP GET and CLI issue