<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Извлечение Open Graph метаданных в PHP

Извлечение Open Graph метаданных в PHP

Open Graph — это протокол, разработанный для интеграции с социальными сетями, такими как VK и др. Он позволяет веб-странице описать себя с помощью метатегов, что способствует улучшению отображения ссылок на страницу в социальных сетях.

Этот код написан на PHP и предназначен для получения HTML-контента с заданного URL и парсинга Open Graph метаданных. Он извлекает og:* метатеги из HTML и возвращает их в виде массива.

Разбор кода

<?php

function parseOpenGraphMeta(string $html): array
{
    libxml_use_internal_errors(true); // Отключаем вывод ошибок при парсинге HTML для предотвращения вывода ошибок на экран
    $doc = new DomDocument();
    $doc->loadHTML($html); // Загружаем HTML-контент для последующего парсинга
    $xpath = new DOMXPath($doc); // Инициализируем XPath для поиска элементов в HTML-документе
    $query = '//*/meta[starts-with(@property, \'og:\')]'; // XPath-запрос для поиска всех meta-тегов с атрибутом "property" начинающимся на "og:"
    $metas = $xpath->query($query); // Выполняем XPath-запрос, который возвращает список элементов meta с og-тегами
    $og_meta = [];

    foreach ($metas as $meta) { // Перебираем найденные og-теги
        $property = $meta->getAttribute('property'); // Извлекаем значение атрибута property
        $content = $meta->getAttribute('content'); // Извлекаем значение атрибута content
        $og_meta[$property] = $content; // Добавляем og-метаданные в ассоциативный массив, где ключ — это свойство, а значение — содержимое
    }

    return $og_meta; // Возвращаем массив og-метаданных
}

function httpGet(string $url): string
{
    // Настройки запроса HTTP GET
    $options = [
        'http' => [
            'method' => 'GET',
            'header' => [
                // Устанавливаем User-Agent, чтобы запрос выглядел как от браузера
                'User-Agent: ' . ($_SERVER['HTTP_USER_AGENT'] ?? 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36'),
                'Accept: text/html', // Устанавливаем Accept-заголовок
            ],
        ]
    ];

    $context = stream_context_create($options); // Создаем контекст для HTTP-запроса с заданными опциями

    $response = @file_get_contents($url, false, $context); // Выполняем GET-запрос

    if ($response === false) { // Обрабатываем возможные ошибки
        $error = error_get_last();
        throw new Exception($error['message']); // Генерируем исключение с сообщением об ошибке
    }

    return $response; // Возвращаем HTML-ответ
}

$url = 'https://myrusakov.ru'; // URL для запроса
$res = httpGet($url); // Получаем HTML-контент с URL

$meta = parseOpenGraphMeta($res); // Извлекаем og-метаданные

print_r($meta); // Выводим массив og-метаданных
?>

Разделение на функции

Этот код состоит из двух основных функций:

  1. parseOpenGraphMeta: Эта функция выполняет разбор HTML-контента, который передается в виде строки, и использует XPath для поиска всех meta-тегов, атрибут property которых начинается с og:. Возвращаемый массив содержит все найденные Open Graph метаданные.

  2. httpGet: Эта функция отправляет HTTP GET-запрос к заданному URL и возвращает содержимое страницы. Она настраивает заголовки запроса, чтобы имитировать браузер, обрабатывает возможные ошибки и генерирует исключения в случае неудачного запроса.

Принцип работы и использование

  • Укажите URL страницы, из которой нужно получить метаданные Open Graph.
  • Функция httpGet отправляет запрос и получает HTML-код страницы.
  • parseOpenGraphMeta анализирует HTML-контент, используя XPath-запросы, и находит Open Graph метаданные.
  • В конце скрипт выводит результат в виде ассоциативного массива, где ключи — это атрибуты og:property, а значения — их контент.

Пример результата

Результат будет выглядеть как ассоциативный массив:

Array
(
    [og:title] => Title of the Page
    [og:description] => Description of the page for social networks
    [og:image] => https://example.com/image.jpg
    ...
)

Этот код полезен для автоматического извлечения Open Graph метаданных из веб-страниц. Его можно использовать для создания превью-ссылок, анализа контента или интеграции с социальными сетями.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.