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

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

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

 

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

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

тема: Таблицу загнать в массив
 
 автор: Port_Artur   (30.08.2012 в 23:11)   письмо автору
 
 

Помогите пожалуйста загнать таблицу с http://www.bank.gov.ua/control/uk/curmetal/detail/currency?period=daily в массив. Знаю, что нужно сначала загрузить страницу, а потом регулярным выражением выбрать значения через preg_match_all, но вот реализовывать к сожалению не умею.Помогите пожалуйста.

  Ответить  
 
 автор: Port_Artur   (30.08.2012 в 23:38)   письмо автору
 
   для: Port_Artur   (30.08.2012 в 23:11)
 

Страницу занёс в переменную, а что дальше?

<?php
$content 
get_content();

    

 function 
get_content()
  {

    
// Формируем ссылку
    
$link "http://www.bank.gov.ua/control/uk/curmetal/detail/currency?period=daily";
    
// Загружаем HTML-страницу
    
$fd fopen($link"r");
    
$text="";
    if (!
$fd) echo "Запрашиваемая страница не найдена";
    else
    {
      
// Чтение содержимого файла в переменную $text
      
while (!feof ($fd)) $text .= fgets($fd4096);
    }
    
// Закрыть открытый файловый дескриптор
    
fclose ($fd);
    return 
$text;
  }



?>

  Ответить  
 
 автор: Deed   (31.08.2012 в 08:05)   письмо автору
 
   для: Port_Artur   (30.08.2012 в 23:38)
 


<?php
$file
=file_get_contents("http://www.bank.gov.ua/control/uk/curmetal/detail/currency?period=daily");

preg_match(" /(курс яких змінюється.+<\/table>).+<\/table>/us",$file,$out);


preg_match_all("/<tr>.+?<\/tr>/us",$out[0],$out1);


$count=count($out1[0]);

for(
$i=1;$i<$count;$i++){
    
    echo 
$out1[0][$i]."<br>------<br>";
}

?>


То есть, то, что вам нужно, находится в массиве $out1[0]

  Ответить  
 
 автор: confirm   (31.08.2012 в 09:19)   письмо автору
 
   для: Port_Artur   (30.08.2012 в 23:11)
 

<?
include 'simple_html_dom.php';
$html file_get_html("http://www.bank.gov.ua/control/uk/curmetal/detail/currency?period=daily");
$html $html->find('table',5);
$a = array();
foreach(
$html->find('tr') as $tr) {
   foreach(
$tr->find('td') as $td$a[] = $td->plaintext;
}
$html->clear();
unset(
$html);
echo 
'<pre>';
$a array_chunk($a5);
print_r($a);

Библиотеку simple_html_dom.php качаем отсюда.

  Ответить  
 
 автор: Port_Artur   (31.08.2012 в 20:11)   письмо автору
 
   для: confirm   (31.08.2012 в 09:19)
 

Большое спасибо. Особенно за последний пример.

  Ответить  
Rambler's Top100
вверх

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