Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68

Плагин для добавления товара на сайт html

13.06.2021, 06:43. Показов 4115. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите как реализовать плагин для добавления товара из файла csv на простой сайт html.
Плагины на ворд пресс либо платные ,либо глючные, пишут то там некоректно заполнено название столбца, то еще какие нибудь ошибки выдает.
Код php должен прочитать файл и потом добавить в виде колонок и категорий с изображением и описанием на страницу сайта.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2021, 06:43
Ответы с готовыми решениями:

Плагин для добавления флеш-игр
Ищется плагин для Joomla / Wordpress / другой любой паблик cms с возможностью пользователям добавлять флеш-игры на сайт. Форма...

Плагин для быстрого добавления flash игр
Подскажите пожалуйста, есть ли русский плагин для добавления flash игры на сайт wordpress, либо что-то наподобии, чтобы быстро добавить,...

Woocomerce плагин для настройки товара
Несколько месяцев назад встретил подобный плагин связанный с одеждой, жалею что не оставил в закладки, мб кто знает название? Плагин...

17
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
13.06.2021, 07:28
Цитата Сообщение от Alexei10001982 Посмотреть сообщение
простой сайт html
Цитата Сообщение от Alexei10001982 Посмотреть сообщение
Плагины на ворд пресс
Непонятно, у вас Wordpress или самописный сайт?
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
13.06.2021, 11:16  [ТС]
Сайт будет самописный-витрина.Шапка, категории товара,контекст(сами виджеты товара),банеры рекламные.То есть самый простой сайтик ,без наворотов и движков.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
13.06.2021, 18:10
В таком случае нужно видеть структуру таблицы в БД и самого файла CSV.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
14.06.2021, 08:06  [ТС]
База данных пустая. Допустим будет база данных tovar с таблицей produkt. Там соотвественно будут заголовки таблицы csv:available(в наличии?), категория товара,валюта итп.
Файл csv не поддерживаеться на форуме,только скриншот могу прислать...

Для начала на сайте я хочу сделат форму загрузки файла.Что то типа такого:

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<form action="tovar.php" method="post">
    <input type="text" name="name">    
        <input type="text" name="price">    
    <input  type="submit" name="submit" value="добавить"></center>
</form>
 
<?php
    //Устанавливаем доступы к базе данных:
        $host = 'localhost'; //имя хоста, на локальном компьютере это localhost
        $user = 'tovar'; //имя пользователя, по умолчанию это root
        $password = 'tovar'; //пароль, по умолчанию пустой
        $db_name = 'tovar'; //имя базы данных
 
    //Соединяемся с базой данных используя наши доступы:
        $link = mysqli_connect($host, $user, $password, $db_name);
 
    //Устанавливаем кодировку (не обязательно, но поможет избежать проблем):
        mysqli_query($link, "SET NAMES 'utf8'");
 
    //Формируем тестовый запрос:
        $query = "SELECT * FROM workers WHERE id > 0";
 
    //Делаем запрос к БД, результат запроса пишем в $result:
        $result = mysqli_query($link, $query) or die(mysqli_error($link));
 
    //Проверяем что же нам отдала база данных, если null – то какие-то проблемы:
        var_dump($result);
?>
 
 
MySQL_Query("INSERT INTO `tovar` (`name`,`price`) VALUES ($_POST['name'],$_POST['price'])") or die ("недоступен");
Но это не совсем то, так как мне нужно считать файл csv и автоматически добавить его в базу данных, что бы потом считать с баз данных,прописать стили для каждого товара ,что бы виджеты(картинки с товаром и описанием) были по центру сайта как
в обычном интернет магазине.
Миниатюры
Плагин для добавления товара на сайт html   Плагин для добавления товара на сайт html  
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
14.06.2021, 08:10  [ТС]
Наверное что то типа такого,но в файле file_load.php не совсем понимаю как в строке if ($type=='application/vnd.ms-excel')
поставить корректно csv , при загрузке csv пишет что тип файла не соотвествует. У меня екселя нет, да и не хотелось бы исходники переделывать.

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//форма загурзки файла
<form enctype="multipart/form-data" action="/file_load.php" method="POST">
    <input name="file_file" id="file_file" type="file">
    <input type="submit" class="btn btn-default" value="Загрузить">
</form>
 
// file_load.php
 
