PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: 1 = 1.jpg
Поиск в теме | Версия для печати
Staxxx
Отправлено: 11 Мая, 2015 - 14:43:24
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2015
Помог: 0 раз(а)
Добрый день, я создал парсер на php, а так же страницу для выдачи, тоже на php, теперь передо мной стоит задача связать 2 кода в 1.
Код парсера: (со страницы лотерее нужно вытащить результаты выйгрышей) + вывожу текущее время
PHP:
скопировать код в буфер обмена
<html>
<head><meta http-equiv="Refresh" content="600" />
<title></title>
<script type="text/javascript">
function clock() {
var d = new Date();
var month_num = d.getMonth()
var day = d.getDate();
var hours = d.getHours();
var minutes = d.getMinutes();
var seconds = d.getSeconds();
month=new Array("января", "февраля", "марта", "апреля", "мая", "июня",
"июля", "августа", "сентября", "октября", "ноября", "декабря");
if (day <= 9) day = "0" + day;
if (hours <= 9) hours = "0" + hours;
if (minutes <= 9) minutes = "0" + minutes;
if (seconds <= 9) seconds = "0" + seconds;
date_time = "Сегодня - " + day + " " + month[month_num] + " " + d.getFullYear() +
" г. Текущее время - "+ hours + ":" + minutes + ":" + seconds;
if (document.layers) {
document.layers.doc_time.document.write(date_time);
document.layers.doc_time.document.close();
}
else document.getElementById("doc_time").innerHTML = date_time;
setTimeout("clock()", 1000);
}
</script>
</head>
<body>
<span id="doc_time">
Дата и время
</span>
<script type="text/javascript">
clock();
</script>
<p>
<?PHP
#$homepage = file_get_contents('http://euromillions.com/en/'); file_put_contents('index999.htm',$homepage);
preg_match_all ( '|<(span class="greenball")+>(.*)</(span)+>|U' , $str , $green , PREG_PATTERN_ORDER
) ; preg_match_all ( '|<(span class="redball")+>(.*)</(span)+>|U' , $str , $red , PREG_PATTERN_ORDER
) ; preg_match_all ( '|<(p class="jackpotValueGrey")+>(.*)</(p)+>|U' , $str , $size , PREG_PATTERN_ORDER
) ;
echo "Euromillions Jackpot size is <font color=green><b>" . $size [ 0 ] [ 0 ] . "</b></font>" .
$green [ 0 ] [ 0 ] . ", " . $green [ 0 ] [ 1 ] . ", " . $green [ 0 ] [ 2 ] . ", " . $green [ 0 ] [ 3 ] . ", " . $green [ 0 ] [ 4 ] .
"<font color=red><b>" . $red [ 0 ] [ 0 ] . ", " . $red [ 0 ] [ 1 ] . ". " . "</b></font><br>" ;
?>
</p>
</body>
</html>
так же мною создан сайт для вывода результатов - santeh-spec.ru
Результаты - шары которые выпали в лотерее - обведены в кружки и звездочи, нарисованы картинки(50 штук для кружков, и 11 для звездочек).
код страницы представлен ниже:
PHP:
скопировать код в буфер обмена
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns= "http://www.w3.org/1999/xhtml" >
< head>
< meta http- equiv= "Content-Type" content= "text/html; charset=utf-8" />
< title> Euromillions</ title>
< style type= "text/css" >
<!--
. стиль1 {
font- size: 24px
}
. стиль3 { font- size: 24px; font- weight: bold; }
body {
background- color: #FBFBFB;
background- image: url( images/ fon. jpg) ;
background- repeat: no- repeat;
}
. стиль5 {
font- size: 30px;
font- weight: bold;
}
-->
</ style>
</ head>
< body>
< table width= "1500" border= "0" >
<!-- DWLayoutTable-->
< tr>
< td width= "733" height= "32" >< div align= "center" class = "стиль1" ></ div></ td>
< td colspan= "2" >< div align= "center" ></ div></ td>
< td width= "357" ><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
< tr>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
< td colspan= "2" >< div align= "center" >< span class = "стиль5" > Euromillions</ span></ div></ td>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
< tr>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
< td width= "198" >< div align= "right" class = "стиль3" > 20 : 41 </ div></ td>
< td width= "194" >< span class = "стиль3" >: 57</ span></ td>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
< tr>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
< td colspan= "2" >< div align= "center" class = "стиль3" > ВТОРНИК</ div></ td>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
< tr>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
< td colspan= "2" >< div align= "center" >< span class = "стиль3" > 21 Января 2015</ span></ div></ td>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
</ table>
< table width= "1659" border= "0" cellspacing= "15" >
< tr>
< td width= "210" height= "300" >< p>& nbsp;</ p></ td>
< td width= "266" >< img src= "resultsR/1.jpg" alt= "" width= "266" height= "287" align= "right" longdesc= "http://santeh-spec.ru/resultsR/1.jpg" /></ td>
< td width= "266" >< div align= "center" >< img src= "resultsR/1.jpg" alt= "" width= "266" height= "287" longdesc= "http://santeh-spec.ru/resultsR/1.jpg" /></ div></ td>
< td width= "266" >< div align= "center" >< img src= "resultsR/1.jpg" alt= "" width= "266" height= "287" longdesc= "http://santeh-spec.ru/resultsR/1.jpg" /></ div></ td>
< td width= "266" >< div align= "center" >< img src= "resultsR/1.jpg" alt= "" width= "266" height= "287" longdesc= "http://santeh-spec.ru/resultsR/1.jpg" /></ div> </ td>
< td width= "268" >< img src= "resultsR/1.jpg" alt= "" width= "266" height= "287" longdesc= "http://santeh-spec.ru/resultsR/1.jpg" /></ td>
</ tr>
</ table>
< table width= "1877" border= "0" cellspacing= "5" >
< tr>
< td width= "558" height= "327" >& nbsp;</ td>
< td width= "368" >< div align= "center" >< img src= "resultsR/2.jpg" width= "368" height= "387" longdesc= "http://santeh-spec.ru/resultsR/2.jpg" /></ div></ td>
< td width= "379" >< div align= "center" >< img src= "resultsR/2.jpg" alt= "" width= "368" height= "387" longdesc= "http://santeh-spec.ru/resultsR/2.jpg" /></ div></ td>
< td width= "539" >& nbsp;</ td>
</ tr>
</ table>
< table width= "1622" border= "0" ><!-- DWLayoutTable-->
< tr>
< td width= "758" height= "46" rowspan= "2" >< div align= "center" class = "стиль1" ></ div></ td>
< td width= "328" >< div align= "center" class = "стиль3" ></ div></ td>
< td width= "522" rowspan= "2" ><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
< tr>
< td>< div align= "center" class = "стиль3" > Результат тиража:</ div></ td>
</ tr>
< tr>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
< td>< div align= "center" >< span class = "стиль3" > ВТОРНИК</ span></ div></ td>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
< tr>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
< td>< div align= "center" >< span class = "стиль3" > 21 Января 2015</ span></ div></ td>
< td><!-- DWLayoutEmptyCell-->& nbsp;</ td>
</ tr>
</ table>
</ body>
</ html>
теперь главный вопрос для знатоков:
как мне привязать значения которые выдает парсер (они хранятся в массивах, соответственно кружки в одном звездочки в другом) к моим изображениям, залитым на сайт, что бы когда я получал выдачу с парсера у меня картинки менялись соответственно - 1 = 1.jpg, 22 = 22.jpg и т.д.
остальное все сделано, пока разрабатываю функцию со временем автоматического парсинга (пока работает только 1 раз при загрузке страницы), каждый четный час страница будет парсить сайт евромилионс, и выводить результаты на мой сайт.
буду рад любой помощи, а так же готовые коды выложу на ваш форум!(Отредактировано автором: 11 Мая, 2015 - 14:46:07)
Bio man
Отправлено: 11 Мая, 2015 - 23:12:45
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010
Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Ну как то так:
CODE (
htmlphp ):
скопировать код в буфер обмена
<? php foreach ( $redBalls as $redBall ) : ?>
< td width= "266" >
< div align= "center" >
< img src= "resultsR/<?= $redBall ?> .jpg" alt="" width="266" height="287" longdesc="http://santeh-spec.ru/resultsR/<?= $redBall ?> .jpg" />
</ div>
</ td>
<? php endforeach ?>
Главное передать шаблону нужные переменные ($redBalls итд).(Отредактировано автором: 11 Мая, 2015 - 23:13:18)
Staxxx
Отправлено: 06 Июня, 2015 - 14:49:21
Новичок
Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2015
Помог: 0 раз(а)
Все оказалось намного проще, чем я думал. В общем, использовав свойства
интерполяция , можно передавать значения, полученные с другой страницы.
$str = file_get_contents('http://euromillions.com/en/');
так как парсить HTML регулярками неблагодарное дело,
решить эту задачу можно предусмотрев множество вариантов, или только один
# 1: более общий вариант, на тот случай, если разметка может поменяться, но не учитывает другие атрибуты у тега <span>
# 2: частный вариант — предполагается, что никаких пробелов и других атрибутов быть не может. Только
Результат сохраняется в массив $green,
нулевой индекс которого содержит массивы со всеми совпадшими строками ,
// а первый индекс — массив с подстроками (то, что в круглых скобках внутри регулярняго выражения) $green[1][0] == ' 7'.
ещё можно проверить, получилось ли у нас распарсить HTML
# Далее в HTML-шаблоне можно вывести все картинки циклом
# функция trim() убирает пробелы слева и справа
это эквивалентно поочерёдному выводу картинок вручную
PHP:
скопировать код в буфер обмена
<img src="images/
<?PHP echo trim ( $green [ 1 ] [ 0 ] ) ?> .jpg" />
<img src="images/
<?PHP echo trim ( $green [ 1 ] [ 1 ] ) ?> .jpg" />
<img src="images/
<?PHP echo trim ( $green [ 1 ] [ 2 ] ) ?> .jpg" />
<img src="images/
<?PHP echo trim ( $green [ 1 ] [ 3 ] ) ?> .jpg" />
<img src="images/
<?PHP echo trim ( $green [ 1 ] [ 4 ] ) ?> .jpg" />
вот такие пироги.
(Добавление)
Если Вам будет нетрудно помогите на php написать мне функцию автоматического обновления страницы, например, что бы страница обновлялась раз в 1 час. Спасибо!(Отредактировано автором: 06 Июня, 2015 - 14:50:53)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB