@inmotusdesign
Фронтенд-разработчик

Как вывести отфильтрованные данные в из CSV в HTML по выбранному столбцу?

Задача была: вывести страницы в HTML по данным строк из CSV (изображения для категорий по заданному признаку - столбец Category Name > все изображения данной категории в списке


  • Пример CSV:
Image Source,Category Name,Category HTML,Comma Keywords
/data/catalog/premium-graphics/abstract-flowers/watermark/abstract-flower-bud.png,abstract flowers,abstract-flowers.html "abstract, flower, bud"
/data/catalog/premium-graphics/abstract-flowers/watermark/flower-bud-natural-plant.png,abstract flowers,abstract-flowers.html,"flower, bud, natural, plant"
/data/catalog/premium-graphics/abstract-flowers/watermark/flower-bud-nature.png,abstract flowers,abstract-flowers.html, "flower, bud, nature"


Вопрос: где ошибка в коде — не правильно сформулировано условие или вывод данных в $content?

<?php
    function CSVtoHTML() {
        $row = 0;
        $header = [];
        if (($handle = fopen("https://bundlespace.com/graphics/example.csv", "r")) !== FALSE) {
            while (($data = fgetcsv($handle, 2565, ",")) !== FALSE) {
    
                // first line is header, grab it then continue
                if ( $row === 0) {
                    $header = $data;
                    $row++;
                    continue;
                }
    			
                $data = array_combine($header, $data);
    		$category = $data['Category Name'];
    			
		$item = '<li><img src="'.Image Source.'" width="200" height="200"></li>';
				
		if (($row[i][$category] == $row[i+][$category])!== TRUE) {										
			print $item;
			$rows++;
		}		
    			
		$item++;
				
    		$content = '<!doctype html>
    			<html lang="en">
    				<head>
    					<meta charset="UTF-8">
    					<title>Images in category '.$data['Category Name'].'</title>
    				</head>
    				<body>
    					<h1 id="graphics">Images in category '.$data['Category Name'].'</h1>									
    					<ul>						
    						'.$item.'
    					</ul>
    				</body>
    				<footer>FOOTER</footer>
    				</html>';
    
                // make the file
    			$filedata = file_get_contents($content);
    			$filedata = mb_convert_encoding($content, 'UTF-8');
    			file_put_contents(''.$data['Category HTML'], $filedata);
    
                $row++;
            }
            fclose($handle);
        }
    }
    CSVtoHTML();
    ?>
  • Вопрос задан
  • 33 просмотра
Решения вопроса 1
glaphire
@glaphire Куратор тега PHP
PHP developer
Ошибка синтаксическая тут
$item = '<li><img src="'.Image Source.'" width="200" height="200"></li>';

Image Source - невалидная переменная.
Чтобы говорить конкретнее, нужно включить вывод ошибок в PHP и смотреть, что они выведут. Если ошибка не синтаксическая, а логическая, то нужно разбить код на мельшие функции и отделить генерацию html от обработки данных, потому что тут почти ничего не понятно
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
RecruitIT Москва
от 100 000 до 160 000 ₽
Сбер Москва
До 240 000 ₽
RecruitIT Москва
от 120 000 до 150 000 ₽
27 окт. 2020, в 15:42
1000 руб./в час
27 окт. 2020, в 15:30
100000 руб./за проект
27 окт. 2020, в 15:28
100000 руб./за проект