$type = $_FILES['file_file']['type'] ; //$type теперь содержит тип загруженного файла
    //если тип файла соответствует необходимому(в данном случае csv, сохраненному через MS EXCEL). 
    // указать можно какой угодно тип, тот, который нужен
    if ($type=='application/vnd.ms-excel') 
        {   
            //имя файла, как "на компьютере". В общем то, которое было при загрузке 
            $name_file = $_FILES['file_file']['name']; 
            //копируем файл из директории \tmp в необходимую, опираясь от корневой директории, на которой находится ресурс
            $goal=copy($_FILES['file_file']['tmp_name'],$_SERVER['DOCUMENT_ROOT']."/uploads/".basename($_FILES['file_file']['name']));
        }
    else
        {
        echo 'Тип файла не соответствует!';
        return;
        }
    //если файл не был скопирован, по какой либо причине
    if ($goal<>1) 
        {
        echo 'Скопировать файл в нужную директорию не получилось!';
        }
    else 
        {
        echo 'Файл успешно скопирован в дирректорию'.$_SERVER['DOCUMENT_ROOT'].'/uploads/';
        }
 
//функция добавления csv в базу данных.
 
 
function csv_to_sql(
    $table_name, //имя таблицы в которую будут записываться строки
    $file_name //имя файла с CSV, в папке uploads
    )
{
 
//данные для подключения к БД. Тут все интуитивно понятно
    $databasehost = "localhost"; 
    $databasename = "db_name";
    $databasetable = $table_name;
    $databaseusername ="user";
    $databasepassword = "pass";
    $fieldseparator = ";"; //разделитель. У "нормального" csv - это запятая, у MS EXCEL - ";"
    $lineseparator = "\n"; //разделитель строк - переход на следующую строку
    $csvfile = $file_name; //имя файла 
//количество пропускаемых строк "сверху"
    $string_trash=1;
//если нужно добавить 1 столбец, например ID, являющиейся AUTO_INCREMENT. Если нет необходимости, ставим 0.
    $addauto = 1;
 
    //проверяем, есть ли файл CSV на сервере
    if(!file_exists($csvfile)) 
    {
        $flag='Файл не найден!'; //файл не найден
        return $flag;
        exit;
    }
    //открываем файл для чтение
    $file = fopen($csvfile,"r");
    //если неудалось открыть файл
    if(!$file) 
    {
        $flag='Неудалось открыть файл!'; //неудалось открыть файл
        return $flag;
        exit;
    }
    //определяем размер файла
    $size = filesize($csvfile);
    //проверяем не пустой ли файл
    if(!$size) 
    {
        $flag='Файл пуст или неисправен!'; //файл пуст или неисправен
        return $flag;
        exit;
    }
    //загружаем данные из файла в переменную
    $csvcontent = fread($file,$size);
    //закрываем файл
    fclose($file);
    //открываем подключение в БД
    $con = @mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
    @mysql_select_db($databasename) or die(mysql_error());
    //извечная проблема - ставим на всякий случай кодировку БД UTF-8
    $rff=mysql_query("SET NAMES utf8");
    
    $lines = 0;//счетчик количества записанных строк
    $linearray = array();
    //перебирем  построчно все что записано в $csvcontent
foreach(split($lineseparator,$csvcontent) as $line) {
 
    if($string_trash<1) //если не пропускаем никаких строк в начале
        {
            //меняем кодировку на utf-8. Может и не понадобится, было оптимизировано для MS EXCEL
            $line = iconv('CP1251', 'UTF-8//TRANSLIT',$line); 
            $line = trim($line," \t");
            $line = str_replace("\r","",$line);
            //разделяем "ячейки"  в массив, обрамляем их кавычками
            $linearray = explode($fieldseparator,$line);
            $linemysql = implode("','",$linearray);
            //если надо пропустить первый столбец
            if($addauto)
                $query = "insert into $databasetable values('','$linemysql');";
            else
                $query = "insert into $databasetable values('$linemysql');";
            //если удалось добавить запись, прибавлем +1 к счетчику 
            if(@mysql_query($query))
                {
                    $lines++;
                }
        }
    else //если надо пропустить строку, вычитаем из количества пропускаемых строк 1 и продолжаем "перебирать" дальше
        {
            $string_trash=$string_trash-1;
        }
}
    //закрываем соединение с БД
    @mysql_close($con);
 
    
    $flag='Было добавлено: '.$lines.' записей';
    return $flag;
}
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
15.06.2021, 12:24
Внимательно повторите следующие шаги.
1) Создаём файл helpers.php с таким содержанием:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
if (!function_exists('read_csv_packs')) {
 
    function read_csv_packs(string $file, int $size)
    {
        $handle = @fopen($file, 'r');
 
        if (!$handle) {
            throw new Exception("Unable to open file [$file]");
        }
 
        $pack = [];
 
        for ($i = 1; $row = fgetcsv($handle); $i++) {
            $pack[] = $row;
 
            if ($i % $size === 0) {
                yield $pack;
 
                $pack = [];
            }
        }
 
        fclose($handle);
 
        if ($pack) {
            yield $pack;
        }
    }
}
2) Создаём файл Importer.php с таким содержанием:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
class Importer
{
    private $db;
 
