目前我有这个:
<?php
$fn = "file.txt";
$file = file_get_contents("./$fn");
$array = array($file);
?>
文本文件中的最新例子:
array(1,4,3,2),array(3,2,1,2),array(5,6,7,8)
然而,当我打印数组甚至sizeof($ array)时,它是空的。什么交易?
答案 0 :(得分:0)
您的文件内容是纯文本而不是数组数据结构。您必须自己解析内容。这是一种方法:
$file_content = "array(1,4,3,2),array(3,2,1,2),array(5,6,7,8)";
$matches = [];
$arrays = [];
if (preg_match_all('~array\(((?:(?:\d+),?)*)\),?~', $file_content, $matches)) {
$arrays = array_map(function ($array) { return explode(',', $array); }, $matches[1]);
}
$arrays
现在包含您期望的数组,您可以使用count()
来检查其大小。
如果你知道你的文件总是包含数组,那么另一种方法就是使用eval。
eval('$arrays2 = [' . $file_content . '];');
现在$arrays2
包含相同的数组。有一个微妙的区别。前一种方法不会将值转换为整数,而eval也会这样。
警告:如果100%确定您知道该功能的内容,则仅使用eval()。另请注意,这种方法会因糟糕的数据而失败,而前者则会更有弹性。