如何将两个表从某个人的网站复制到我的网站? WordPress的

时间:2017-11-01 15:29:41

标签: php wordpress object dom

我正在尝试从特定网站地址复制两张桌子并将其模仿到我的网站上,但我不确定该怎么做。

我已经研究过Simple-HTML-Dom,我实际上让它在我的机器上本地工作 - 在某种程度上。虽然我对这种方法有几个问题。

  1. 虽然我得到了它的工作,但它并不完美。我还拖了一些随机文本,我复制了5个表 - 而不是预期的2个。

  2. 我宁愿使用其他方法 - 不使用第三方脚本?

  3. 我试图复制的表格可以在这里找到:

    https://www.gov.uk/government/publications/rates-and-allowances-monthly-euro-conversion-rates-for-calculating-duty/monthly-euro-conversion-rates-for-calculating-duty

    我只想要包含2017年和2016年数据的表格(带有标题)。

    2017年的费率

    表格标题

    表格内容

    2016年的费率

    表格标题

    表格内容

    这适用于我的Wordpress网站。 我不知道是否可以用PHP编程实现这一点,或者Wordpress本身支持的另一个库,而不使用SQL /第三方脚本或类似的东西。

    谢谢

    ////

    ---巨大的更新---

    好的,所以我一直在玩并尝试调试代码,我几乎就在那里!!

    我设法只复制了第一张表(第二张表很容易)。

    最后一部分是尝试将类添加到createElements行?那可能吗?

    这是我差不多完成的代码。

    <h1 class="roeheader">Monthly Industrial Euro Rate:</h1>
    
    [insert_php]
    $url = "https://www.gov.uk/government/publications/rates-and-allowances-monthly-euro-conversion-rates-for-calculating-duty/monthly-euro-conversion-rates-for-calculating-duty";
    $html = file_get_contents($url);
    libxml_use_internal_errors(true);
    $doc = new \DOMDocument();
    if($doc->loadHTML($html))
    {
    $result = new \DOMDocument();
    $result->formatOutput = true;
    $table = $result->appendChild($result->createElement("table"));
    $thead = $table->appendChild($result->createElement("thead"));
    $tbody = $table->appendChild($result->createElement("tbody"));
    
    $xpath = new \DOMXPath($doc);
    
    $newRow = $thead->appendChild($result->createElement("tr"));
    
    foreach($xpath->query("//table[1]/thead/tr/th[position()>0]") as $header)
    {
    $newRow->appendChild($result->createElement("th", trim($header->nodeValue)));
    }
    
    foreach($xpath->query("//table[1]/tbody/tr") as $row)
    {
    $newRow = $tbody->appendChild($result->createElement("tr"));
    
    foreach($xpath->query("./td[position()>0 and position()<5]", $row) as $cell) 
    { 
    $newRow->appendChild($result->createElement("td", trim($cell->nodeValue)));
    }
    
    }
    
    echo $result->saveXML($result->documentElement);
    }
    [/insert_php]
    

    我正试图改变这一行:

    $newRow->appendChild($result->createElement("td", trim($cell->nodeValue)));
    

    对此:

    $newRow->appendChild($result->createElement("td class"roe"", trim($cell->nodeValue)));
    

    但它不起作用?该页面只是拒绝加载?我想这是因为双引号。

    由于

1 个答案:

答案 0 :(得分:0)

现在,您可以检查表格并查看它们后面的html和css,并将它们复制到您的网站,使它们完全相同。一个用于制作表格的好WordPress插件是https://wordpress.org/plugins/tablepress/。如果您有进一步的信息,请告诉我。