Официальный сайт студ.городка НГТУ
Программирование и БД » [РНР]Подкиньте идею 

#1  12.01.08 19:31

[РНР]Подкиньте идею

Как отобразить на своей страничке информацию с другой:
например показывать курс доллара или погоду?

Offline

#2  12.01.08 21:29

Re: [РНР]Подкиньте идею

Юзай регулярные выражения.

Offline

#3  12.01.08 22:08

M16
Профиль

Re: [РНР]Подкиньте идею

Код: php:

<?
$addr = "http://www.rbc.ru/index.html";  // адрес страницы
$begblock1 = "USD ЦБ РФ"; $begblock2 = "EUR ЦБ РФ"; // идентификатор начала блока
 
$begin = "<FONT SIZE=\"-2\">"; // фрагмент HTML-кода до полезных данных
$end = "</FONT>"; // фрагмент HTML-кода после полезных данных
 
$result = array();  // массив строк результата
 
$screen = file($addr);
 
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock1) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kursdollar = $temp[0];
 
$i = 0;
while ($i < sizeof($screen) && strpos($screen[$i], $begblock2) == false) {$i++;}
$temp = explode($begin, $screen[$i + 2]);
$temp = explode($end, $temp[1]);
$kurseuro = $temp[0];
 
echo "Доллар - <B>$kursdollar</B><BR>Евро - <B>$kurseuro</B>";
?>


будет работать если у клиента есть доступ к этому сайту (www.rbc.ru)

Исправлено M16 (12.01.08 22:09)

Offline

#4  13.01.08 00:40

Re: [РНР]Подкиньте идею

M16, спасибо,
а я уже хотел использовать eregi

Offline

#5  13.01.08 12:44

Maq
Профиль

Re: [РНР]Подкиньте идею

M16 написал(а):

будет работать если у клиента есть доступ к этому сайту (www.rbc.ru)

если у сервера :)

Offline

#6  13.01.08 20:34

Re: [РНР]Подкиньте идею

M16, ваш код - унылое г-но. Не засоряйте, пожалуйста, мою Вселенную.

Offline

#7  14.01.08 02:46

Re: [РНР]Подкиньте идею

тут ктстати можно немного пофонтазирвать и обновлять не при каждом заходе юзера на сайт (что будет при коде, описанном выше, если 6000 чел в день заходит?)

В коде ниже используется модуль pear mdb2. Код призван только показать логику процесса и не более:)

Код: php:

// пытаемся забрать данные из локальной БД
$query = "select * from ".$db_prefix."currency where time=(select max(time) from ".$db_prefix."currency)";
	$result = $mdb2->query($query);
	$row = $result->fetchRow();
 
	$curr_time = time();
 
 
// не думаю, что имеет смысл обновлять подобную инфу чаще, чем раз в 6 часов если прошлое обновление прошло успешно. Если не прошло, то раз в 10 минут
	if ((($curr_time - $row['time']) > 21600) || (!$row[usd] && ($curr_time - $row['time']) > 600)) {
 
		$currency_cb_url = "http://stock.rbc.ru/demo/cb.0/intraday/index.rus.shtml";
 
		$usd_cb_curr = 0;
		$eur_cb_curr = 0;
 
		$currency_cb_array = preg_replace("/\n/", "", @file_get_contents($currency_cb_url));
 
		if ($currency_cb_array) {
 
			$usd_cb_pattern = "/\<B\>Доллар США\<\/B\>\<\/TD\>\<TD\>([0-9\.]+)\<\/TD\>/";
			$eur_cb_pattern = "/\<B\>ЕВРО\<\/B\>\<\/TD\>\<TD\>([0-9\.]+)\<\/TD\>/";
 
			preg_match ($usd_cb_pattern, $currency_cb_array, $usd_cb_array);
			preg_match ($eur_cb_pattern, $currency_cb_array, $eur_cb_array);
 
			$usd_cb_curr = round($usd_cb_array[1], 2);
			$eur_cb_curr = round($eur_cb_array[1], 2);
 
		}
 
		$query = "insert into ".$db_prefix."currency(time, usd, eur) values($curr_time, $usd_cb_curr, $eur_cb_curr)";
		$result = $mdb2->query($query);
 
	}
	else {
 
		$usd_cb_curr = $row['usd'];
		$eur_cb_curr = $row['eur'];
 
	}


соответственно, если на выходе имеем значения, равные нулю, значит есть некий косяк с коннектом до сайта - источника и можем к примеру не показывать на это время курсы валют.

Offline

#8  14.01.08 02:50

Re: [РНР]Подкиньте идею

ну а также метод выше собирает локальную динамику курсов. Если это не нужно, в таблице убираем автоинкремент и "select * from ".$db_prefix."currency", ну и  "limit 0,1" на всякий случай, а второй запрос меняем с insert на update и туда же пишем последний time

Исправлено Antony (14.01.08 02:51)

Offline

#9  14.01.08 16:14

Re: [РНР]Подкиньте идею

OMG, еще один. Кто-нибудь еще хочет высказаться? Ну смелее, присоединяйтесь к нашему празднику жизни.

Offline

#10  14.01.08 16:43

Re: [РНР]Подкиньте идею

Bred Vilchec, ты Расмус Лердорф ? превед

Offline

#11  14.01.08 17:12

Re: [РНР]Подкиньте идею

iDrum, превед. нет, я круче. У нас тут праздник разумной жизни, вэлкам. Каждый самовыражается и фантазирует.

Не, ребята, так не надо. Зачем пришел доцент и что он спросил? Он спросил

Как отобразить на своей страничке информацию с другой

тут же набежала стайка доброхотов с говнокодом.
Ребята, НЕТ никакого кода. Есть вопрос (см. выше), на который есть простой ответ: нужно обратиться к серверу, получить ответ, выделить из ответа интересующую информацию, отдать клиенту. всё. больше ничего нет.
А, чуть не забыл: воровать - плохо.

Offline

#12  14.01.08 18:12

Re: [РНР]Подкиньте идею

Bred Vilchec, если ты тут такой умный, что ж ты свой код не написал, а то поразвелось тут критиков...

кстати насчёт воровать, вышеприведённый код не был ниоткуда сворован, а был мной написан с нуля. А если ты про сбор данных с другого сайта - ваще-то rbc - это открытый источник

Offline

#13  14.01.08 18:16

Re: [РНР]Подкиньте идею

всем спасибо за помощь
Bred Vilchec, при чем тут воровство?
и

если ты тут такой умный, что ж ты свой код не написал, а то поразвелось тут критиков

Offline

#14  14.01.08 18:40

M16
Профиль

Re: [РНР]Подкиньте идею

Bred Vilchec,  если такой умный иди и работай. кули тут делаешь!

Исправлено M16 (14.01.08 18:42)

Offline

#15  14.01.08 19:22

Re: [РНР]Подкиньте идею

Ой, сколько вас. Все оффтопичные вопросы спрашивайте в киосках вашего города. здесь не про это.

при чем тут воровство?

см. также "кража контента".

что ж ты свой код не написал

код, код... нету никакого кода! КОД. Ему здесь вообще не место.

Offline

#16  14.01.08 23:05

Re: [РНР]Подкиньте идею

Bred Vilchec, у нас недоеп? )

Offline

#17  17.01.08 03:24

Re: [РНР]Подкиньте идею

Bred Vilchec написал(а):

Ребята, НЕТ никакого кода. Есть вопрос (см. выше), на который есть простой ответ: нужно обратиться к серверу, получить ответ, выделить из ответа интересующую информацию, отдать клиенту. всё. больше ничего нет.

а зачем в теме написано "[php]" если всё так просто как ты напсал?

Offline

Программирование и БД » [РНР]Подкиньте идею 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.133 сек.
Выполнено 14 запросов.