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 2004またはJan 01 2004またはDec 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 に答える