當前位置:首頁 » 編程語言 » php執行命令行

php執行命令行

發布時間: 2023-03-26 19:11:39

1. php eval怎樣執行系統命令

eval — 把字元串作為PHP代碼執行

說明

mixedeval( string $code_str )

把字元串code_str作為PHP代碼執行。 除了其他,該函數能夠執行儲存於資料庫文本欄位內的PHP代碼。

使用eval()時需注意幾個因素:注意字元必須是有效的PHP代碼,包括結尾的分號,以不至於解釋器在eval()之後退出。並且正確地轉義code_str中的東西。你可以使用一個PHP閉合標簽來混合輸出HTML和PHP代碼。

同時需注意eval中的變數會被保留在之後的主腳本中。

參數

code_str需要被執行的字元串code_str不能包含 PHP Opening tags。

return語句會立即中止當前字元串的執行。

返回值

eval()返回NULL,除非在執行的代碼中return了一個值,函數返回該值。 如果在執行的代碼中有一個解析錯誤,eval()返回FALSE,之後的代碼將正常執行。無法使用 set_error_handler() 捕獲eval()中的解析錯誤。

範例

Example #1eval()例子 - 簡單的文本合並

<?php

$string = 'cup';

$name = 'coffee';

$str = 'This is a $string with my $name in it.';

echo $str. "\n";

eval("\$str = \"$str\";");

echo $str. "\n";

?>

以上常式會輸出:

This is a $string with my $name in it.This is a cup with my coffee in it.

Note: 因為是一個語言構造器而不是一個函數,不能被 可變函數 調用。

Tip和直接將結果輸出到瀏覽器一樣,可使用輸出控制函數來捕獲當前函數的輸出,然後(例如)保存到一個 string 中。

Note:

如果在執行的代碼中產生了一個致命的錯誤(fatal error),整個腳本會退出。
linux
shell中的eval命令將會首先掃描命令行進行所有的替換,然後再執行命令。該命令使用於那些一次掃描無法實現其功能的變數。該命令對變數進行兩次掃描。這些需要進行兩次掃描的變數有時候被稱為復雜變數。

例如

$:cat ext

count=3

cmd=echo

cmd="$cmd \$$count"

ext 11 22 33

此時cmd=" echo $3"

eval $cmd 等價於 "echo 33 "

2. 如何在cmd命令行下運行php

把你安裝後的php.exe文件路徑添加到系統PATH下,就行了

3. 如何在cmd命令行下運行php

在CMD下運行PHP文件有兩種方法:
方法一、直接調用PHP.EXE來運行,例如你需要運行A.PHP,而PHP安裝在C:\PHP下面,那麼可以用下面的命令運行它:
C:\>C:\PHP\PHP.EXE
A.PHP
方法二、利用文件關聯,直接把A.PHP作為A.BAT等文件一樣運行,例如下面的命令:
C:\>A.PHP

4. 如何通過PHP執行linux命令

我使用的意思是想通過php代碼做的更好對任意那麼的目錄可讀可寫可卸載,可以執行kill pid等的命令。
當然還存在還存在的做法,這是我使用的猜測,您不妨試看看,
1、把php的運行網民改為root,這種可能會存在必須的風險。
2、在apache裡面指定可以對某個root許可權的文件或目錄做操作,該做法沒試驗過。可能您能試驗成功的話,希望反饋一下哦。
求助者:恩,第一種做法,我使用的想過,可就是我是想參考我集團的思路來,所以這種做法沒嘗試過。因為它存在安全疑問。
第二個做法,應該可以,可就是太局限性了。要是文件多咋辦,還存在我要想執行個kill,services restart等,肯定就不行了。
大家集團貌似是,寫了個linux命令,和您們的思路貌似是一樣的回者答:這是大家的做法:用VC寫個服務,該服務的運行身份是root,也可以給其最大許可權,php調用這個服務做操作。 該做法可行,只是就得多一種底層語言。
還存在的做法經測試:
第一種做法,成功。
我使用的項目用是VC寫的服務。
第一種做法,可以改變PHP的運行身份,SuexecUserGroup指定CGI程序運行時所使用的網民和組。非CGI程序的請求仍然使用User指令所指定的網民身份處理。該指令取代了Apache的VirtualHosts配置中的User和Group指令。建議您看下類似的文檔,個人做調試。好像還存在別的做法哦。好像是用super。這種您得個人摸索。我只提供思路哦`` 哈哈`` 謝謝``

