我有一些来自XML文件的对象。我正在尝试将XML文件转换为SQL数据结构。到目前为止,我成功地检索了表和列,现在我需要找出每个列的数据类型。gettype()
没有帮助,因为它总是返回object
。转换是无效的,我试图转换到每个数据类型,看看它是否适合一个,但是,例如,如果我将5hi
转换为整数,结果将是5
。下面是关于XML文件的部分:
<device>
<manufacturer>SIEMENS</manufacturer>
<model>SOMATOM Definition</model>
<serial>60301</serial>
<version>syngo CT 2010A</version>
</device>
例如,manufacturer
为string
, serial
为integer
。如何根据对象的值将其转换为适当的数据类型?
is_numeric将为您提供检查值是否为数字的能力
如果您希望确保整数,则循环遍历每个字符并使用ctype_digit
您可能还希望使用正则表达式来识别更复杂的结构。
的例子:
if(is_numeric($value)) {
$value = doubleval($value); //cast to double
}