Динамически заменить содержимое элементов HTML с помощью PHP - PullRequest
0 голосов
/ 23 января 2012

В настоящее время мне нужен способ получить определенные элементы с другого сайта и заменить их содержимое собственным контентом с помощью PHP.

Если на веб-сайте есть страница, содержащая следующееtable и div

    <div>Div Contents!</div>

    <table>
      <tr>
        <td>Table Column 1</td>
        <td>Table Column 2</td>
      </tr>
    </table>

Мне нужно иметь возможность получить эту информацию и заменить «Div Contents!», «Столбец 1 столбца» и «Столбец 2 столбца» собственными данными.

Каков наилучший способ сделать это?Регулярные выражения или strpos / str_replace / substr и т. Д.

Я ценю любую помощь и примеры, которые вы предоставляете.

Ответы [ 3 ]

1 голос
/ 23 января 2012

Используйте cURL для захвата содержимого HTML из удаленного источника, используйте регулярное выражение (preg_match()) или последовательность строковых операций для извлечения нужных данных, выводите данные в нужном формате из переменной, назначенной во время синтаксического анализа.

В идеале регулярное выражение будет намного быстрее создавать и тестировать, но комбо strpos / substr также может помочь.

* Я собирал программы для интеллектуального анализа данных до

0 голосов
/ 23 января 2012
// read URL into dom document
$doc = domxml_open_file('http://domain.com/test.php');
// replace content of div
$els = $doc->getElementsByTagName('div');
$els[0]->set_content('new content');
// replace content of tds
$els = $doc->getElementsByTagName('td');
$els[0]->set_content('new content');
$els[1]->set_content('new content');
// echo the final output
echo $doc->saveXML();

Примечания

  • Приведенный выше код должен работать с URL-адресами напрямую, без использования CURL.
  • Я использовал прямой подход к изменениюзначения (предполагается, что структура, которую вы упомянули, является истинной).Вместо этого вы должны использовать цикл.
0 голосов
/ 23 января 2012
  1. Получить HTML-код другой страницы с помощью cURL
  2. Анализировать и изменять - см. этот вопрос .Скорее всего, вы захотите использовать встроенную библиотеку PHP, такую ​​как XMLReader или DOM .
  3. Отображение полученного HTML
...