2012-11-13 48 views
2

我想用取自SIMPLE HTML PHP DOM PARSER(simplehtmldom.sourceforge.net)的內容替換所有日期。下面是代碼:
在PHP中過濾日期DOM

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 2004Jan 01 2004Dec 12 14應該用一個空格來代替......但它不是以空間代替那些日子。現在該怎麼辦?
下面是一個例子展示它是如何工作..http://codepad.org/lAuHW565但爲什麼它不PHP Simple HTML DOM Parser

+0

我真的很困惑你對DOM的引用......你似乎在用純字符串工作。 '$ result'看起來像什麼? –

+0

@ÁlvaroG.Vicario它會從頁面獲取全部內容.. –

+0

下面是一個顯示它如何工作的示例.. http://codepad.org/lAuHW565 –

回答

2

你試圖更換SimpleHTML對象,它是不可能的工作(這是一個對象,而不是字符串)。你應該做的是先獲取HTML,然後替換,然後使用str_get_html函數將其變爲SimpleHTML

<?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; 
?> 
+0

@MaxMuller你說得對 - 我的錯誤 - 我讀過它作爲'file_get_contents',即使它是'file_get_html'。我改變了代碼來反映你的問題。 – h2ooooooo

+0

不明白爲什麼它不工作:( –

+0

@MaxMuller編輯你的OP並添加你的新代碼 – h2ooooooo