5. thinkphp 命令行模式執行,如何才能執行資料庫的操作

在本地創建新的Git倉庫(連接別人的代碼和創建自己的代碼庫)
mkdir andbase
cd andbase
git init
touch README.md
git add README.md
git commit -m 'hello world'
git remote add origin [email protected]:Liutos/foobar.git
將主分支修改推送到伺服器

6. 如何在cmd下面寫php代碼

首先要把php目錄放到環境變數path下面:

我的電腦-》屬性-》高級-》環境變數-》系統變數->Path->編輯->

查看路徑下有沒有php目錄,如果沒有加上

比如我的php路徑是E:AppServphp5 所以要在最後面加上E:AppServphp5;

成功後win+r 調出命令行,輸入php-v 查看版本,如果不對請檢查壞境變數是否設置正確

運行php文件php-f 路徑+文件名 或者php路徑+文件名

(小技巧:windows下面可以把文件直接拖進去,省去cd/命令,或者慢慢拼寫完整路徑)

兩種方法都可以執行命令,如果是.php文件則執行php代碼,否則直接以字元串形式讀取文件

4在命令行直接寫並運行PHP代碼,在windows環境下,盡量使用雙引號, 在linux環境下則盡量使用單引號來完成。php-r 「echo getcwd();」

7. 怎麼用php命令執行php代碼

PHP執行命令的四種方法

方法一:使用exec函數執行系統外部命令

原型:function exec(string $command,array[optional] $output,int[optional]
$return_value)

<?
exec("dir",$outPut);

print_r($outPut);
?>


說明:列出和PHP執行文件同級目錄下的所有目錄及文件信息。


知識點:exec執行系統外部命令時不會輸出結果,而是返回結果的最後一行,如果你想得到結果你可以使用第二個參數,讓其輸出到指定的數組,此數組一個記錄代表輸出的一行,即如果輸出結果有20行,則這個數組就有20條記錄,所以如果你需要反復輸出調用不同系統外部命令的結果,你最好在輸出每一條系統外部命令結果時清空這個數組,以防混亂。第三個參數用來取得命令執行的狀態碼,通常執行成功都是返回0。


方法二:使用system函數執行系統外部命令


原型:function system(string $command,int[optional] $return_value)


1
2
3

<?
system("dir");
?>


知識點:system和exec的區別在於system在執行系統外部命令時,直接將結果輸出到游覽器,如果執行命令成功則返回true,否則返回false。第二個參數與exec第三個參數含義一樣。


方法三:使用函數passthru執行系統外部命令


原型:function passthru(string $command,int[optional] $return_value)


知識點:passthru與system的區別,passthru直接將結果輸出到游覽器,不返回任何值,且其可以輸出二進制,比如圖像數據。


方法四:反撇號`(和~在同一個鍵)執行系統外部命令


1
2
3

<?
echo `dir`;
?>


知識點:在使用這種方法執行系統外部命令時,你要確保shell_exec函數可用,否則是無法使用這種反撇號執行系統外部命令的。

熱點內容
雙撥上傳 發布:2024-11-03 04:22:09 瀏覽:44
資料庫索引結構 發布:2024-11-03 04:02:14 瀏覽:234
xcode加密 發布:2024-11-03 03:53:45 瀏覽:225
演算法設計王曉東pdf 發布:2024-11-03 03:38:51 瀏覽:20
本地資料庫伺服器 發布:2024-11-03 03:33:07 瀏覽:331
方舟搭建伺服器多少內存 發布:2024-11-03 03:33:07 瀏覽:525
android全屏代碼 發布:2024-11-03 03:30:12 瀏覽:848
鍵入憑據存儲的密碼 發布:2024-11-03 03:30:01 瀏覽:721
設置密碼字元怎麼設置 發布:2024-11-03 03:22:50 瀏覽:26
腳本戰士是什麼意思 發布:2024-11-03 03:22:39 瀏覽:872