Php 用换行符爆弦的奇怪问题
我不知道这段PHP代码有什么问题: $sql = "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) )"; var_export(explode("\n",$sql)); 有些人则相反: 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) ) ;', ) 数组(0=>'CREATE TABLE test(id mediumint(9)无符号非空自动增量,文件名文本非空,元长文本,添加了_DATEDATETIME非空默认值'0000-00-00 00:00:00\',主键(id));',)Php 用换行符爆弦的奇怪问题,php,explode,Php,Explode,我不知道这段PHP代码有什么问题: $sql = "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) )"; var_export(explode("\n",$sq
注意到区别了吗?第二个显示它,因为没有用于分解字符串的换行符。我不明白这里发生了什么。有人知道吗?所有页面都是在同一台计算机上创建的吗?对于不同的操作系统,行尾字符代码是不同的。它可以是以下选项之一:
\n
、\r
和\r\n
,具体取决于系统是Windows、Mac还是*nix。您可能需要检查这三个页面。是否所有页面都是在同一台计算机上创建的?对于不同的操作系统,行尾字符代码是不同的。它可以是以下选项之一:\n
、\r
和\r\n
,具体取决于系统是Windows、Mac还是*nix。您可能需要检查这三种情况。您需要灵活处理换行
的外观。可以进行灵活的爆炸:
preg_split("/[\r\n]+/", $sql)
。。。或者,您可以将换行符标准化为您选择的格式:
$sql = strtr($sql, array(
"\r\n" => "\n",
"\r" => "\n",
));
explode("\n",$sql)
还值得注意的是,MySQL提供了几个SHOW
语句,允许您从表定义中获取最有用的数据。通常不需要解析SHOW CREATE TABLE
输出:
您需要灵活处理
换行
的外观。可以进行灵活的爆炸:
preg_split("/[\r\n]+/", $sql)
。。。或者,您可以将换行符标准化为您选择的格式:
$sql = strtr($sql, array(
"\r\n" => "\n",
"\r" => "\n",
));
explode("\n",$sql)
还值得注意的是,MySQL提供了几个SHOW
语句,允许您从表定义中获取最有用的数据。通常不需要解析SHOW CREATE TABLE
输出:
您的编辑器可能使用了
\r
而不是\n
。如果这是在Windows系统上,它可能是回车符\r或者如果您在网页中查看结果,它可能是html是的,我认为这是问题所在,但奇怪的是,有几个PHP像我希望的那样工作,而不是其他的,最奇怪的是测试文件都在同一个目录中。你的编辑器可能使用了
\r
而不是\n
。如果这是在Windows系统上,可能是回车符,或者如果你在网页中查看结果,可能是html是的,我认为这就是问题所在,但奇怪的是,有几个PHP像我希望的那样工作,而不是其他的,最奇怪的是测试文件都在同一个目录中。是的,它也在同一台计算机和同一个目录中。是的,它与\r一起工作得很好。我只知道它实际上取决于操作系统。非常感谢,为了解决这个问题,我将使用上面的阿尔瓦罗方法。是的,它也在同一台计算机和同一个目录中。是的,它与\r一起工作得很好。我只知道它实际上取决于操作系统。非常感谢,为了解决这个问题,我将使用上面的阿尔瓦罗方法。这是一个非常好的解决方案。非常感谢。你的解决方案真不错。非常感谢。