[英]Using curl, how can i call a php class and a function inside the class from a form i have on another website (different server)
[英]How can I call a PHP function from another server?
有沒有辦法可以從另一台服務器調用PHP函數?
我可以訪問這兩個服務器。 我想從服務器1調用PHP函數,並在服務器2中使用它。
我需要在兩台服務器上進行哪些更改才能實現? 謝謝!
您可以使用API來執行此操作。 在使用Curl或GuzzleHttp的服務器1上,您要對服務器2進行API調用
服務器2收到服務器1的請求后,便可以運行該功能。
這里要考慮的一件事是安全性,您將需要一種方法來驗證只有Server 1在發出請求,而不是在弄清楚您的API的人。 通常,發出請求時會傳遞API密鑰,並在API上進行檢查。
本質上,您要問的是如何在兩個PHP應用程序之間進行遠程過程調用(RPC) 。 要在不同服務器上托管的兩個應用程序(在您的情況下為PHP應用程序)之間進行通信,您需要選擇某種通信協議 。
您選擇的協議取決於很多事情,包括您的應用程序執行的操作,它們之間進行通信的頻率,要在它們之間發送的數據類型等等。
我自己不是專家,但是據我所知, gRPC和REST是兩種比較流行的API通信協議。 請參閱這些 文章以進行兩者之間的比較。 如果您的服務器將非常頻繁地來回通信,則可能需要考慮使用WebSockets或MQTT 。
對於大多數這些協議,您將不得不在一台服務器(要在其上調用您的功能的服務器)上設置服務/服務器,並在另一台服務器(要從中調用該服務器的服務器)上設置客戶端調用該函數)。
要設置gRPC,請查看此PHP 教程 。
要設置REST,您需要在服務器主機上公開HTTP端點,並從客戶端主機使用該端點。 公開端點最容易使用一個API框架來完成(其中只有Google“ PHP REST框架”)。 可以使用HTTP客戶端(例如Guzzle)來完成端點的使用,就像提到的其他一些答案一樣。
抱歉,如果不是同一服務器會話不會在其他頁面上生效,則無法像sesssion一樣進行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.