<?php
$a = file_get_contents("http://nagranitse.ru/");
preg_match('#(?>число машин|number of cars).*<td>(?>(\d+)<|(\d+)\s(.*)<).*(?>примерное время ожидания|estimated waiting time).*<td>(.*)</td>.*(?>последнее время обновления|last updated).*<td>(.*)</td>#isU', $a, $one);
preg_match('#(?>число машин|number of cars).*<td>.*<td>(?>(\d+)<|(\d+)\s(.*)<).*(?>примерное время ожидания|estimated waiting time).*<td>.*<td>(.*)</td>.*(?>последнее время обновления|last updated).*<td>.*<td>(.*)</td>#isU', $a, $two);
preg_match('#(?>число машин|number of cars).*<td>.*<td>.*<td>(?>(\d+)<|(\d+)\s(.*)<).*(?>примерное время ожидания|estimated waiting time).*<td>.*<td>.*<td>(.*)</td>.*(?>последнее время обновления|last updated).*<td>.*<td>.*<td>(.*)</td>#isU', $a, $three);
echo "<html><head><style type='text/css'>";
echo "table{width:600px; text-align:center; border-spacing:0;}";
echo "th,td{padding:5px 0;}";
echo "th{background:#D2DCE5;}";
echo "th:first-child{border-radius:10px 0 0 0; -webkit-border-radius:10px 0 0 0; -moz-border-radius:10px 0 0 0;}";
echo "th+th+th{border-radius:0 10px 0 0; -webkit-border-radius:0 10px 0 0; -moz-border-radius:0 10px 0 0;}";
echo "td{border:1px solid #ccc;}";
echo "tr+tr+tr+tr td:first-child{border-radius:0 0 0 10px; -webkit-border-radius:0 0 0 10px; -moz-border-radius:0 0 0 10px;}";
echo "tr+tr+tr+tr td+td+td{border-radius:0 0 10px 0; -webkit-border-radius:0 0 10px 0; -moz-border-radius:0 0 10px 0;}";
echo "</style></head><body>";
if($one[1] !== "" & $two[1] !== "" & $three[1] !== "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[1]</td><td>$two[1]</td><td>$three[1]</td></tr>";
echo "<tr><td>$one[4]</tr><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] !== "" & $two[1] !== "" & $three[1] == "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[1]</td><td>$two[1]</td><td>$three[2] $three[3]</td></tr>";
echo "<tr><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] !== "" & $two[1] == "" & $three[1] !== "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[1]</td><td>$two[2] $two[3]</td><td>$three[1]</td></tr>";
echo "<tr><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] !== "" & $two[1] == "" & $three[1] == "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[1]</td><td>$two[2] $two[3]</td><td>$three[2] $three[3]</td></tr>";
echo "<tr><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] == "" & $two[1] !== "" & $three[1] !== "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[2] $one[3]</td><td>$two[1]</td><td>$three[1]</td></tr>";
echo "<tr><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] == "" & $two[1] !== "" & $three[1] == "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[2] $one[3]</td><td>$two[1]</td><td>$three[2] $three[3]</td></tr>";
echo "<tr></div><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr></div><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] == "" & $two[1] == "" & $three[1] !== "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[2] $one[3]</td><td>$two[2] $two[3]</td><td>$three[1]</td></tr>";
echo "<tr><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
} elseif($one[1] == "" & $two[1] == "" & $three[1] == "") {
echo "<table>";
echo "<tr><th>Торфяновка</th><th>Брусничное</th><th>Светогорск</th></tr>";
echo "<tr><td>$one[2] $one[3]</td><td>$two[2] $two[3]</td><td>$three[2] $three[3]</td></tr>";
echo "<tr><td>$one[4]</td><td>$two[4]</td><td>$three[4]</td></tr>";
echo "<tr><td>$one[5]</td><td>$two[5]</td><td>$three[5]</td></tr>";
echo "</table>";
}
echo "</body></html>";
?>
Форум → Программирование → PHP для идиотов → Как можно оптимизировать код
Как можно оптимизировать код
-
Написал парсер данных. Подскажите как можно было сделать проще? Стрелка должна быть в отдельной переменной.
-
7 мая 2011 г. 2:52, спустя 1 час 21 минуту 49 секунд
нихуя не понял :)С возвращением, Пiха! hyperoff.ru - качественный хостинг php -
-
-
7 мая 2011 г. 4:21, спустя 28 минут 4 секунды
что ты хочешь получить в итоге?
вообще парсинг делается с помощью tidy + simplexmlне всё полезно, что в swap полезло -
7 мая 2011 г. 8:08, спустя 3 часа 47 минут 30 секунд
(?>(\d+)<|(\d+)\s(.*)<)
Если 1 вариант, то $a[1] !== ""
Если 2 вариант, то $a[1] == ""
Что непонятно?
Мне нужно спарсить информацию, если запустить скрипт, все видно будет.
Как с помощью tidy + simplexml спарсить <td>40 ↑</td>
число и ↑ в разные переменные
Пожалуйста, авторизуйтесь, чтобы написать комментарий!