【发布时间】:2011-06-03 11:00:06
【问题描述】:
我不知道这段 PHP 代码有什么问题:
$sql = "创建表测试 ( id mediumint(9) unsigned NOT NULL auto_increment, 文件名文本不为空, 元长文本, added_date datetime NOT NULL default '0000-00-00 00:00:00', 主键(id) )"; var_export(explode("\n",$sql));上面的代码基本上是用换行符('\n')分解$sql中的字符串,然后使用var_export输出。我有一些 PHP 测试文件可以处理代码,但并不是所有的测试文件都显示了我希望的结果:
array ( 0 => '创建表测试 (',
1 => ' id mediumint(9) unsigned NOT NULL auto_increment, ',
2 => ' 文件名文本 NOT NULL, ',
3 => '元长文本,',
4 => ' added_date datetime NOT NULL default \'0000-00-00 00:00:00\', ',
5 => '主键 (id)', 6 => ') ;',
)
一些显示这个代替:
array ( 0 => 'CREATE TABLE test ( id mediumint(9) unsigned NOT NULL auto_increment, filenames text NOT NULL, meta longtext, added_date datetime NOT NULL default \'0000-00-00 00:00:00\', PRIMARY KEY (ID) ) ;', )注意到区别了吗?第二个显示它,因为没有换行符来爆炸字符串。我不明白这里发生了什么。有人知道吗?
【问题讨论】:
-
您的编辑器可能使用了
\r而不是\n。 -
如果这是在 Windows 系统上,它可能是回车 \r,或者如果您在网页中查看结果,它可能是 html
-
是的,我认为这就是问题所在,但奇怪的是有几个 PHP 像我希望的那样工作,但其余的却不是,最奇怪的是测试文件都在同一个目录中。