我有一个文件,我们将在UNIX格式下调用 info.txt ,其中只包含以下内容:
#Dogs
#Cats
#Birds
#Rabbits
我正在反对它:
$filename = "info.txt";
$fd = fopen ($filename, "r");
$contents = fread ($fd,filesize ($filename));
fclose ($fd);
$delimiter = "#";
$insideContent = explode($delimiter, $contents);
现在一切看起来都很好,除非我显示数组时得到以下内容。
[0] =>
[1] => Dogs
[2] => Cats
[3] => Birds
[4] => Rabbits
我检查了.txt文件以确保第一个#前面没有任何空格或隐藏字符,所以我不知道为什么会发生这种情况,除了我觉得我错过了一些非常糟糕的东西简单。有什么想法吗?
提前致谢!
答案 0 :(得分:6)
explode()
分隔分隔符。如果在第一个分隔符之前没有任何内容,那么第一个元素将是什么。没有。一个空字符串。
答案 1 :(得分:2)
我猜这是因为第一个字符是分隔符,所以它在第一个元素中放置它的左边的任何内容,即使它是一个空字符串。因此,您必须使用“Dogs”启动文件,而不是“#Dogs”
答案 2 :(得分:0)
你正在运行它
#狗#猫#鸟#兔
PHP通过剪切将其拆分,因此在你拥有Dogs的地方它会看到它像'Blank Space'|犬。
轻松填写[0]答案 3 :(得分:0)
你可以通过换行符进行爆炸,而不是使用#as,尽管你会有一个尾随的空项目。我猜你还需要在解析后进行一些完整性检查(如果为空则删除第一个/最后一个项目)。
答案 4 :(得分:0)
另一种方式
$f=file("file");
print_r( preg_replace("/^#/","",$f) ) ;