2

我想用 SIMPLE HTML PHP DOM PARSER (simplehtmldom.sourceforge.net) 从获取的内容中替换所有日期。这是代码:

include("simple_html_php_dom.php");
$html = file_get_html("http://freebacklinks.prijm.com"); //example.com
$result = "$html";
$result = preg_replace("/([1-9]|[0-2][0-9]|3[0-1]) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{4}/", " ", $result);
$result = preg_replace("/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([1-9]|[0-2][0-9]|3[0-1]) [0-9]{4}/", " ", $result);
echo $result;

所以,这里所有的日期数据,比如:01 Jan 2004or Jan 01 2004orDec 12 14应该用空格替换......但它没有用空格替换那些日期......现在该怎么办?
这是一个显示它将如何工作的示例.. http://codepad.org/lAuHW565 但为什么它在PHP Simple HTML DOM Parser中不起作用

4

1 回答 1

2

您试图替换一个SimpleHTML不可能的对象(它是一个对象,而不是字符串)。您应该做的是先获取HTML,然后替换,然后将其转换为SimpleHTML使用该str_get_html功能。

<?php
    include("simple_html_php_dom.php");

    //Start with getting the pure HTML and replacing in that (don't use SimpleHTMLPHP for this)
    $html = file_get_contents("http://freebacklinks.prijm.com"); //example.com
    $html= preg_replace("/([1-9]|[0-2][0-9]|3[0-1])\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+[0-9]{4}/", " ", $html);
    $html = preg_replace("/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+([1-9]|[0-2][0-9]|3[0-1])\s+[0-9]{4}/", " ", $html);

    //Now create the $result variable:
    $result = str_get_html($html);
    echo $result;
?>
于 2012-11-13T13:47:42.900 回答