2014-10-05 36 views
-3

好的,基本上,我写了一个PHP脚本(这是一个MMORPG,所以我们很清楚)。PHP打开服务器上的文件与获取变量?

我希望能够做的事情不是编写包含完全相同数据的新(大量)文件,而只是在一个大脚本中(以便能够创建更多的NPC方面到游戏),我宁愿只是发送一个请求,使用预定义的get变量(即collect = Y或attack = Y等)打开page.php,这实际上与真实玩家发送请求的方式相同,让系统打开文件,在文件中运行,并在关闭之前对所需的数据库进行任何查询。

我在的fopen是如何工作的,说实话困惑,有些事情我读过让我相信以上是可能的,其他人没有这么多。

任何帮助,将不胜感激。

+0

'file_get_contents('http://fullurl.to/file.php?collect=y&attack=y');' – Steve 2014-10-05 22:03:16

+0

我并不完全清楚你想要做什么,但是你是否让你的脚本变成一个可以调用的公共方法的类或对象? – 2014-10-05 22:09:15

+0

你不得不使用'fopen()'。大多数时候你应该使用'file_get_contents()'和'file_put_contents()'。 – 2014-10-05 22:19:22

回答

2

我要去无路可退,在这里,并尝试解决你的问题(据我所知),而不是回答你的问题(如你投吧)。

你的根本问题是,你对待PHP文件,代码完成单位,从查询字符串输入,具体处理该文件,并输出给用户。这违反了“单一职责原则”,因为至少有三个顶级的责任在这里:

  • 处理用户输入,并决定相应的操作
  • 执行行动,包括数据库结构的操作
  • 沟通行动的结果返回给用户

这些都可以分解成更小的任务 - 例如,连接数据库的基本事实应该被排除在更抽象的行为,因为茶调整敌人的移动方式,将敌人改变为存储在MongoDB文档而不是MySQL表格中,不需要修改相同的代码。

的溶液,因此,是拥抱结构化编程,这在现代PHP(和其它语言)通常意味着拥抱面向对象的编程。因此,在第一级组织中,您可能有:

  • 用于查看查询字符串,检查其是否合理以及创建由其描述的操作的抽象列表的类。
  • 类代表特定的动作,如“攻击”和“收集”,其采取的是什么攻击或从抽象名单收集,并返回一个不同的抽象列表,详细结果的详细信息。
  • 代表玩家的类,以及游戏中的敌人或物体,动作类可以使用这些类来计算不同情况下的结果。
  • 用于采取措施结果并将其显示给用户的类。

现在,我不需要说“我需要创建一个查询字符串,运行页面运行的代码,然后获取输出并以某种方式使用它”,您可以说“我需要创建一个操作列表,运行适当的行动,并以某种方式使用结果列表“。

听起来好像这比仅仅强制PHP运行现有代码要做的工作多得多,但是它为您创建现有功能的新组合的功能不会被低估。