是否可以从另一个域调用函数?

时间:2018-04-11 03:03:58

标签: php html

我有2个域名,我想将域名1中的php文件移动到域2 该文件的目的是获取用户输入,从数据库获取数据等。
我想这样做的原因是我不希望任何人都可以在域1中查看该文件。
有可能这样做吗?

1 个答案:

答案 0 :(得分:0)

您需要使用cURL将数据从第二台服务器传递到第一台服务器中的PHP文件,并在那里处理数据,然后读取发回的数据。

这是一个例子:

假设: example.org 是您的第一台服务器的域。

$ch = curl_init("https://example.org/check.php");

$data = array(
    'username'      => 'JohnDoe',
    'password'      => '2hAreZ08npmv'
);

$data_json = json_encode($data); //Convert the array into a JSON string format


curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS,  $data_json );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($data_json))
);

$result = curl_exec($ch); //Returned value (echo) from the PHP file in your 1st server

您的第一台服务器将通过JSON格式的POST方法接收用户名和密码。像这样:

{"username":"JohnDoe","password":"2hAreZ08npmv"}

您可以解码并将其转换为数组,并在第一台服务器的函数中使用它:

$data_received = "{"username":"JohnDoe","password":"2hAreZ08npmv"}";
$data_array = json_decode($data_received, true);

echo第一台服务器中的结果,您将在我在上面的代码中使用的$result变量中收到它。 $result的值可以是'true''false'或您echo的任何其他字符串。

这是使用PHP中的cURL在两台服务器之间进行通信的简单方法。