Как получить HTML-код другого DIV на другом веб-сайте с помощью PHP [duplicate]

0

Итак, скажем, у меня есть мой сайт:

<div id="MySiteDIV">
 <!-- Content in here -->
</div>

И сайт других лиц:

<div id="CTs_g">
 <p>Hello</p>
  <div id="AG_g">This is my website</div>
</div>

Как мне получить HTML и все так на моем сайте, это будет выглядеть так:

<div id="MySiteDIV">
 <!-- Content in here -->

<div id="CTs_g">
 <p>Hello</p>
  <div id="AG_g">This is my website</div>
</div>

</div>

Я видел (и пробовал) DOMDocument() но мне казалось, что мне нужно только содержимое, но мне нужен HTML.

  • 0
    Вы можете получить HTML с DOMDocument .
  • 1
    Получите исходный код с помощью file_get_contents, а затем используйте preg_match, чтобы вырезать нужную вам часть.
Показать ещё 1 комментарий
Теги:

2 ответа

1
Лучший ответ

Ну вот:

$dom = new DOMDocument();
$yourDom = new DOMDocument();
$yourDom->loadHTML(file_get_contents('your_template'));
$dom->loadHTML(file_get_contents('other_website'));

// You can now use the DOMDocument methods to parse whatever you want.
$div = $dom->getElementById("CTs_g");
$clone = $div->cloneNode(true);
$yourDiv = $yourDom->getElementById("MySiteDIV");
$yourDiv->appendChild($clone);
0

Как упоминает @Mohammad, вам нужно будет использовать php для этого. Сначала вы захватите удаленную страницу с помощью file_get_contents:

$html = file_get_contents('http://othersite.com');

Затем проанализируйте это с помощью preg_match (регулярное выражение) или некоторой сторонней библиотеки, которая выполняет очистку страницы, например https://code.google.com/p/phpquery/ PHPQuery

Использование preg_match проще, но вам нужно определить начало/конец требуемого раздела. Если вы точно знаете - или идеально, если у вас есть контроль над другим сайтом, в этом случае я бы добавил теги begin/end comment, а затем еще больше вам нужно было бы запустить всю страницу через php-запрос, который нелегко бы найти правый раздел.

В приведенном выше случае достаточно легко определить начало (т.е. id = "MySiteDIV"), но конец намного сложнее. Поэтому моя рекомендация состоит в том, чтобы найти 2 части на этом удаленном сайте, которые являются уникальными, и использовать preg_match, чтобы захватить это. Добро пожаловать в регулярное выражение.

  • 1
    Смотрите принятый ответ здесь: stackoverflow.com/questions/1732348/… чтобы узнать, почему это плохая идея использовать регулярные выражения для этого.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню