Очистить контент с веб-страницы

Я пытаюсь удалить содержание с этой веб-страницы:

www.motorcyclemonster.com/motorcycle-events.html, код, который я использую:

<?php

$content = file_get_contents('http://www.motorcyclemonster.com/motorcycle-events.html');

$pattern = '#<tr.">\r\n<td>(.*)</td>\r\n<td>(.*)</td>#';

preg_match_all ($pattern, $content, $data);

var_dump($data);

for ($i = 0; $i < 11; $i++)
{
echo "<br /><br />". $data[2][$i].' '.$data[3][$i];
}

?>

Я просто хотел бы иметь возможность получить информацию из следующих

<tr>
<td width="23%" bgcolor="#76C2FA">Nov 15 - Jan 4</td>
<td width="52%" bgcolor="#76C2FA"><b> <a href="/events/cars-and-christmas-2014-11-15-Hershey-PA.html" title="Cars and Christmas - Hershey, Pennsylvania">Cars and Christmas</a></b></td>
<td width="20%" bgcolor="#76C2FA">Hershey</td>
<td width="5%" bgcolor="#76C2FA">PA</td>
</tr>

и быть в состоянии установить некоторые переменные для

<tr>
<td width="23%" bgcolor="#76C2FA">**$date**</td>
<td width="52%" bgcolor="#76C2FA"><b><a href=**$page_url**" title="**$title**">$title</a></b></td>
<td width="20%" bgcolor="#76C2FA">**$city**</td>
<td width="5%" bgcolor="#76C2FA">**$state**</td>
</tr>

Любая помощь будет благодарна

-2

Решение

Разбор HTML-тэгов с помощью регулярных выражений не такая уж хорошая идея (по разным причинам). Я бы предпочел проверить PHP DOM, как это специально сделано для таких целей.

0

Другие решения

Самый простой способ сделать это — использовать PHP простой HTML Dom Parser

<?php
/**
* Created by PhpStorm.
* User: Adrian
* Date: 05/12/2014
* Time: 19:28
*/
//Load website

include('simple_html_dom.php');
$html = file_get_html('http://www.motorcyclemonster.com/motorcycle-events.html');

//For each table row
$events = array();
foreach($html->find('table',2)->find('tr') as $h){
$temp = array();
//get date
$temp['date'] = $h->find('td', 0)->innertext; //Inner contents of first cell

if($url = $h->find('td', 1)) {
if($url = $url->find('a', 0)) {//First link of second cell
$temp['url'] = $url->href; //href attribute
$temp['url_title'] = $url->title; //title attribute
$temp['title'] = $url->innertext; // Inner content of link

$temp['town'] = $h->find('td', 2)->innertext;
$temp['state'] = $h->find('td', 3)->innertext;

$events[] = $temp;
}
}
}

print_r($events);

Примечание. Сначала необходимо включить Simple HTML Dom Parser.

Затем вы можете перебрать этот массив событий, чтобы отобразить его так, как вы хотите

Как обычная вежливость, я бы предоставил, возможно, только первую страницу или 2, и предоставил бы ссылку на исходный сайт для полного списка

0

По вопросам рекламы [email protected]