首页 > 解决方案 > 如何在php中存储和显示数据库中的(C8H9NO2)等化学式

问题描述

如何将化学式如(C8H9NO2)存储在php的数据库中。然后在 php 中显示化学式如 (C8H9NO2) 在 此处输入图像描述

标签: phpdatabase

解决方案


我只是在本地对其进行了测试,我认为这就是您要寻找的:

preg_replace('/(\d+)/i', '<sup>$1</sup>', 'C8H9NO2')
// returns "C<sup>8</sup>H<sup>9</sup>NO<sup>2</sup>"

您可以存储此 HTML,它将每个数字呈现为上标。如果您希望它们作为下标,请替换supsub.

至于将其存储到数据库,我必须说实话,StackOverflow 并不完全是一个教程网站,但您可以在数据库上创建一个VARCHARTEXT列并将其存储在那里。我认为最好在保存时格式化文本,这样您就不必在每次为每个公式呈现页面时都这样做。但是,这取决于您,也许您需要原始文本。我想无论哪种方式都很好。


编辑

再次看到图片后,我注意到它与问题中显示的不同,因此选择supsub相应地很重要。如问题所示,它应该是sup;但是,根据示例图像,您要求sub. 所以:

preg_replace('/(\d+)/i', '<sub>$1</sub>', 'C8H9NO2')
// returns "C<sub>8</sub>H<sub>9</sub>NO<sub>2</sub>"

在您的代码中,最终结果如下:

<b>Molecular Formula by Element:</b> <?=preg_replace('/(\d+)/i', '<sub>$1</sub>', $row['mole_for_element'])?><br>

推荐阅读