File_Get_Contents之后的Str_Replace

时间:2014-08-13 20:33:43

标签: php domdocument str-replace

我正在使用DomDocument从其他网站上拉页面。

返回的页面有一些相同的链接。这些链接都具有相同的路径:https://example.com/team-registration/

我想要做的是覆盖这些链接,以便在返回页面时转到不同的路径:https://mobile.example.com/registration-team.php

$url = "https://example.com/index.php";
$doc = new DomDocument('1.0', 'UTF-8');
$doc->loadHtml(file_get_contents($url));
$div = $doc->getElementById('upcoming_league_dates');
str_replace("<a href='https://example.com/team-registration/'", "<a href='https://mobile.example.com/registration-team.php'", $div);
echo $doc->saveHTML($div);

我尝试了str_replace但是它抛出了一个错误。

更新代码

根据@Ally Shairu的例子,这是更新的代码:

$url = "https://pugetsoundbasketball.com/index.php";
$doc = new DomDocument('1.0', 'UTF-8');
$doc->loadHtml(file_get_contents($url));
$div = $doc->getElementById('upcoming_league_dates');
$value = str_replace("<a href='https://example.com/team-registration/'", "<a href='https://mobile.example.com/registration-team.php'", $div->nodeValue);
$div->nodeValue = $value;
$html = $doc->saveHTML();
echo $html;

不幸的是,这只会拉动整个页面而不是“coming_league_dates”div。实际上,除了“coming_league_dates”div之外,它似乎显示该页面的所有内容。

当我尝试这个时它也失败了:

$ html = $ doc-&gt; saveHTML();

1 个答案:

答案 0 :(得分:0)

str_replace函数返回修改后的字符串或数组。你没有在任何地方保存这个价值?我想这可能是问题,如果没有,请分享错误。

编辑: 由于您已经共享了错误,我认为您需要获取nodeValue,请尝试使用此$ div-&gt; nodeValue。如果您的HTML有效,这将有效。

var_dump($ div)看看你到底得到了什么。