所以我开始在刮擦的世界里这么好,直到我在我的任务中遇到了巨大的障碍。
所以我不确定它有多可能,但是我试图刮掉一些标记为" THISTEXT"从这段代码。
<div id="mainclass">
<object type="application/x-shockwave-flash" height="400" width="100%" id="live_embed_player_flash" data="http://www.websiteexample.com/channel=THISTEXT" bgcolor="#d7d7d7">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="allowNetworking" value="all" />
<param name="movie" value="http://www.websiteexample.com/live_embed_player.swf" />
<param name="flashvars" value="hostname=www.websiteexample.com&channel=THISTEXT&auto_play=false&start_volume=100" />
</object>
到目前为止,我已设法清除身份证,但这就是我撞墙的地方。能不能帮助我的人会非常感激!
我目前的代码可以在这里找到
function getElementByIdAsString($url, $id, $pretty = true)
{
$doc = new DOMDocument();
@$doc->loadHTMLFile($url);
if(!$doc) {
throw new Exception("Failed to load $url");
}
$element = $doc->getElementById($id);
if(!$element) {
throw new Exception("An element with id $id was not found");
}
if($pretty) {
$doc->formatOutput = true;
}
return $doc->saveXML($element);
}
$finalcontent = getElementByIdAsString('http://examplewebsite.com', 'mainclass');
print_r ($finalcontent);
答案 0 :(得分:0)
我已经重写了你的例子,并添加了一些方法来提取信息 - 它不是很漂亮,但它可以为你提供所需的信息。
$html = '
<div id="mainclass">
<object type="application/x-shockwave-flash" height="400" width="100%" id="live_embed_player_flash" data="http://www.websiteexample.com/channel=THISTEXT" bgcolor="#d7d7d7">
<param name="allowFullScreen" value="true" />
<param name="allowScriptAccess" value="always" />
<param name="allowNetworking" value="all" />
<param name="movie" value="http://www.websiteexample.com/live_embed_player.swf" />
<param name="flashvars" value="hostname=www.websiteexample.com&channel=THISTEXT&auto_play=false&start_volume=100" />
</object>';
function getElementByIdAsString($html, $id, $pretty = true) {
$doc = new DOMDocument();
@$doc->loadHTML($html); // changed this from loadHTMLFile()
if(!$doc) {
throw new Exception("Failed to load $url");
}
$element = $doc->getElementById($id);
if(!$element) {
throw new Exception("An element with id $id was not found");
}
// get all object tags
$objects = $element->getElementsByTagName('object'); // return node list
// take the the value of the data attribute from the first object tag
$data = $objects->item(0)->getAttributeNode('data')->value;
// cut away the unnecessary parts and return the info
return substr($data, strpos($data, '=')+1);
}
// call it:
$finalcontent = getElementByIdAsString($html, 'mainclass');
print_r ($finalcontent);
在这个例子中,我使用的是html字符串,而不是像你这样的文件。实施时请考虑这一点。
真诚地