0
嘿所有, 我已經成功創建了一個網站刮板從記錄行業網站獲得前40名,但我刮的表格中的一列可能有時不在那裏。基本上,我需要的是一種從我刮除去此的任何實例:刪除刮從
<td><img src="/images/bullet_red.gif" width="8" height="8" title="Red Dot" /></td>
下面是我從一個教程走到這一步。
$url = "http://www.ariacharts.com.au/pages/charts_display_singles.asp?chart=1U50";
$raw = file_get_contents($url);
$newlines = array("\t","\n","\r","\x20\x20","\0","\x0B");
$content = str_replace($newlines, "", html_entity_decode($raw));
$start = strpos($content,'<table class="chartTable"');
$end = strpos($content,'</table>',$start) + 8;
$table = substr($content,$start,$end-$start);
preg_match_all("|<tr(.*)</tr>|U",$table,$rows);
foreach ($rows[0] as $row){
if ((strpos($row,'<th')===false)){
preg_match_all("|<td(.*)</td>|U",$row,$cells);
$number = strip_tags($cells[0][1]);
$name = strip_tags($cells[0][5]);
$artist = strip_tags($cells[0][6]);
$name = strtolower($name);
$name = ucwords($name);
echo "{$artist} - {$name} - Number {$number} <br>\n";
}
}
對不起,但我只是在尋找如何刪除一行,而不是重寫整個腳本。不管怎麼說,還是要謝謝你。 – Sam 2011-06-01 10:33:32
@Sam,你需要學習提供好的建議。查看我的更新後的帖子,使用PHP Simple HTML DOM Parser更容易。它實現了你想要的約50%的代碼。 PS:你不應該使用正則表達式來解析HTML。 – Petah 2011-06-02 00:07:10
@Petah,使用cURL與簡單的HTML DOM解析器而不是file_get_contents()... http://webarto.com/82/php-simple-html-dom-curl @Sam,你應該刪除你的腳本,並重新開始,你無法用RegEx解析這個複雜的HTML(你不應該)。 – 2011-06-02 00:10:46