Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/37: Рейтинг темы: голосов - 37, средняя оценка - 4.78
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186

Парсер ссылок на PHP

26.06.2018, 22:15. Показов 7826. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане! Есть такой сайт - https://postupi.online/professii/
на нём больше двух тысяч профессий. Как спарсить только заголовки этих профессий? А то вручную копировать >2к ссылок нерельно. Гуглил уже, подобного не нашёл.

Чтобы выводился примерно такой список:
Big Data Analyst: специалист по анализу больших данных
BI разработчик (BI архитектор)
BIM-менеджер-проектировщик
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.06.2018, 22:15
Ответы с готовыми решениями:

php парсер
При написании парсера столкнулся с проблемой. когда захожу на сайт я авторизирован а когда через свой ну парсил нет надо как то передавать...

Парсер на php
Здравствуйте. Есть XML файл. Парсер должен выводить значения <title> и <description> на экран и записывать в БД. Данные <description>...

PHP парсер
Здравствуйте. Не подскажите, может есть уже готовый скрипты на мой вопрос? Мне нужен парсер тэгов, которые находятся в html...

16
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
27.06.2018, 01:20
Лучший ответ Сообщение было отмечено mininvit как решение

Решение

mininvit, вам для собственных нужд?

Время выполнения просто ужасное.

Подключаем библиотеку для работы с элементами на странице. После того, как скрипт обошел все страницы и данные в массиве. Сохраняет всё это дело в txt файл.

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
<?php
require_once 'class__parser.php';
 
const TOTAL_NUM = 194; // общее количество страниц
$branches = array();
 
for ($i = 1; $i <= TOTAL_NUM; $i++) {
  $container = file_get_html('https://postupi.online/professii/?' . http_build_query(array(
    'page_num' => $i
  )));
  
  if (count($container->find('li.catalog_li_new')) > 0) {
    foreach ($container->find('li.catalog_li_new') as $href) {
      $branches[] = $href->find('a', 1)->plaintext;
    }
  }
}
 
if (count($branches)) {
  $fp = fopen('branches.txt', 'w');
  fwrite($fp, 'elem:' . count($branches) . PHP_EOL . PHP_EOL);
  foreach ($branches as $abc) {
    fwrite($fp, $abc . PHP_EOL);
  }
  fclose($fp);
} else {
  echo 'Возникла ошибка при работе с массивом.';
}
Но, если необходимо работать с этими данными у себя на сайте. Нужен другой подход.
К примеру, парсим этот сайт ~ раз в несколько часов/дней → сохраняем на сервере JSON, а дальше, отдаем нужные данные пользователю.

Еще раз повторюсь, данный скрипт написан ИСКЛЮЧИТЕЛЬНО в ознакомительных целях. Так парсить данные для пользователя НЕЛЬЗЯ.

Прикладываю файл с заголовками профессий + исходники:
Вложения
Тип файла: rar branches_CF.rar (38.2 Кб, 37 просмотров)
1
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
27.06.2018, 05:03
Лучший ответ Сообщение было отмечено mininvit как решение

Решение

Добавлено через 6 минут
UPD:

mininvit,
Написал более человеческую версию. Без использования подключаемой библиотеки для работы с элементами на странице и с использованием multi Curl.
Сейчас выполнение скрипта занимает не так много времени.

Скрипт записывает заголовки в файл branches.txt.

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
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
<?php
 
$parser = new \DOMDocument();
 
$urls = [];
$branches = [];
 
const COUNT_URLs = 194;
 
for ($i = 1; $i <= COUNT_URLs; $i++) {
    $urls[] = 'https://postupi.online/professii/?' . http_build_query(array(
        'page_num' => $i,
    ));
}
 
$urls = array_chunk($urls, 20); // ~ 5 — 25
 
foreach ($urls as $spliter) {
    foreach (multirequect($spliter) as $elems) {
        @$parser->loadHTML($elems);
        $xpath = new \DOMXpath($parser);
        $selectors = $xpath->query('//li[@class="catalog_li_new"]');
 
        foreach ($selectors as $items) {
            $branches[] = $items->getElementsByTagName("a")[1]->nodeValue;
        }
    }
}
 
if (count($branches)) {
    $fp = fopen('branches.txt', 'w');
    fwrite($fp, 'elements:' . count($branches) . PHP_EOL . PHP_EOL);
    foreach ($branches as $lines) {
        fwrite($fp, $lines . PHP_EOL);
    }
    fclose($fp);
} else {
    echo 'need a help!';
}
 
/*
 * arg: {$urls} (array)
 */
 
function multirequect($urls) {
    $multi = curl_multi_init();
    $handles = [];
    $htmls = [];
 
    foreach ($urls as $url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
        curl_multi_add_handle($multi, $ch);
        $handles[$url] = $ch;
    }
 
    do {
        $mrc = curl_multi_exec($multi, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
 
    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($multi) == -1) {
            usleep(100);
        }
        do {
            $mrc = curl_multi_exec($multi, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
 
    foreach ($handles as $channel) {
        $html = curl_multi_getcontent($channel);
        $htmls[] = $html;
        curl_multi_remove_handle($multi, $channel);
    }
 
    curl_multi_close($multi);
 
    return $htmls;
}
1
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
27.06.2018, 13:43  [ТС]
Охреенеть! Я не знаю, что сказать Огромное вам СПАСИБО! Я просто себе подбираю профессию, а на этом сайте самое большинство их. Вот я и буду ставить напротив каждой плюс/минус сравнивая преимущества и недостатки. Второй код (который быстрей) у меня почему-то крашнул ошибкой на 25-й строке.

Fatal error: Cannot use object of type DOMNodeList as array in C:\OSPanel\domains\mysite.local\index.ph p on line 25

Добавлено через 5 минут
evikza, а как, например, выписать все заголовки из конкретного раздела. Допустим, юриспруденция или медицина - https://postupi.online/profess... rudenciya/
Там же уже 194 страницы не нужны, что можно в коде тогда поменять?

Добавлено через 1 час 8 минут
а всё разобрался сам

Добавлено через 18 минут
Только почему-то у меня в элементах всего 2211, хотя на самом деле профессий 2331. Почему могут не добавляться?

Добавлено через 6 минут
Думаю, что-то связано с ограничениями в php.ini. Может максимальный размер файла, объем оперативной памяти выделяемой под скрипт?
0
7 / 7 / 5
Регистрация: 07.06.2018
Сообщений: 117
27.06.2018, 16:00
Цитата Сообщение от evikza Посмотреть сообщение
с элементами на странице и с использованием multi Curl.
этот курл почему то не у всех есть. так что оценить мы не сможем.
0
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
27.06.2018, 16:06
winwin22, На нормальных хостингах есть, а бесплатные поддерживать нет смысла
0
7 / 7 / 5
Регистрация: 07.06.2018
Сообщений: 117
27.06.2018, 16:26
Цитата Сообщение от edward_freedom Посмотреть сообщение
поддерживать нет смысла
ну да типа это только для избранных, а то вдруг! ай ай ай....
инет через мусорорубку пропустят и Бэз рекламы оставят,
Это параноя и плагиаторство.. раздувание пузырей в луже соплей!
Лет эдак через 1 000 000 000 000 вы вспомните как запретили КУР!
0
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
27.06.2018, 17:28  [ТС]
Да я всё равно на локальном тестил, он еще раньше крашнулся, чем дойти до multi_curl
Почему?
Fatal error: Cannot use object of type DOMNodeList as array in C:\OSPanel\domains\mysite.local\index.ph p on line 25

Добавлено через 9 минут
А всё разобрался
getElementsByTagName() возвращает DOMNodeList, который реализует ArrayAccess с PHP 5.6.3
Поставил версию PHP 7.2 всё заработало как надо!

Добавлено через 1 минуту
evikza, а как извлечь для этого кода из картинки допустим title? Ну допустим такой html код:
<img src="/image/fluffybunny.jpg" title="Harvey the bunny" />

Добавлено через 1 минуту
evikza, а как извлечь из картинки title? Ну допустим такой html код:
<img src="/image/fluffybunny.jpg" title="Harvey the bunny" />
Вместо textplain что вставить нужно?
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
27.06.2018, 17:40
mininvit, смотря какая структура элементов. Если уж совсем простой пример:

PHP
1
2
3
4
5
6
7
8
9
10
<?php
$el = '<img src="/image/fluffybunny.jpg" title="Harvey the bunny" />';
 
$parser = new \DOMDocument();
@$parser->loadHTML($el);
 
$items = $parser->getElementsByTagName('img');
foreach ($items as $item) {
    echo $item->getAttribute('title');
}
А насчет:
Цитата Сообщение от mininvit Посмотреть сообщение
Только почему-то у меня в элементах всего 2211, хотя на самом деле профессий 2331. Почему могут не добавляться?
Думаю, что-то связано с ограничениями в php.ini. Может максимальный размер файла, объем оперативной памяти выделяемой под скрипт?
Можно попробовать убрать тайминги при работе curl. Позже еще посмотрю, что можно придумать.
1
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
27.06.2018, 18:42  [ТС]
evikza, структура такая:
HTML5
1
2
3
4
5
6
7
<article data-key="823"><a href="/professions/Pilot.html" title="Лётчик (Пилот)">Лётчик (Пилот)</a>
<p>
    <a href="/professions/Pilot.html" class="l">
        <img src="/images/article/43K5Y8sKi86faB2G_zyFhsTRe92bYz6K.jpg" alt="Лётчик (Пилот)">
    </a>
</p>
</article>
Короче отсюда надо спарсить https://www.profguide.ru/profe... transport/

Может проще из ссылки вытащить заголовок чем из изображения? С ссылками у меня почему-то не получилось

Добавлено через 10 минут
Вот как я изменил:
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
require_once 'class__parser.php';
 
const TOTAL_NUM = 3; // общее количество страниц
$branches = array();
 
for ($i = 1; $i <= TOTAL_NUM; $i++) {
  $container = file_get_html('https://www.profguide.ru/professions/category/transport/?' . http_build_query(array(
    'page' => $i
  )));
  
  if (count($container->find('article')) > 0) {
    foreach ($container->find('article') as $href) {
      $branches[] = $href->find('a', 1)->plaintext;
    }
  }
}
 
if (count($branches)) {
  $fp = fopen('branches.txt', 'w');
  fwrite($fp, 'elem:' . count($branches) . PHP_EOL . PHP_EOL);
  foreach ($branches as $abc) {
    fwrite($fp, $abc . PHP_EOL);
  }
  fclose($fp);
} else {
  echo 'Возникла ошибка при работе с массивом.';
}
?>
Но в файл заносится только число elem: 20

Добавлено через 6 минут
Вроде в селекторе "article" находится тэг "a". Так и написал.

Добавлено через 36 минут
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
27.06.2018, 21:11
Лучший ответ Сообщение было отмечено mininvit как решение

Решение

mininvit,

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
 
require_once 'class__parser.php';
 
const TOTAL_NUM = 2; // общее количество страниц
$branches = array();
 
for ($i = 1; $i <= TOTAL_NUM; $i++) {
    $container = file_get_html('https://www.profguide.ru/professions/category/transport/?' . http_build_query(array(
        'page' => $i,
    )));
 
    if (count($container->find('article[data-key]'))) {
        foreach ($container->find('article[data-key]') as $href) {
            $branches[] = $href->find('a', 0)->plaintext;
        }
    }
}
 
if (count($branches)) {
    $fp = fopen('branches.txt', 'w');
    fwrite($fp, 'elem:' . count($branches) . PHP_EOL . PHP_EOL);
    foreach ($branches as $abc) {
        fwrite($fp, $abc . PHP_EOL);
    }
    fclose($fp);
} else {
    echo 'Возникла ошибка при работе с массивом.';
}
1
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
27.06.2018, 21:18  [ТС]
evikza, СПАСИБО! Я думал, как бы добавить data-key. А обязательно нужно все атрибуты указывать у элемента? Или почему тогда с обычным article не работало?
А если бы пришлось с изображения вытаскивать alt, что нужно тогда?
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
27.06.2018, 21:44
mininvit, нет, не обязательно. Мы возвращаем коллекцию элементов <article>. Затем, находим все элементы удовлетворяющие нашему условию, а именно:

PHP
1
2
3
foreach ($container->find('article') as $href) {
            $branches[] = $href->find('a', 0)->plaintext; # занесем в массив элемент — первый элемент <a> (0 — исчисление начинается с 0), который находится в <article>
        }
А если бы пришлось с изображения вытаскивать alt, что нужно тогда?
PHP
1
2
3
4
5
    if (count($container->find('article'))) {
        foreach ($container->find('article') as $href) {
            $branches[] = $href->find('img[alt]', 0)->getAttribute('alt');
        }
    }
Можете посмотреть документацию данной библиотекой. Доступ к объектам сравнительно схож с синтаксисом jQuery.
1
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
27.06.2018, 22:41  [ТС]
Большое спасибо! Теперь разобрался.
0
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
30.06.2018, 20:38  [ТС]
evikza, Ещё один вопросик) А если надо вывести это допустим в браузер, чтобы они показывались как ссылки в формате:
HTML5
1
<a href=""></a>
Как такое реализовать с этим кодом? Я уже немного переделал, но не пойму на что нужно поменять "getAttribute('href')", чтобы выводился именно весь элемент "a":
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
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
<?php
$parser = new \DOMDocument();
 
$urls = [];
$branches = [];
 
const COUNT_URLs = 2;
 
for ($i = 1; $i <= COUNT_URLs; $i++) {
    $urls[] = 'https://postupi.online/professii/?' . http_build_query(array(
        'page_num' => $i,
    ));
}
 
$urls = array_chunk($urls, 20); // ~ 5 — 25
 
foreach ($urls as $spliter) {
    foreach (multirequect($spliter) as $elems) {
        @$parser->loadHTML($elems);
        $xpath = new \DOMXpath($parser);
        $selectors = $xpath->query('//li[@class="catalog_li_new"]');
 
        foreach ($selectors as $items) {
            $branches[] = $items->getElementsByTagName("a")[1]->getAttribute('href');
        }
    }
}
 
if (count($branches)) {
    foreach ($branches as $lines) {       
    echo $lines."<br/>";
    }
} else {
    echo 'need a help!';
}
 
/*
 * arg: {$urls} (array)
 */
 
function multirequect($urls) {
    $multi = curl_multi_init();
    $handles = [];
    $htmls = [];
 
    foreach ($urls as $url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
        curl_multi_add_handle($multi, $ch);
        $handles[$url] = $ch;
    }
 
    do {
        $mrc = curl_multi_exec($multi, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
 
    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($multi) == -1) {
            usleep(100);
        }
        do {
            $mrc = curl_multi_exec($multi, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
 
    foreach ($handles as $channel) {
        $html = curl_multi_getcontent($channel);
        $htmls[] = $html;
        curl_multi_remove_handle($multi, $channel);
    }
 
    curl_multi_close($multi);
 
    return $htmls;
}
?>
Добавлено через 7 часов 48 минут
evikza, может быть надо как то отдельно получить массив с анкором ссылок, и hrefом? А потом что? Надо же их как то через foreach перебрать. Но результат все равно не получается.
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
01.07.2018, 00:57
mininvit, создадим ассоциативным массив и будем записывать в него title и href. Далее, через foreach перебираем элементы.

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
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
<?php
$parser = new \DOMDocument();
 
$urls = [];
$branches = [];
 
const COUNT_URLs = 2;
 
for ($i = 1; $i <= COUNT_URLs; $i++) {
    $urls[] = 'https://postupi.online/professii/?' . http_build_query(array(
        'page_num' => $i,
    ));
}
 
$urls = array_chunk($urls, 20); // ~ 5 — 25
 
foreach ($urls as $spliter) {
    foreach (multirequect($spliter) as $elems) {
        @$parser->loadHTML($elems);
        $xpath = new \DOMXpath($parser);
        $selectors = $xpath->query('//li[@class="catalog_li_new"]');
 
        foreach ($selectors as $items) {
            $branches[] = array(
                'title' => $items->getElementsByTagName("a")[1]->nodeValue,
                'href' => $items->getElementsByTagName("a")[1]->getAttribute('href'));
        }
    }
}
 
if (count($branches)) {
    foreach ($branches as $lines) {
        echo "<a href='{$lines['href']}' style='display: block;'>{$lines['title']}</a>";
    }
} else {
    echo 'need a help!';
}
 
/*
 * arg: {$urls} (array)
 */
 
function multirequect($urls) {
    $multi = curl_multi_init();
    $handles = [];
    $htmls = [];
 
    foreach ($urls as $url) {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
        curl_multi_add_handle($multi, $ch);
        $handles[$url] = $ch;
    }
 
    do {
        $mrc = curl_multi_exec($multi, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
 
    while ($active && $mrc == CURLM_OK) {
        if (curl_multi_select($multi) == -1) {
            usleep(100);
        }
        do {
            $mrc = curl_multi_exec($multi, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
 
    foreach ($handles as $channel) {
        $html = curl_multi_getcontent($channel);
        $htmls[] = $html;
        curl_multi_remove_handle($multi, $channel);
    }
 
    curl_multi_close($multi);
 
    return $htmls;
}
1
1 / 1 / 0
Регистрация: 16.07.2016
Сообщений: 186
01.07.2018, 10:31  [ТС]
Аа. Нужно было двумерный массив создавать. А я создал два разных массива branches[] и branches1[], занёс туда данные, а потом думаю, как бы перебрать через foreach. Ещё раз благодарю!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.07.2018, 10:31
Помогаю со студенческими работами здесь

php парсер
Всем привет,есть парсер на рутрекер, для обработки и получения текста использую регулярные выражения шаблона. С недавнего времени на...

PHP парсер
Здравствуйте, пытаюсь написать маленький парсер для сайта и возникла проблема. Сайт как я начал предполагать, сайт подгружается динамически...

PHP парсер
Написал простенький парсер на php для парса проксей: &lt;?php $url = 'site.ru/proxy.txt'; function parser($url) { $content =...

парсер php
Я только начал изучение php и хочу написать парсер для личного пользования,но пока это для меня сложно. Есть страница текста с...

Парсер php
Всем добрый день. Cам сайт у меня получилось спарсить, но возникли проблемы при парсинге необходимых данных. Я не понимаю, все данные по...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru