Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите подправить код который выдирает с яндекса...
 
 автор: ССС   (28.03.2006 в 19:20)
 
 

Короче написал код который выдирает с яндекса Курсы Валют...
Вот код :
<? Error_Reporting(E_ALL & ~E_NOTICE);


$page=file("http://www.yandex.ru/");
$page_n=array(); $uss=0;
for($i=0; $i<count($page); $i++)
{
if($uss==0){
if($page[$i]=="<!-- Котировки -->\n"){
$page_n[]=$page[$i];
$uss=1;
}
}
if($uss==1){
$page_n[]=$page[$i];
if($page[$i]=="<!-- /Котировки -->\n") $uss=2;
}
}

echo "Всего Строк : ".count($page_n)."<br>";
for($m=0; $m<count($page_n); $k++){
echo $page_n[$k];
}

echo "А Вот И Эти Строки : <br>";
$page_n=htmlspecialchars($page_n);

for($m=0; $m<count($page_n); $k++){
echo $page_n[$k]."<br>";
}
?>

Тока он че та долго работает ! Помогите подправить его!!! Или предложите свой вариант !

   
 
 автор: Sergey89   (28.03.2006 в 19:28)   письмо автору
 
   для: ССС   (28.03.2006 в 19:20)
 


<?php
    $xml_array 
= @file(MAIN_PATH."/valute.xml");
    if (
date("H") > trim($xml_array[0]) || date("H") < trim($xml_array[0])) {
        
$xml_text file_get_contents("http://www.cbr.ru/scripts/XML_daily.asp");
        
$f fopen(MAIN_PATH."/valute.xml""w+");
        if (
$f) {
            
fputs($fdate("H")."\r\n");
            
fputs($f$xml_text);
        }
    } else {
        
$f fopen(MAIN_PATH."/valute.xml""r");
        if (
$f$xml_text fread($ffilesize(MAIN_PATH."/valute.xml"));
    }
    
    function 
getValute($id$xml) {
        
preg_match("/<Valute ID=\"".$id."\">(.*)<\/Valute>/Usi"$xml$xml_items);
        
preg_match("/<Value>(.*)<\/Value>/i"$xml_items[1], $valute);
        return 
$valute[1];    
    }
    
    function 
getNominal($id,  $xml) {
        
preg_match("/<Valute ID=\"".$id."\">(.*)<\/Valute>/Usi"$xml$xml_items);
        
preg_match("/<Nominal>(.*)<\/Nominal>/i"$xml_items[1], $nominal);    
        return 
$nominal[1];
    }
    
    print 
"\t<table>\n";
    print 
"\t<tr><td title=\"Доллар США\">USD:</td><td><strong>".getValute("R01235"$xml_text)."/".getNominal("R01235"$xml_text)."</strong></td></tr>\n";
    print 
"\t<tr><td title=\"Евро\">EUR:</td><td><strong>".getValute("R01239"$xml_text)."/".getNominal("R01239"$xml_text)."</strong></td></tr>\n";
    print 
"\t<tr><td title=\"Английский фунт стерлингов\">GBR:</td><td><strong>".getValute("R01035"$xml_text)."/".getNominal("R01035"$xml_text)."</strong></td></tr>\n";
    print 
"\t<tr><td title=\"Швейцарский франк\">CHF:</td><td><strong>".getValute("R01775"$xml_text)."/".getNominal("R01775"$xml_text)."</strong></td></tr>\n";
    print 
"\t<tr><td title=\"Украинский гривен\">UAH:</td><td><strong>".getValute("R01720"$xml_text)."/".getNominal("R01720"$xml_text)."</strong></td></tr>\n";
    print 
"\t<tr><td title=\"Белорусский рубль\">BYR:</td><td><strong>".getValute("R01090"$xml_text)."/".getNominal("R01090"$xml_text)."</strong></td></tr>\n";
    print 
"\t</table>\n";
?>

Если нужно, то вот я такой писал скрипт. С ЦРБ берёт курсы.

   
 
 автор: CCC   (28.03.2006 в 19:36)
 
   для: Sergey89   (28.03.2006 в 19:28)
 

Мне бы свой подправить!!! но всер на спасибо!

   
 
 автор: cheops   (28.03.2006 в 22:29)   письмо автору
 
   для: ССС   (28.03.2006 в 19:20)
 

Попробуйте переориентировать скрипт с функции file() на file_get_contents() - она должна быстрее работать.

   
 
 автор: ССС   (29.03.2006 в 07:26)
 
   для: cheops   (28.03.2006 в 22:29)
 

Короче теперь Такая Проблема : функция поиска не находит!!! короче вот :

<? Error_Reporting(E_ALL & ~E_NOTICE);
$page=file_get_contents("http://www.yandex.ru/index.html");
$y=htmlspecialchars($page);
echo 
$y;
echo 
"<br><br><hr width=100%><br>";
$res preg_match_all("/<!-- Котировки -->(.*)<!-- \/Котировки -->/",  $page$got);

foreach(
$got as $i=>$t)
{
echo 
"$i --- $t[0] <br>";
}
echo 
"Найдено : ".$res;
?>

   
 
 автор: XPraptor   (29.03.2006 в 11:29)   письмо автору
 
   для: ССС   (29.03.2006 в 07:26)
 

По моему и в ЦРБ и у других банков курсы в rss есть. Зачем издеваться над тестом то?

   
 
 автор: cheops (из кафе)   (29.03.2006 в 13:29)
 
   для: ССС   (29.03.2006 в 07:26)
 

Действитель, с сайта центробанка извлечь курсы валют много проще и они более точные.

   
 
 автор: ZooM (ССС)   (29.03.2006 в 13:55)   письмо автору
 
   для: cheops (из кафе)   (29.03.2006 в 13:29)
 

да я просто так привел в пример курсы валют!
этим самым я хотел показать как можно выдрать нужную нам инфу!!!
Помогите исправить код!

   
 
 автор: @ndry   (16.05.2006 в 16:38)   письмо автору
 
   для: ZooM (ССС)   (29.03.2006 в 13:55)
 


<? 
Error_Reporting
(E_ALL & ~E_NOTICE); 
$page=file_get_contents("http://www.yandex.ru/index.html"); 
$y=htmlspecialchars($page); 
echo 
$y

echo 
"<br><br><hr width=100%><br>"
$res preg_match_all("|<!-- Котировки -->(.*)<!-- /Котировки -->|isU",  $page$got); 

foreach(
$got as $i=>$t

   echo 
"$i --- $t[0] <br>"

echo 
"Найдено : ".$res
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования