I want to read a file into an array and use some of the content from the file as array keys.
Example
myfile.txt
[SPLIT]
#START:KEY1
this is the content
#END:KEY1
[SPLIT]
#START:KEY2
this is the next content
#END:KEY2
...
I load the content from the file
$File = file_get_contents(myfile.txt);
I split the content at the maker [SPLIT] and create a array
$file_array = explode('[SPLIT]',$File);
foreach($file_array as $element)
{
//search for '#START:' get the part after that till lineend, use this as ($key) a key for a new array
....
$new[$key]=$element;
}
So, my question is, is there a easier or faster way, to create a array from the filecontent wich looks like?
$myarray[KEY1]=this is the content
$myarray[KEY2]=this is the next content
Did you tried to use regular expresions?
$content = file_get_contents('file_name.txt');
preg_match_all('/\[SPLIT\]
#START:(.*?)
(.*?)#END/s', $content, $rows);
$data = [];
foreach ($rows[1] as $i => $key) {
$data[$key] = trim($rows[2][$i]);
}
This will split based on new line :
$File = file('tmp/myfile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);