如何将输入的部分与输出匹配

时间:2012-11-14 18:09:47

标签: php mysql

好的,这是我的背景。我正在尝试创建一个接收输入并显示输出的页面。是的,对吗?嗯,这比那复杂一点。首先,我正在尝试为化学做这件事。我正在研究阳离子和阴离子。可以找到常见的简单列表here

我的目标是获取用户的输入并根据该输入为他们提供适当的平衡等式和名称。可以在here找到执行此操作的过程。

我需要做的第一件事就是解析信息,以便找出它是什么元素以及它有多少费用。我相信最好的方法是创建一个带有化学符号,名称和电荷的数组。

在确定阳离子和阴离子是什么之后,我将进行“十字交叉”方法以找到平衡电荷。从那里我需要查找每个离子的基本名称。执行此操作后,我找到与公式匹配的名称,然后添加每个元素在名称之前的数量。

当我尝试将所有这些信息组合成一个字符串时,我遇到了第一个问题。如何将这三个字符串添加到一起。

我的第二个问题部分来自解析,部分来自数组。当有更复杂的离子时,首先有两个原因。我解析信息的方式是大写字母。当人们使用这些更大的离子时,这就产生了很小的问题,因为那时我必须处理相当多的这些。或者当他们试图代表同一化合物的多个时。 IE他们写的东西就像这个Mg(ClO / 4)/ 2(我使用正斜杠来表示该类型的元素数)。我需要确保我有两个ClO / 4。你怎么会发现我首先正确解析这个元素?我怎么能确保我一直保持谁拥有多少?

2 个答案:

答案 0 :(得分:1)

我相信你所需要的是substr()功能。也就是说,你只想选择前2个,3个或任何字母。 但是在需要自定义缩写形式的情况下,您需要以associative array或类似的形式提供它。

因此,在数组中,您将拥有$myarray = ["name"=>"MagnesiumWhatever", "abbreviation"=>"Mg24xy"]

我认为你的html中还需要subscript / superscript letters

现在你有了如何做到这一点的链接。做一些研究。祝你好运。

答案 1 :(得分:0)

这不是一个简单的应用程序。您需要从一个完整的元素,离子,分子等列表开始,以及它们的属性和名称的变化。之后,您将不得不使用各种string functions来匹配用户输入到该数据中的内容。

至于输出,你可以使用HTML / CSS函数作为sub / superscript,如toninoj所提到的,对于更复杂的东西你可能想要查看LaTeX

可能整个大学课程都涵盖了这样的事情,以及完全符合这一要求的商业软件包。