简单的HTML DOM Parser PHP

时间:2015-09-29 09:32:08

标签: php html dom

我正在尝试使用' Simple HTML DOM Parser'选择html页面的特定部分。

我的代码到目前为止有效,但它会返回完整文本,这很棒,但我只想显示单个P BARCODE[pb]行。

我的(工作)PHP代码如下;

$homepage = file_get_html('http://example.com/SomeTextPage');

foreach($homepage->find('text') as $element) 
       echo $element->innertext . '<br>'; // line 29

这会在我的页面上返回以下内容(这是视图源显示);

<HTML>
<BODY>
EXP DATE[p43]=12-31-97<BR>
PCODE1[p44]=-<BR>
PCODE2[p45]=-<BR>
PCODE3[p46]=0<BR>
P TYPE[p47]=1<BR>
TOT CHKOUT[p48]=56<BR>
TOT RENWAL[p49]=17<BR>
CUR CHKOUT[p50]=3<BR>
HOME LIBR[p53]=0000<BR>
PMESSAGE[p54]=<BR>
MBLOCK[p56]=-<BR>
REC TYPE[p80]=p<BR>
RECORD #[p81]=110220<BR>
REC LENG[p82]=1126<BR>
CREATED[p83]=01-09-97<BR>
UPDATED[p84]=06-05-97<BR>
REVISIONS[p85]=139<BR>
AGENCY[p86]=1<BR>
CL RTRND[p95]=0<BR>
MONEY OWED[p96]=$1.35<BR>
BLK UNTIL[p101]=  -  -  <BR>
CUR ITEMA[p102]=0<BR>
CUR ITEMB[p103]=0<BR>
PIUSE[p104]=0<BR>
OD PENALTY[p105]=0<BR>
ILL CHKOUT[p122]=3<BR>
PATRN NAME[pn]=Jackson, Richard<BR>
ADDRESS[pa]=322 San Diego St<BR>
ADDRESS2[ph]=El Cerrito, CA 99999<BR>
TELEPHONE[pt]=510-555-1212<BR>
UNIV ID[pu]=111111111<BR>
P BARCODE[pb]=21913000482538<BR>
</BODY>
</HTML>

我想我需要选择第32行<br>或更重要的是[P BARCODE[pb]]行 - 这可能吗?

[P BARCODE[pb]]行并不总是第32行,但[P BARCODE[pb]]文字永远不会改变。

也许我接近这个错误的方式?

欢迎任何帮助或建议。

3 个答案:

答案 0 :(得分:0)

它没有那样工作,将每一行文字都包裹在<span>中,以便您可以单独访问它们。

显然还有另一种选择,我想参考this回答

答案 1 :(得分:0)

There is conflict between your defined css file  and  jquery imported cdn library css just imported library overriding your defined css file 
 segregate both css using id,class level selector
#site {
    font-size: 14px;
  //preferred way
}

#div #site {
    font-size: 10px;
//  conflicting the font-size of div && overriding the size property
}

答案 2 :(得分:0)

您想尝试使用regexp吗?

$subject = 'P BARCODE[pb]=21913000482538<BR>';
$pattern = '/P\sBARCODE\[pb\]=([0-9]*)<BR>/'; 
preg_match($pattern, $subject, $matches); 
print_r($matches);