Какова лучшая практика для интеграции внешнего контента на моем веб-сайте?


Я разрабатываю веб-сайт в PHP, и мне нужно интегрировать контент, который будет находиться на страницу внешнего сайта. На этой странице будет с несложным форматированием, без header footer sidebar и я буду просто ссылку на этой странице.

Этой странице будет иметь продукт, с миниатюрами, название, цену и ссылку, чтобы увидеть более подробную информацию.

Мой вопрос, и лучший способ сделать эту интеграцию. Я думал об использовании iframe но я получаю простоя, как отзывчивость и также к SEO веб-сайте.

Есть ли лучший вариант?

Author: Wendell, 2016-07-06

2 answers

Нет лучшей форме. Все зависит от того, насколько взаимосвязаны эти сайты, и, как вы "доверяете" в нем.

С Помощью iframe

Использование iframes, как я описал в этом другой ответ, вполне допустимо, когда вы хотите вставить содержание, которое не зависит от текущей странице, как эстетические проблемы, эффективность и безопасность.

Проблема использования iframe - это не столько то чтобы это плохо само по себе, но приносит множество других проблемами:

  • , Как масштабировать рамок и сохранить макет в соответствии с частью страницы?
  • , что делать с ссылками внутри рамки?
  • необходимо, чтобы взаимодействовать с контентом рамки? В этом случае необходимо будет задать заголовок доступ из разных источников.

, Если содержание этого веб-сайта Wordpress, который вы хотите включить, является то, что иногда может привести к проблемам безопасности, таких как инъекции скриптов на странице, iframe помогает выявить это содержание.

Кроме того, если содержимое меняется часто, и вы не можете построить parser, iframe в конечном итоге к более безопасного метода.

, Получение содержимого на сервер

, Используя HTML непосредственно

Если, с другой стороны, вы доверяете то другого сайта, возможно, потому что вы же администратор, вы можете сделать как Рикардо предложил другой ответ.

Ваш сервер делает запрос на другой сайт и извлекает содержимое на странице, которую вы хотите вставить. После того, как введет это содержание вашей страницы.

Помимо безопасности, этот метод необходимо рассмотреть:

  • типы и структура другую страницу. Они могут не работать, если относительные пути, или могут мешать стили и структуру вашей страницы.
  • Сделать запросы на другой сервер каждый раз отображать страницы будет убить свою производительность. Идеально было бы поддерживать эти сведения в cache, может быть, в базе данных, в течение некоторого времени, и время от времени обновлять.

Интерпретации информации

, Если содержание не всегда соответствует той же структуры, метод более продвинутый и гибкий состоит в том, чтобы сделать некоторый код, чтобы прочитать содержимое с другого сайта, и извлечь только актуальную информацию о каждом продукте.

Эти данные на ваш сервер, вы же можете их лечить, чтобы избежать принесут угрозу безопасности, такие как кодирование в HTML при записи на странице, ограничивая размер, etc. Затем вы можете отобразить их в формате, который вы хотите.

Вторая часть ответа Рикардо показывает эту альтернативу, используя parser XML. Но учтите, что HTML не по тем же правилам, XML, то вероятность того, что вам нужно будет использовать какой-нибудь специальной библиотеки для интерпретации HTML.

Конечно, идеально было бы иметь возможность восстановить данные через веб-службы в формате, удобном как JSON, но сделать parse HTML ломает ветку, когда не представляется возможным.

Если вы администратор веб-сайта Wordpress, считают, что есть несколько плагинов для работы с REST. Если на сайте используется плагин для управления продуктами, это, скорее всего, он имеет какое-то API. Посмотрите также документы, прежде чем делать выводы.

Наконец, для укрепления, этот метод не работает, а если и считывания информации, не имеет определенной структуры.

 2
Author: utluiz, 2017-04-13 12:59:31

Вы можете использовать функцию file_get_contents PHP.
Эта функция считывает содержимое URL-адреса и возвращает string.
Был бы более или менее так:

<?php 
    $url = file_get_contents('http://minha_url.com.br');
    var_dump($url);
?>

Я Надеюсь, что помог.

UPDATE

В Этом определить вам нужно манипулировать данными с внешними ДАР.
Был бы более или менее так:

<?php
    $url = "http://minha_url.com.br";

    $html = trim(file_get_contents($url));
    $dom = new DOMDocument;
    $dom->loadXML($html);
    $dados = $dom->getElementsByTagName('*');
    foreach ($dados as $key => $value) {
       print_r($value);
    }
?>

С помощью этого вы можете захватить все теги и содержания.

 0
Author: Ricardo Mota, 2016-07-06 14:32:06