    public function __construct(PDO $db)
    {
        $this->db = $db;
    }
 
    public function import(string $filename): bool
    {
        # По сколько строк за раз извлекать из файла
        $packSize = 20;
 
        foreach (read_csv_packs($filename, $packSize) as $pack) {
            $placeholders = rtrim(str_repeat('(?, ?, ?, ?),', count($pack)), ',');
 
            $stmt = $this->db->prepare(
                "INSERT INTO products (available, category, currency, description) VALUES {$placeholders}"
            );
 
            $stmt->execute(array_merge(...$pack));
        }
 
        return true;
    }
}
prepare в цикле работает немного медленне, чем если бы объявили его все цикла, но не факт, что в файле будет кол-во строк, кратное 20, поэтому SQL-выражение нужно строить динамически.
Можно сделать кэш: если строк извлеклось ровно 20, то используем ранее созданный подготовленный запрос, иначе -- создаём новый.
Я не стал заморачиваться.

3) Создайте файл handler.php с таким содержимым:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
 
require __DIR__ . '/helpers.php';
require __DIR__ . '/Importer.php';
 
$db = new PDO('mysql:host=localhost;dbname=НАЗВАНИЕ_БД', 'ИМЯ_ПОЛЬЗОВАТЕЛЯ', 'ПАРОЛЬ');
 
try {
    if ('POST' === $_SERVER['REQUEST_METHOD']) {
        $filename = $_FILES['file']['tmp_name'] ?? '';
 
        if (!is_uploaded_file($filename)) {
            throw new RuntimeException('The file is not uploaded.');
        }
 
        if (mime_content_type($filename) !== 'application/csv') {
            throw new RuntimeException('The file mime type must be application/csv');
        }
 
        $importer = new Importer($db);
 
        $importer->import($filename);
 
        # Тут вместо вывода можно делать перенаправление назад, на форму
        echo 'Файл успешно импортирован.';
    }
} catch (RuntimeException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    //
}
НАЗВАНИЕ_БД, ИМЯ_ПОЛЬЗОВАТЕЛЯ, ПАРОЛЬ замените на свои.

Все созданные файлы должны лежать в одной папке, иначе -- пропишите до них правильные пути для require.
Ну и всё, создаем форму:
HTML5
1
2
3
4
<form method="post" action="handler.php" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" name="">
</form>
Как видите, данные будут вставляться в таблицу products в БД в поля available, category, currency, description.

Добавлено через 2 минуты
И да. Проверки структуры файла нет. Т.е. если загрузить файл с другим количеством столбцов, будет ошибка.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
22.06.2021, 15:21  [ТС]
Спасибо большое за код! Только от ремонта освободился, буду пробовать.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
29.06.2021, 20:36  [ТС]
PHP
1
2
3
  if (mime_content_type($filename) !== 'application/csv') {
            throw new RuntimeException('The file mime type must be application/csv');
        }
Установил на сервер.
Пришлось удалить строку с проверкой файла,а то выдает ошибку, что это не csv файл.Ну и закрыть теги php, но в таблицу products так ничего и не записалось. Я добавил столбы ,но ничего. Пишет файл добавлен и все...
Миниатюры
Плагин для добавления товара на сайт html   Плагин для добавления товара на сайт html   Плагин для добавления товара на сайт html  

Плагин для добавления товара на сайт html  
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
30.06.2021, 08:29
В Importer.php внутри foreach (в самом начале) впишите:
PHP
1
2
var_dump($pack);
die;
И скажите, что выведет.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
30.06.2021, 14:55  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
  var_dump($pack);
die;
       
class Importer
{
    private $db;
 
    public function __construct(PDO $db)
    {
        $this->db = $db;
    }
 
    public function import(string $filename): bool
    {
        # По сколько строк за раз извлекать из файла
        $packSize = 20;
 
        foreach (read_csv_packs($filename, $packSize) as $pack) {
            $placeholders = rtrim(str_repeat('(?, ?, ?, ?),', count($pack)), ',');
 
     $stmt = $this->db->prepare(
                "INSERT INTO products (available,category,currency,description) VALUES {$placeholders}"
            );
 
            $stmt->execute(array_merge(...$pack));
        }
 
        return true;
    }
}?>

и вот так еще


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
class Importer
{
    private $db;
 
    public function __construct(PDO $db)
    {
        $this->db = $db;
    }
 
    public function import(string $filename): bool
    {
        # По сколько строк за раз извлекать из файла
        $packSize = 20;
 
        foreach (read_csv_packs($filename, $packSize) as $pack) {
            $placeholders = rtrim(str_repeat('(?, ?, ?, ?),', count($pack)), ',');
 var_dump($pack);
die;
            $stmt = $this->db->prepare(
                "INSERT INTO products (available,category,currency,description) VALUES {$placeholders}"
            );
 
            $stmt->execute(array_merge(...$pack));
        }
 
        return true;
    }
}?>
Миниатюры
Плагин для добавления товара на сайт html   Плагин для добавления товара на сайт html  
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
30.06.2021, 18:17
Структура данных не такая, как я думал. Прикрепите файл (только чтобы в нём строк 20 было, не больше), я посмотрю, как выглядит и протестирую.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
30.06.2021, 18:29  [ТС]
Вот. Только я могу в архиве скинуть, на форуме csv нет формата для загрузки.
Вложения
Тип файла: rar osnovnoi_products_20210606_140554 (2).rar (17.5 Кб, 2 просмотров)
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
30.06.2021, 18:51
Понятно. У вас разделитель -- точка с запятой, в а fgetcsv -- запятая. Измените функцию read_csv_packs на такую:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function read_csv_packs(
    string $file,
    int $size,
    string $separator = ',',
    string $enclosure = '"',
    string $escape = "\\"
) {
    $handle = @fopen($file, 'r');
 
    if (!$handle) {
        throw new Exception("Unable to open file [$file]");
    }
 
    $pack = [];
 
    for ($i = 1; $row = fgetcsv($handle, 0, $separator, $enclosure, $escape); $i++) {
        $pack[] = $row;
 
        if ($i % $size === 0) {
            yield $pack;
 
            $pack = [];
        }
    }
 
    fclose($handle);
 
    if ($pack) {
        yield $pack;
    }
}
Затем это:
PHP
1
foreach (read_csv_packs($filename, $packSize) as $pack) {
замените на
PHP
1
foreach (read_csv_packs($filename, $packSize, ';') as $pack) {
И почему вы не обратили внимания на эти мои слова:
Цитата Сообщение от Para bellum Посмотреть сообщение
Проверки структуры файла нет. Т.е. если загрузить файл с другим количеством столбцов, будет ошибка.
???
В таблицу пытаемся загрузить четыре поля, а в файле их тринадцать. Немного больше четырёх, не находите?
Изменяйте код так, чтобы писались все 13 полей или обрезайте данные, чтобы писать только 4 поля.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
30.06.2021, 19:43  [ТС]
Обратил внимание. Сделал 4 столбца в заголовке,но строки не урезал, а вообще их 14 насчитал,тоже пробовал.Один заголовок с пустыми строками вроде. Хорошо,попробую снова.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
05.07.2021, 14:08  [ТС]
Вот что получилось. Поменял на ; ,запятую. Так как у меня разделитель в csv файле ;
plagin.html


HTML5
1
2
3
<form method="post" action="handler.php" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" name="">
helpers.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
var_dump($pack);
die;
 
if (!function_exists('read_csv_packs')) {
 
   function read_csv_packs(
    string $file,
    int $size,
    string $separator = ';',
    string $enclosure = '"',
    string $escape = "\\"
) {
    $handle = @fopen($file, 'r');
 
    if (!$handle) {
        throw new Exception("Unable to open file [$file]");
    }
 
    $pack = [];
 
    for ($i = 1; $row = fgetcsv($handle, 0, $separator, $enclosure, $escape); $i++) {
        $pack[] = $row;
 
        if ($i % $size === 0) {
            yield $pack;
 
            $pack = [];
        }
    }
 
    fclose($handle);
 
    if ($pack) {
        yield $pack;
    }
}
?>


handler.php




PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 var_dump($pack);
die;
require __DIR__ . '/helpers.php';
require __DIR__ . '/Importer.php';
 
$db = new PDO('mysql:host=localhost;dbname=alexey3t_plagin', 'alexey3t_plagin', 'rZ2oug*V');
 
try {
    if ('POST' === $_SERVER['REQUEST_METHOD']) {
        $filename = $_FILES['file']['tmp_name'] ?? '';
 
        if (!is_uploaded_file($filename)) {
            throw new RuntimeException('The file is not uploaded.');
        }
 
       
        $importer = new Importer($db);
 
        $importer->import($filename);
 
        # Тут вместо вывода можно делать перенаправление назад, на форму
        echo 'Файл успешно импортирован.';
    }
} catch (RuntimeException $e) {
    echo $e->getMessage();
} catch (Exception $e) {
    //
}
?>



importer.php

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
class Importer
{
    private $db;
 
    public function __construct(PDO $db)
    {
        $this->db = $db;
    }
 
    public function import(string $filename): bool
    {
        # По сколько строк за раз извлекать из файла
        $packSize = 14;
 
        foreach (read_csv_packs($filename, $packSize) as $pack) {
            $placeholders = rtrim(str_repeat('(?, ?, ?, ?),', count($pack)), ',');
 
            $stmt = $this->db->prepare(
                "INSERT INTO products (available,categoryId,currencyId,description,id,model,modified_time,name,picture,price,type,typePrefix,url,vendor) VALUES {$placeholders}"
            );
 
            $stmt->execute(array_merge(...$pack));
        }
 
        return true;
    }
}
?>
Миниатюры
Плагин для добавления товара на сайт html   Плагин для добавления товара на сайт html   Плагин для добавления товара на сайт html  

Плагин для добавления товара на сайт html  
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.07.2021, 15:30
На 18 строке файла Importer.php у вас четыре знака вопроса, а нужно, чтобы их кол-во соответствовало кол-ву полей, перечисленных на 21 строке.
0
0 / 0 / 2
Регистрация: 25.10.2016
Сообщений: 68
06.07.2021, 15:36  [ТС]
Вот так считывает ,правда частично и не понятно потом как к этим данным обращаться что бы потом в виде виджетов установить на сайт
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<html>
    <head>
<meta charset="utf-8">
 
<meta name="viewport" content="width=device-width, initial-scale=0">
   
    </head>
 
<?php 
//открываем файл. Если его нет, завершаем работу скрипта и выводим ошибку
$file = fopen("fopen.csv", 'rt') or die("Не удалось подключть файл");
//считываем данные в цикле
for($i=0; $data = fgetcsv($file, 5000,";"); $i++){
  
  //определяем количество полей в строке
  $pole = count($data);
  // выводим эту информацию
  echo "<p> Строка $i содержит $pole поля:<br>";
  // выводим каждое поле
  for ($c=0; $c < $pole; $c++) echo "[$c]".$data[$c]."<br>";
}
// закрываем файл
fclose($file);
?>
Миниатюры
Плагин для добавления товара на сайт html  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.07.2021, 15:36
Помогаю со студенческими работами здесь

Delphi client для добавления товара в WordPress & WooCommerce
Нужно написать клиент для добавления товара, пользователей и т.д. к WordPress и WooCommerce плагину в частности. делаю запрос GET получаю...

Подскажите плагин для вставки таблиц в описание товара в Woocommerce
___

Плагин для WooCommerce для создания html-карты сайта
Здравствуйте, ребята. У меня возник следующий вопрос. С помощью какого плагина можно создать карту сайта на WooCommerce, состоящую не из...

Форма для добавления публикаций на сайт
Здравствуйте, уважаемые веб-программисты! Задача такая: нужно создать пункт меню для зарегистрированных пользователей (&quot;Публикация...

Код для добавления фото на сайт
Мне нужно добавлять фотографии на сайт, чтобы они адаптировались под определенный размер. Такая вот не сложная задачка передо мной стоит....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru