我可以包含来自其他服务器的类文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以包含来自其他服务器的类文件相关的知识,希望对你有一定的参考价值。
我在server1中有一个类。 server1中的FILE1
<?php
class myObject
{
public function __construct()
{
echo 'Hello, World';
}
}
?>
server2中的FILE 2
$section = require('http://xx.xxx.xxx.x/plugins/myObject.php');
$intance = new myObject();
当从server1本身的php文件中调用file2时,会创建Object。我可以在浏览器中看到“Hello World”。但是当从server2调用file2时它失败了。我找不到致命的错误类。我也尝试过include / file_get_contents / read / __autoload / spl_autoload_register方法。从其他服务器调用我的类没有任何帮助。
这可能吗?任何人都可以建议替代方案?请帮忙
更新:我有fopen并在server2中包含url,我试图包含文件。实际上我需要这个类和我的网站是两个服务器。
场景:我想在server2中建立一个钱包网站。我在另一台服务器[s1]中有必要的插件。我编写了一个与服务器1本身的插件交互的类文件。我打算在更多服务器上安装钱包网站。但所有这些网站都将与server1中的类进行交互。如果我能以某种方式将该类中的代码获取到我的网站,那么我也可以创建对象并从其他服务器调用类方法。请提出其他实施方法。
更新2:我可以构建类似API的东西,我的所有网站都会向S1中的主类发送请求并获得响应。一个例子会有所帮助
这可能吗?
不,PHP代码永远不会离开服务器。这就是为什么有像Composer这样的依赖管理工具。
如果要从服务器1在服务器2上运行代码,则需要实现执行此操作的Web服务。所以服务器2“调用”服务器1上的php文件它不“需要”它。尝试这样的事情:
文件1服务器1
<?php
class myObject
{
public function __construct()
{
echo json_encode(['result'=>'really cool data result'])
}
}
new myObject();
?>
文件2服务器2:
<?php
set_time_limit(0);
$url = "http://xx.xxx.xxx.x/plugins/myObject.php";
$ch = curl_init();
// Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Set the url
curl_setopt($ch, CURLOPT_URL,$url);
// Execute
$result_json=curl_exec($ch);
// Closing
curl_close($ch);
$result_obj = json_decode($result_json);
$result = $result_obj->result
如果要在服务器1上运行代码,则必须像这样执行,然后使用服务器1的结果并在服务器2上执行某些操作。您无法使用服务器1上存在的软件在服务器2上运行代码,因为根据定义你不能在另一台机器上存在的一台机器上运行某些东西。
您可能需要先下载该文件然后require
ing它。
不,你不能那样做。即使有非常糟糕的工作要做,你也不应该这样做。
如果您关心安全性,它会使您的代码非常容易受到攻击。
以上是关于我可以包含来自其他服务器的类文件的主要内容,如果未能解决你的问题,请参考以下文章
Jekyll 可以包含来自 gist 以外的其他来源的源代码吗?
解决未能加载文件或程序集“Newtonsoft.Json ...."或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)(代码片段