我正在使用Simple HTML DOM来抓取网页。我试图得到一个td元素的html,它不断带回明文而不是html。我已经尝试了outertext和innertext但仍然没有运气。
这是我的PHP代码:
<?php
include_once('simple_html_dom.php');
class JobPosting {
var $Id;
var $PostDate;
var $RequistionNumber;
var $Title;
var $Company;
var $City;
var $State;
var $Description;
var $Requirements;
}
function GetJobPosting($id)
{
$html = file_get_html('https://rew31.ultipro.com/PAC1016/JobBoard/JobDetails.aspx?__ID=*6CF6029C92AD592E');
$jobposting = new JobPosting;
$jobposting->Id = $id;
$jobposting->RequistionNumber = $html->find('#DataCell_Req_Code')[0]->plaintext;
$jobposting->PostDate = $html->find('#DataCell_Req_PostDate')[0]->plaintext;
$jobposting->Title = $html->find('#DataCell_Req_TitleFK')[0]->plaintext;
$jobposting->Company = $html->find('#DataCell_Req_ReqUDF3FK')[0]->plaintext;
$jobposting->City = $html->find('#DataCell_Req_City')[0]->plaintext;
$jobposting->State = $html->find('#DataCell_Req_State')[0]->plaintext;
$jobposting->Description = $html->find('#DataCell_Req_Description')[0]->outertext;
$jobposting->Requirements = $html->find('#DataCell_Req_Requirements')[0]->outertext;
return $jobposting;
}
?>
主要问题是我希望在范围内保持文本格式。这意味着它将具有所有正确的间距和间距,但似乎间隔被空格替换。
我做错了什么?
答案 0 :(得分:0)
您无需同时调用plaintext
或outertext
,因为这些是删除HTML代码的功能。
DOM对象有一个隐式__toString方法,它返回html,所以你只需要返回该对象,或者将它连接到一个字符串以强制转换:
$html = str_get_html('<html><body><div id="hello">Hello!</div></body></html>');
echo $html->find('#hello')[0];
这会输出<div id="hello">Hello!</div>
,这就是你想要的。