次の PHP エラーが発生します:
PHP Notice: Undefined offset: 1
これをスローする PHP コードは次のとおりです。
$file_handle = fopen($path."/Summary/data.txt","r"); //open text file
$data = array(); // create new array map
while (!feof($file_handle) ) {
$line_of_text = fgets($file_handle); // read in each line
$parts = array_map('trim', explode(':', $line_of_text, 2));
// separates line_of_text by ':' trim strings for extra space
$data[$parts[0]] = $parts[1];
// map the resulting parts into array
//$results('NAME_BEFORE_:') = VALUE_AFTER_:
}
このエラーはどういう意味ですか? このエラーの原因は何ですか?
ベストアンサー1
変化
$data[$parts[0]] = $parts[1];
に
if ( ! isset($parts[1])) {
$parts[1] = null;
}
$data[$parts[0]] = $parts[1];
または単に:
$data[$parts[0]] = isset($parts[1]) ? $parts[1] : null;
ファイルのすべての行にコロンが含まれているわけではないので、その行を爆発させるとサイズ 1 の配列が返されます。
によるとphp.net 可能な戻り値爆発する:
区切り文字によって形成された境界で文字列パラメータを分割して作成された文字列の配列を返します。
区切り文字が空の文字列 ("") の場合、explode() は FALSE を返します。区切り文字に文字列に含まれていない値が含まれており、負の制限が使用されている場合は、空の配列が返されます。それ以外の場合は、文字列を含む配列が返されます。