找到PHP变量的实际值

时间:2010-05-03 13:14:55

标签: php variables

在阅读制表符分隔的文本文件并将其插入MySQL数据库时,我真的很头疼。

制表符分隔文本文件是我从MS SQL数据库生成的(我认为),我编写了一个简单的脚本来读取文件并将其插入MySQL数据库的现有表中。

但是,txt文件中的数据似乎存在一些问题。当我的PHP脚本解析文件并输出INSERT语句时,每个字段中的值都比它们应该的长。例如,第一个字段应该是简单的两个字符的字母数字值。如果我回显INSERT语句,使用Firebug(在Firefox中),每个字符之间是黑色菱形中的问号。如果我var_dump值,我得到以下内容:

string(5) "A1" 

现在,这清楚地显示了一个两个字符的字符串,但是var_dump告诉我它是五个字符长!

如果我修剪()值,我得到的只是第一个字符(在本例中为“A”)。

我怎样才能获得其他角色,即使它只是为了删除它们?此外,这似乎迫使MySQL将值插入BLOB,而不是作为varchar插入。

西蒙

UPDATE 如果我这样做:

echo mb_detect_encoding($arr[0]);

我得到'ASCII'的结果。这不是多字节的,是吗??

2 个答案:

答案 0 :(得分:1)

听起来像编码问题。

您是否通过不是多字节安全的PHP函数运行任何字符串?

您可能需要在PHP中查看multi byte aware functions

答案 1 :(得分:0)

好的,通过在记事本中打开TXT文件并将其专门保存为UTF-8解决了所有这些问题。

我仍然不知道使用了什么编码(也许是UNICODE ??)但它现在全部排序了