У меня есть 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.
$file = fopen("path/content.php", "r");
while($content[] = fgetcsv($file, 1000, ","));
После этого вы сможете получить доступ к каждому элементу, как вы указали:
echo $content[0][1]; // echos first line, url
Формат вашего файла называется CSV (значения, разделенные запятыми). Используя PHP, вы можете анализировать файл CSV, используя функцию fgetcsv
: http://php.net/manual/en/function.fgetcsv.php
Вы ищете что-то подобное?
/**
* 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
)
)