Как хранить и отображать химическую формулу типа (C8H9NO2) из ​​базы данных в php - PullRequest
1 голос
/ 02 мая 2020

Как хранить химические формулы типа (C8H9NO2) в базе данных в php. затем отобразите химическую формулу как (C8H9NO2) в php введите описание изображения здесь

1 Ответ

1 голос
/ 02 мая 2020

Я только что проверил это локально, и я думаю, что это то, что вы ищете:

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

Вы можете сохранить это HTML, которое будет отображать каждое число как верхний индекс. Если вы хотите использовать их в качестве подписчиков, замените sup на sub.

Что касается хранения его в базе данных, я должен быть честным, и StackOverflow не совсем учебный веб-сайт, но вы можете создать VARCHAR или TEXT столбец в базе данных и просто сохранить его там. Я думаю, что лучше отформатировать текст после сохранения, чтобы вам не приходилось делать это каждый раз, когда вы отображаете страницу для каждой имеющейся формулы. Однако это зависит от вас, может быть, вам нужен необработанный текст. Я думаю, это нормально в любом случае.


РЕДАКТИРОВАТЬ

Увидев картинку снова, я заметил, что она отличается от показанной в вопросе, поэтому важно выбрать sup или sub соответственно. Как показано в вопросе, оно должно быть 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...