簡體   English   中英

如何使用PHP解析命令行類型的指令?

[英]How to parse a command line type instruction with PHP?

我有一個基於文本的游戲的想法,在該游戲中,我會將命令和參數傳遞給php,以決定下一步如何處理玩家。

我會在AJAX表單中輸入說“向北”或諸如“使用鑰匙門”之類的更復雜的信息,該命令會將命令發送到php腳本,我希望php腳本知道它正在使用什么操作,例如“ use”和還有第一個和第二個參數“ key”和“ door”,並決定下一步該怎么做,但是我不確定如何去做。

請注意,我不想從命令行運行此命令,而是從基於Web的界面運行。

假設AJAX表單會將請求發送到/game.php?do=use+key+door ...

然后在game.php中,您可以:

$do = $_GET['do'];
list($action, $object) = split(' ', $do, 2);
// $action == 'use'
// $object == 'key door'

您可以在此處簽出代碼和輸出示例

(如果您選擇在POST中實現表單,則$_POST['do']如此。)

在我看來,如果您使用的是Ajax,則可以使用getpost因此在您的php腳本中,您只需檢查$_GET$_POST

您可以從一個請求(文本區域,輸入)獲取整個參數字符串。 您可以從_GET_POST獲得此信息。 至於如何處理信息,則必須構建一個解析器。 它的復雜程度取決於您。 您可以做的更簡單的事情之一就是將請求按空格分割成令牌(您將獲得“ go”,“ north”或“ use”,“ key”,“ door”)。 檢查您的關鍵字列表,以將操作添加到堆棧中(執行,使用),並將actor和actees添加到堆棧中(鍵,門,北)。 扔掉不必要的單詞(上,下,等)。 然后遍歷堆棧。 如果您獲得“使用”,則需要緊隨其后的兩個參數(演員和演員,例如,使用門上的鑰匙)。 如果您缺少此信息,或者它是胡扯的(請使用Foon),請告訴用戶該命令無效。 給他們一個常用命令列表。 您可能還希望為某些對象和拼寫錯誤給他們一些余地。 您還可以閱讀有關詞法分析器的更多信息,以更好地了解如何以更復雜的方式執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM