我試圖從shell到PHP再次傳遞參數。在我的簡單測試中,我很容易從shell到PHP,但沒有運氣讓字符串退出。我試過escapeshellarg和escapeshellcmd,但都沒有成功。在PHP和shell之間來回傳遞參數
殼牌
#!/bin/sh
# set a date and time variables, in the form of YYYY-MM-DD and HH:MM:SS
dateVar=`date +%Y-%m-%d`
timeVar=`date +%H_%M`
# Launching PHP
runPHP=`which php`
$runPHP calledPHP.php $timeVar $dateVar
# Returned from PHP
passTime=$1
echo "$passTime"
passDate=$2
echo "$passDate"
PHP
<?php
setlocale(LC_CTYPE, "en_US.UTF-8");
echo "PHP called.\n";
$logTime = $argv[1]."\n";
// echo $logTime;
$logDate = $argv[2]."\n";
// echo $logDate;
$passTime = escapeshellarg('Time: $logTime');
$passDate = escapeshellarg('Date: '.$logDate);
?>
運行外殼,只能隨聲附和,它得到的回覆是 'PHP調用。'正如你所看到的,我已經在最後兩個php變量中嘗試了兩種不同的語法。這兩者似乎都不起作用。有更好的功能嗎?或者,我只是使用錯誤的語法?
在此先感謝您的任何建議
你的PHP代碼做除了你的一個'PHP called'回聲正常輸出。你的'$ logTime'行不正確。 PHP中的引號字符串不會內插變量。你的'$ passTime'將從字面上包含'$','l','o','g'等等。 – 2014-09-02 20:22:02
我最初找到'$ passDate'的例子,這對我來說看起來是正確的,但我同意''''引用的字符串。我只是爲了完整性而嘗試,因爲這是我發現的一個「工作示例」,儘管它顯然不適合我。我並沒有真正想從PHP獲得任何輸出,除了將一個字符串從PHP傳回到包含shell的腳本之外。 – LOlliffe 2014-09-02 20:37:11