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