Php 从文件读取并创建关联数组?
我可以从文件中读取并创建数组,但是出现以下错误:注意:未定义的偏移量:1。在我的数组中有一个元素是空的,我不明白为什么它是空的 我的文本文件的格式如下:Php 从文件读取并创建关联数组?,php,arrays,text-files,associative-array,Php,Arrays,Text Files,Associative Array,我可以从文件中读取并创建数组,但是出现以下错误:注意:未定义的偏移量:1。在我的数组中有一个元素是空的,我不明白为什么它是空的 我的文本文件的格式如下: #灭绝:0,美国ABC家族[]http://localhost/IpInfo/index.html #F:0,CBC[]http://localhost/IpInfo/index1.html #F:0,A&E[]http://localhost/IpInfo/index2.html 这是我的密码: $fh = fopen('file1.t
#灭绝:0,美国ABC家族[]http://localhost/IpInfo/index.html
#F:0,CBC[]http://localhost/IpInfo/index1.html
#F:0,A&E[]http://localhost/IpInfo/index2.html
这是我的密码:
$fh = fopen('file1.txt', 'r');
$theData = fread($fh, filesize('file1.txt'));
$arr = array();
$my_array = explode("\r\n", $theData);
foreach($my_array as $line){
$tmp = explode("[]", $line);
$arr[$tmp[0]] = $tmp[1];
}
fclose($fh);
echo '<pre>';
echo print_r($arr);
$fh=fopen('file1.txt','r');
$theData=fread($fh,filesize('file1.txt');
$arr=array();
$my\u array=explode(“\r\n”,$theData);
foreach($my_数组作为$line){
$tmp=分解(“[]”,$line);
$arr[$tmp[0]]=$tmp[1];
}
fclose($fh);
回声';
回声打印(arr);
我不太确定是什么问题?任何帮助都将不胜感激
谢谢 您的输入数据可能没有使用
\r\n
作为行分隔符?我不确定我是否完全解决了这个问题。此外,您可能还需要考虑空行
我将使用file()
函数,它简化了对文件行的迭代,可以处理Windows和Unix换行,并检查空行:
$my_array = explode("\r\n", $theData);
array_pop($my_array);
$arr=array();
foreach(文件('a.txt')为$line){
//从$line开始,我在这里使用'trim()'
//仍将包含换行分隔符
$line=修剪($line);
//跳过空行
if(空($行){
继续;
}
$tmp=分解(“[]”,$line);
$arr[$tmp[0]]=修剪($tmp[1]);
}
回声';
印刷费($arr);
输出:
数组
(
[#灭绝:0,ABC家庭美国]=>http://localhost/IpInfo/index.html
[#灭绝:0,CBC]=>http://localhost/IpInfo/index1.html
[#灭绝:0,A&E]=>http://localhost/IpInfo/index2.html
)
可能您的输入数据没有使用\r\n
作为行分隔符?我不确定是否完全解决了问题。此外,您可能需要考虑空行
我将使用file()
函数,它简化了对文件行的迭代,可以处理Windows和Unix换行,并检查空行:
$my_array = explode("\r\n", $theData);
array_pop($my_array);
$arr=array();
foreach(文件('a.txt')为$line){
//从$line开始,我在这里使用'trim()'
//仍将包含换行分隔符
$line=修剪($line);
//跳过空行
if(空($行){
继续;
}
$tmp=分解(“[]”,$line);
$arr[$tmp[0]]=修剪($tmp[1]);
}
回声';
印刷费($arr);
输出:
数组
(
[#灭绝:0,ABC家庭美国]=>http://localhost/IpInfo/index.html
[#灭绝:0,CBC]=>http://localhost/IpInfo/index1.html
[#灭绝:0,A&E]=>http://localhost/IpInfo/index2.html
)
可能您的输入数据没有使用\r\n
作为行分隔符?我不确定是否完全解决了问题。此外,您可能需要考虑空行
我将使用file()
函数,它简化了对文件行的迭代,可以处理Windows和Unix换行,并检查空行:
$my_array = explode("\r\n", $theData);
array_pop($my_array);
$arr=array();
foreach(文件('a.txt')为$line){
//从$line开始,我在这里使用'trim()'
//仍将包含换行分隔符
$line=修剪($line);
//跳过空行
if(空($行){
继续;
}
$tmp=分解(“[]”,$line);
$arr[$tmp[0]]=修剪($tmp[1]);
}
回声';
印刷费($arr);
输出:
数组
(
[#灭绝:0,ABC家庭美国]=>http://localhost/IpInfo/index.html
[#灭绝:0,CBC]=>http://localhost/IpInfo/index1.html
[#灭绝:0,A&E]=>http://localhost/IpInfo/index2.html
)
可能您的输入数据没有使用\r\n
作为行分隔符?我不确定是否完全解决了问题。此外,您可能需要考虑空行
我将使用file()
函数,它简化了对文件行的迭代,可以处理Windows和Unix换行,并检查空行:
$my_array = explode("\r\n", $theData);
array_pop($my_array);
$arr=array();
foreach(文件('a.txt')为$line){
//从$line开始,我在这里使用'trim()'
//仍将包含换行分隔符
$line=修剪($line);
//跳过空行
if(空($行){
继续;
}
$tmp=分解(“[]”,$line);
$arr[$tmp[0]]=修剪($tmp[1]);
}
回声';
印刷费($arr);
输出:
数组
(
[#灭绝:0,ABC家庭美国]=>http://localhost/IpInfo/index.html
[#灭绝:0,CBC]=>http://localhost/IpInfo/index1.html
[#灭绝:0,A&E]=>http://localhost/IpInfo/index2.html
)
原因是explode函数在“\r\n”处拆分读入的数据。最后一行后面有一行新行,这就是导致最后一个“数组”没有键或值的原因。若要解决此问题,请将此行替换为:$my_array=explode(\r\n“,$theData);
:
原因是explode函数在“\r\n”处拆分读入的数据。最后一行后面有一个新行,这就是导致最后一个“数组”没有键或值的原因。若要解决此问题,请将此行替换为:
$my\u array=explode(\r\n“,$theData);
:
原因是explode函数在“\r\n”处拆分读入的数据。最后一行后面有一个新行,这就是导致最后一个“数组”没有键或值的原因。若要解决此问题,请将此行替换为:
$my\u array=explode(\r\n“,$theData);
:
原因是explode函数在“\r\n”处拆分读入的数据。最后一行后面有一个新行,这就是导致最后一个“数组”没有键或值的原因。若要解决此问题,请将此行替换为:
$my\u array=explode(\r\n“,$theData);
:
谢谢,但是我仍然在:$arr[$tmp[0]]=trim($tmp[1])处收到一个错误;与以前相同的错误,未定义偏移量1?@d