이것은 데이터를 긁어 내고 싶은 테이블입니다. PHP dom을 사용하여 긁을 수는 있지만 문제는 단지 Vacent-rows없이 날짜 만 가져오고 싶다는 것입니다. 나는 4 일에서 그러나 운 없음 시도했다.PHP를 사용하여 ID 및 클래스가없는 테이블 데이터를 긁어 내고 싶습니다.
<table cellspacing="1" width="700px">
<colgroup><col width="100px">
<col width="100px">
<col width="30px">
<col width="30px">
<col width="60px">
<col width="40px">
<col width="45px">
</colgroup><tbody><tr bgcolor="#d6d6d6">
<th>From</th>
<th>To</th>
<th>In</th>
<th>Out</th>
<th>Name</th>
<th>Adults</th>
<th>Children</th>
<th>Comment</th>
</tr>
<tr>
<td nowrap="" style="border-bottom: 1px solid #888888">Nov Thu 23, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">Nov Fri 24, 2017</td>
<td colspan="6" style="border-bottom: 1px solid #888888; color: #3333ff; text-align: center">-- Vacant --</td>
</tr>
<tr>
<td nowrap="" style="border-bottom: 1px solid #888888">Nov Fri 24, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">Nov Mon 27, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">15:00 </td>
<td nowrap="" style="border-bottom: 1px solid #888888">10:00 </td>
<td nowrap="" style="border-bottom: 1px solid #888888">WILLIAMS, KEELY</td>
<td style="border-bottom: 1px solid #888888">4 </td>
<td style="border-bottom: 1px solid #888888">0 </td>
<td style="border-bottom: 1px solid #888888"> </td>
</tr>
<tr>
<td nowrap="" style="border-bottom: 1px solid #888888">Nov Mon 27, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">Dec Thu 07, 2017</td>
<td colspan="6" style="border-bottom: 1px solid #888888; color: #3333ff; text-align: center">-- Vacant --</td>
</tr>
<tr>
<td nowrap="" style="border-bottom: 1px solid #888888">Dec Thu 07, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">Dec Sun 10, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">15:00 </td>
<td nowrap="" style="border-bottom: 1px solid #888888">10:00 </td>
<td nowrap="" style="border-bottom: 1px solid #888888">HALL, TYLER</td>
<td style="border-bottom: 1px solid #888888">4 </td>
<td style="border-bottom: 1px solid #888888">0 </td>
<td style="border-bottom: 1px solid #888888"> </td>
</tr>
<tr>
<td nowrap="" style="border-bottom: 1px solid #888888">Dec Sun 10, 2017</td>
<td nowrap="" style="border-bottom: 1px solid #888888">Dec Sat 16, 2017</td>
<td colspan="6" style="border-bottom: 1px solid #888888; color: #3333ff; text-align: center">-- Vacant --</td>
</tr>
</tbody></table>
"보낸 사람"및 "받는 사람"필드 값만 가져 오려고합니다. "- 빈 -"날짜 그러나 여기에는 ID 또는 클래스는 그래서이 방법
$html = fetched HTML here;
$pokemon_doc = new DOMDocument();
libxml_use_internal_errors(TRUE); //disable libxml errors
if(!empty($html)){ //if any html is actually returned
$pokemon_doc->loadHTML($html);
libxml_clear_errors(); //remove errors for yucky html
$pokemon_xpath = new DOMXPath($pokemon_doc);
//get all the h2's with an id
$pokemon_row = $pokemon_xpath->query('//table//td[@style="border-bottom: 1px solid #888888"]');
if($pokemon_row->length > 0){
$oe = 1;
foreach($pokemon_row as $row){
if ($oe % 2 == 0) {
//mysqli_query($con,"INSERT INTO booking VALUES('','','".(validateDate($row->nodeValue) ? $row->nodeValue : '')."')");
echo (validateDate($row->nodeValue) && $row->nodeValue!='-- Vacant --' ? $row->nodeValue : '') . " | <br>";
} else {
//mysqli_query($con,"INSERT INTO booking VALUES('','".(validateDate($row->nodeValue) ? $row->nodeValue : '')."','')");
echo (validateDate($row->nodeValue) && $row->nodeValue!='-- Vacant --' ? $row->nodeValue : '') . " , <br>";
}
$oe++;
}
}
} else {
echo 'no html returend.';
}
// Check date validate function
function validateDate($date)
{
$d = DateTime::createFromFormat('M D d, Y', $date);
return $d && $d->format('M D d, Y') == $date;
}
문제는 내가 필요하지 않습니다이다 사용하지 않습니다. 이 코드를 사용해 보았지만 행운은 없습니다.
누구든지 나를 도와주세요. 감사합니다. .
, 그것은 XPATH – ArtisticPhoenix