2015-06-14 128 views
0

我在命令行中運行php是綠色的,並且需要找到一種方法來通過在瀏覽器中加載網頁來執行php腳本。我不需要任何返回值,但只需要使腳本運行/執行。所以,一旦在瀏覽器中加載了「page.php」,page.php中的一個腳本就會在terminal/cli中運行。從網頁執行命令行中的php腳本

我試過這樣做,通過添加行<?php exec('php script.php') ?>,但它不起作用。這可能嗎?

UPDATE:

提供一些代碼從而洞察/清晰度上我的設置,以幫助測試。腳本可以像下面那樣放在體內來運行,還是需要以某種方式顯式調用腳本?

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Web Page</title> 
<link href="style.css" rel="stylesheet" type="text/css"> 
<?php include_once 'check_login_status.php'; ?> 
</head> 
<body> 
<?php exec('php /Applications/XAMPP/htdocs/site_root/script_to_run.php'); ?> 
<div id = "wrapper"> 
    <div id = "nav"><?php include_once 'navigation.php'; ?></div> 
    <div id = "top"><?php include_once 'top.php'; ?></div> 
    <div id = "main"></div> 
</div> 
</body> 
</html> 
+0

當然是可能的,但它需要PHP安裝並正確配置CLI使用。問題是:爲什麼這樣做?爲什麼不在額外的http請求中執行額外的腳本,一切正常?無論是通過ajax,從客戶端觸發還是更容易:通過在後臺向自己的服務器發出子請求。 – arkascha

+0

順便說一句:你的exec()調用的問題是腳本的路徑,這對於在CLI中啓動的php解釋器是未知的,因爲它(通常)不會以你顯然期望的工作目錄開始。 – arkascha

+0

通過向文件添加路徑是有道理的。我正在使用我的MacBook,它在優勝美地原生有php。所以如果我打開終端並運行'php/path/script.php',它可以正常工作。如上所述,我只是無法運行它。我沒有時間使用ajax,只是基本上用php來練習新東西。 – JRW2252

回答

3

您必須明白exec無法訪問所有常用的環境變量,例如SSH提示符。您需要在命令中提供PHP的完整路徑。大概就像

<?php exec('/usr/bin/php script.php'); ?>