访问PHP方法
我即将开始为一个使用C#的组织做一个项目。为了获得必要的数据,我必须从数据库中获取数据,但是,即使创建应用程序,我也不能访问数据库。你可以假设这会带来一点挑战 在过去的一个项目中,我创建了一个PHP脚本,用于访问数据库并以JSON格式返回数据。我也希望如此,不幸的是,我需要能够进行大约100-120个查询,因此为我需要的每个查询创建一个PHP脚本将非常耗时访问PHP方法,php,database,methods,c#-3.0,Php,Database,Methods,C# 3.0,我即将开始为一个使用C#的组织做一个项目。为了获得必要的数据,我必须从数据库中获取数据,但是,即使创建应用程序,我也不能访问数据库。你可以假设这会带来一点挑战 在过去的一个项目中,我创建了一个PHP脚本,用于访问数据库并以JSON格式返回数据。我也希望如此,不幸的是,我需要能够进行大约100-120个查询,因此为我需要的每个查询创建一个PHP脚本将非常耗时 是否可以在PHP中创建一个接受字符串参数的方法,然后使用某种方式将字符串从C#传递到该方法中?如果是的话,我该怎么做?如果我可以将字符串传递
是否可以在PHP中创建一个接受字符串参数的方法,然后使用某种方式将字符串从C#传递到该方法中?如果是的话,我该怎么做?如果我可以将字符串传递给脚本中的方法,那么只需要3个方法(在PHP脚本中)就可以进行所有必要的查询。从C应用程序/库调用PHP方法的一个简单示例将涉及使用
WebRequest
和WebResponse
类:
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create("http://server/script.php?method=my_method");
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
Stream stream = response.GetResponseStream();
使用流,您可以解析或反序列化响应(例如,如果是JSON字符串)
此实现依赖于使用方法
参数的script.php
,并将调用委托给该方法;伪路由,如果你愿意的话。可以通过查询字符串传递更多参数,并由调用的方法使用
这方面的另一个小例子:
$r = new Repository();
$d = $r->{$_GET['method']}();
echo json_encode($d);
然而,其中大部分可以使用现有技术实现。将PHP方法公开为API是一件已经做得很彻底的事情,并且存在大量RESTful API框架来加速此类应用程序的开发。同样的情况也适用于使用API的C#应用程序/库,前提是您在客户机实现中使用某些东西
你问题的答案是“可能吗…”;当然是的,但是这是一个相当高的要求,实现将完全依赖于问题域
作为详细说明(可能太长了,无法发表评论),我目前正在进行一个大规模的大修项目。以前的开发者决定推出他们自己的一切。那对我意味着什么?我一点也不能重用他们的代码库。他们制定了自己的安全战略。垃圾 我说垃圾不是因为我可以写得更好(我可以,但不多),而是因为我知道得更好 我喜欢成熟的技术,这些技术能够很好地集成,并且有大量的社区和开发人员支持。当我在文档和这里之间遇到问题时,我通常可以很快找到解决方案。此外,组件的问题被记录、修复,并且可以解决
为生产滚动您自己的集成组件(无论是安全性还是其他方面),尤其是当您知道您将其视为一种学习体验时,这是不负责任的。您在这里自相矛盾。您需要从您无权访问的数据库中获取数据。C#是从哪里来的?请更详细地解释一下架构。我一点也不自相矛盾。我正在使用C#处理收到的数据。是否可以在PHP中创建一个方法,该方法接受字符串参数,然后使用某种方式将字符串从C#传递到其中如果你能理解这一点,那么我想我们可能会有所进展。我想创建一个PHP脚本,其中包含3个方法,每个方法都需要一个字符串参数。我希望能够从C#调用这些方法中的每一个。这样更好吗?需要这样做的理由是数据库中包含的数据是未成年人的个人信息。通过不授予数据库权限,组织试图防止对数据进行不必要的访问。是的,我想像这样的东西有API可用。尽管如此,如果您总是依赖第三方API,您将一无所获。我总是第一次尝试自己做,之后的任何时候,我要么创建了自己的API,要么使用了第三方API。@RandomlyKnighted如果你正在从事一个涉及未成年人个人身份信息的项目,我甚至不会考虑为了学习而滚动自己的任何东西。把它留给个人项目;使用成熟的技术来完成这项任务。