好球員我真的不知道如何開始,是第一次,我用PowerShell和PHP一起工作,但現在我不知道該如何處理這個問題,因此,我在這裏..返回值不能用於PHP
林開發webinterface一個公司來管理服務(基本開啓/關閉服務器)。我已經編寫了powershell腳本,一切正常運行。
但我有一個地方,我嘗試在AlertBox(JavaScript)中顯示進程的狀態(PowerShell腳本已經給了我返回值,但我不明白爲什麼PHP不會像字符串或文本處理它。
檢查出來一塊我的代碼:
<?php
if (isset($_POST['button']))
{
$service = $_POST["service1"];
$psPath = "powershell.exe";
$psDIR = "C:\\xampp\\htdocs\\shell\\";
$psScript = "check-status.ps1";
$runScript = $psDIR. $psScript;
$runcheck = $psPath." ".$runScript." 2>&1";
$computername = "xen-80-42";
$go = shell_exec("$runcheck -passwd 'Hpdprqn5' -user 'Administrator' -computer '$computername' -service '$service' < NUL");
echo "<script type='text/javascript'>alert('" . $service . " is currently " . $go . " on " . $computername . "'); </script>";
}
?>
<form method="post">
<p>
<input type="text" name="service1" id="service1" maxlength="20"></input> <button name="button">Check Status</button>
</p>
</form>
好
一切工作正常,腳本給回2個可能值:「運行」或「停止」 這意味着,該變量01的值,應該還是「運行」或「停止」
好吧,我試圖用一個已經運行的進程,因此:回聲$去; 打印「運行」
我覺得這是一個問題,因爲可能返回值爲$走的是不是字符串。 但我解決了使用gettype($go
),變量是STRING!
但有人可以解釋爲什麼當我想數字字符串的字符,使用strlen($go
),我得到8個字符的回報? RUNNING只有7個字母,而不是8
出於這個原因,我不能執行JavaScript中的alert(上面的代碼),因爲Java犯規把它作爲一個字符串或類似的東西
什麼是錯在那裏,我想,順便說一句,當我試圖做一個這樣的比較 - :
if ($go == "Running") { echo "Everything ok"; } else { echo "different values";}
我得到的第二個選項,這兩個值是不是真的平等的,他們是diferent。但是嗎?我看不到任何東西..
我希望有人能helpme原因IM挫折:(
BTW我想:
strval($go);
(string)$go;
$var = "$go";
沒有什麼工作:(
如果necesary索要的PowerShell腳本,但我認爲它不是必需的,你會發現php接收的值爲STRING:/
OMGü救了我的命,微調功能的工作!非常感謝你!但現在你能告訴我怎麼可能?最後一個字符在哪裏? :s – 2013-04-26 13:53:41
它是將文本分解爲新行的不可見控制字符。 換行(LF或ASCII碼中的0x0A(10)) 或者可能 回車(ASCII或ASCII碼中的CR或0x0D(13)) – 2013-04-26 17:11:18