Я работаю над проектом, где мне нужно получить доступ к файлу .dat, содержащему мои данные, в формате csv, а затем использовать его для создания страницы продуктов для воображаемого сайта электронной коммерции. Я сделал это так, что у меня появилось правильное количество изображений / информации, но я не могу манипулировать массивами, чтобы я мог представить конкретные фрагменты.
Мой .dat-файл выглядит так:
1001,Logitech G703,Wireless gaming mouse,$99.99,mouse.jpg 1002,Microsoft Keyboard,Bluetooth mechanical keyboard,$59.99,keyboard.jpg 1003,Bose Speaker,Teal wireless surround sound speaker,$159.99,speaker.jpg 1004,KickSTART,Grape flavored Mountain Dew KickSTART,$1.49,kickstart.jpg 1005,Google Pixel,Google's first real smartphone,$799.99,pixel.jpg 1006,Canon EOS REBEL,24.2 Megapixel,$849.00,canon.jpg 1007,Surface Pro 4,128GB 4GB RAM Intel Core i5=>$698.99,surface.jpg 1008,Luna,Siberian Husky Female,$999999.99,luna.jpg 1009,Loki,Siberian Husky Male,$999999.99,loki.jpg 1010,Coffee Mug,"This coffee is making me awesome!",$5.00,mug.jpg
И все остальное выглядит так:
<?php $data = file('products.dat'); foreach ($data as $products){ $i++; $dataExplode = explode(",", $products[$i]); ?> <div class="product"> <image class="product_image" src="img/loki.jpg"> <?php print $products; ?> <br>$20.99 <form method="post" action="viewcart.php?action=add&code=<?php echo $product_array[$key]["code"]; ?>"> <div><input type="text" name="quantity" value="1" size="2" /><input type="submit" value="Add to cart" class="btnAddAction" /></div> </div> <?php }; ?>
При использовании print на $ products в моем цикле foreach он отображает информацию о продукте в последовательном порядке, как я хочу, но я не могу сузить его и использовать строки, разделенные запятыми. Кроме того, мне нужно иметь возможность отображать изображения, связанные с каждым продуктом, но также не смогли найти рабочий метод для этого.
Я ценю помощь и совет!
Вам не нужно указывать $ i внутри массива продуктов, который указывает на каждый столбец без учета строк.
Вам нужно взорваться по строкам \n
а затем по запятой для каждой строки (продукта).
Когда вы берете линию продуктов и взорвали ее, она становится массивом.
$data= file('products.dat'); foreach ($data as $line){ $product = explode(",",$line); $id = $product[0]; $title = $product[1]; $price = $product[2]; $description = $product[3]; $image = $product[4]; }
Надеюсь это поможет.