Создание массива PHP из содержимого файла

У меня есть php-файл, который содержит текст в следующем формате.

line 1 -   "Title","URL","imgURL","tags"line 2 -   "Title","URL","imgURL","tags"line 3 -   "Title","URL","imgURL","tags"

Он в основном структурирован как база данных, поэтому каждая строка является записью, а первый набор «» всегда является заголовком. 2-й набор «» — это всегда URL и т. Д. …. построчно.

Я не опытный программист в любой степени воображения. Каков наилучший способ создать массив из содержимого файла?

Я попробовал следующее, но это не сработало.

$content = array(file_get_contents("path/content.php"));

Я считаю, что мне нужно обновить структуру данных и метод, который я использую для создания массива, но я не уверен, как. Любая помощь с благодарностью.

Я хочу иметь возможность извлекать заголовок, URL, imgURL или теги из любой строки текста, но я не знаю, как выразить это в формате массива.

Я думаю, что я хочу иметь возможность запросить $content[0][1] чтобы получить URL из строки 1 и $content[1][3] получить теги из line2.

-1

Решение

$file = fopen("path/content.php", "r");
while($content[] = fgetcsv($file, 1000, ","));

После этого вы сможете получить доступ к каждому элементу, как вы указали:

echo $content[0][1]; // echos first line, url
1

Другие решения

Формат вашего файла называется CSV (значения, разделенные запятыми). Используя PHP, вы можете анализировать файл CSV, используя функцию fgetcsv: http://php.net/manual/en/function.fgetcsv.php

1

Вы ищете что-то подобное?

/**
* Decodes a full CSV file to an array.
*
* @param string $file File to decode
*
* @throws \Exception
*
* @return array[]
*/
function csv_decode($file) {
$fh = fopen($file, 'r');

if($fh === false)
{
// FIXME: You should replace this with your own exception!
throw new \Exception("Failed to open file '$file' for reading");
}

$rows = [];
while ($row = fgetcsv($fh))
{
$rows[] = $row;
}

return $rows;
}

Формат, с которым вы столкнулись, известен как CSV (что означает значения, разделенные запятыми)

Вышеприведенная функция декодирует ваши данные в массив с описанной вами структурой, что видно из вывода следующего фрагмента при запуске на данных вашего примера:

print_r(csv_decode('values.txt'));

Какие выводы:

Array
(
[0] => Array
(
[0] => Title
[1] => URL
[2] => imgURL
[3] => tags
)

[1] => Array
(
[0] => Title
[1] => URL
[2] => imgURL
[3] => tags
)

[2] => Array
(
[0] => Title
[1] => URL
[2] => imgURL
[3] => tags
)

)
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector