私は自分の会社のサイトからこのHTMLコードを持っています。データベースにアクセスできないので、HTMLファイルを解析して値を返したいと思います。コードは次のようになります。
<?php
$string = '
<p> <b>HEADER INFO</b>
<table width=100% cellspacing=0>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>View Object:</b> 6600422</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>BPO:</b> G37147359-000000</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Ack Date:</b> 2012-05-28</font></td>
</tr>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=3><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Operation(s):</b> PPS_Queue, PPS_Build, PPS_BoxAll, JPN_End</font></td>
</tr>
</table>
</p>
<hr>
<p> <b>EXTERNAL ORDER NUMBER REFERENCE</b>
<table width=100% cellspacing=0>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>SAP Sales Order Number</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Customer P.O. Number</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Legacy Order Number</b></font></td>
</tr>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">0310363858</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">77340892008-120413</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">89FF09378001</font></td>
</tr>
</table>
</p>
<hr>
<p> <b>PRODUCTS FOR THIS WORK OBJECT/OPERATION(S)</b>
<table width=100% cellspacing=0>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>PL</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Product #</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Qty</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Options</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Serial #</b></font></td>
</tr>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">3C</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">AP703B</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">1</font></td>
<td valign=top colspan=1>  </td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">2S6219000G</font></td>
</tr>
</table>
</p>
<hr>
<p> <b>Station Info</b>
<table width=100% cellspacing=0>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Start Station:</b> JPN_End</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Location:</b> Done</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Station:</b> </font></td>
</tr>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Birth Date/Time:</b> 2012-05-23 14:20:32 SGT</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Power Cord:</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Voltage:</b></font></td>
</tr>
</table>
</p>
<hr>
<p> <b>MATERIAL LIST FOR THIS WORK OBJECT/OPERATION(S)</b>
<table width=100% cellspacing=0>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Part Number</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Qty</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Description</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>BB Type</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Material Location</b></font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Serial Number</b></font></td>
</tr>
<tr align=left>
<td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">AP703B@@</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">1</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">OEM Generic 1U SAS Enclosure</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">BOM</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">ASSY</font></td>
<td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">2S6219000G</font></td>
</tr>
</table>
</p>
';
$result = parse_data($string);
extract($result);
echo $headertext.'<br />';
echo $sapSON.'<br />';
echo $custPON.'<br />';
echo $legacyON.'<br />';
echo $pl.'<br />';
echo $pn.'<br />';
function parse_data($string){
$string = str_replace(' ','',$string);
$xml = new DOMDocument();
@$xml->loadHTML($string);
$ret = array();
foreach($xml->getElementsByTagName('p') as $p) {
$header = trim($p->nodeValue);
}
foreach($xml->getElementsByTagName('td') as $td) {
$value = trim($td->nodeValue);
if(!empty($value) && is_numeric($value{0})){
$ret[] = $value;
}
}
$ret = array('headertext'=>$header,
'sapSON'=>$ret[0],
'custPON'=>$ret[1],
'legacyON'=>$ret[2],
'pl'=>$ret[3],
'pn'=>$ret[4],);
return $ret;
}
?>
次に、ヘッダー「外部注文番号参照」を後で呼び出すことができるi変数に保存します。
また、1行目の2列目、3列目、4列目は、それぞれ2行目の2列目、3列目、4列目の値に対応しています。また、これらの値を変数に保存したいと思います。したがって、基本的に、このHTMLファイルを解析して次を返すPHPスクリプトが必要です。
$header1 = "HEADER INFO";
$viewObject = "6600422";
$BPO = "G37147359-000000";
$AckDate = "2012-05-28";
$Operations = "PPS_Queue, PPS_Build, PPS_BoxAll, JPN_End";
$header2 = "EXTERNAL ORDER NUMBER REFERENCE";
$sapSON = "0310363858";
$custPON = "77340892008-120413";
$legacyON = "89FF09378001";
$header3 = "PRODUCTS FOR THIS WORK OBJECT/OPERATION(S)"
$pl = "3C";
$pn = "AP703B";
$qty = "1";
$options = " ";
$serialNo = "2S6219000G";
ETC ...基本的に、すべてのテーブルの内容を変数に保存する必要があります。後でデータベースに保存してレポートを作成し、詳細のバーコードを生成するためです。
助けてくれてありがとう!
参考:データベースにアクセスできないため、このHTMLファイルを解析して、後でデータベースに保存できる変数に値を保存するだけです。また、ヘッダーは一定であることに注意してください。変更される値は、異なる順序の数値のみです。