【发布时间】:2015-09-29 18:10:53
【问题描述】:
我正在尝试使用“Simple HTML DOM Parser”选择 html 页面的特定部分。
到目前为止,我的代码可以正常工作,但它返回了很棒的 complete 文本,但我只想显示单个 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]] 文本永远不会改变。
也许我用错了方法?
欢迎任何帮助或建议。
【问题讨论】:
-
我会试试
$homepage->find('text')[31],还是太容易了? -
第 32 行是否已修复
-
@MrLister 不起作用。我得到
Notice: Trying to get property of non-object in C:\xampp\... on line 29。第 29 行是我的回声 -
@Irfan 说得很好,不,它有时会在第 31 行和第 32 行之间发生变化。但文本
[P BARCODE[pb]永远不会改变。