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

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

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

 

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

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

тема: Загрузка и разбор HTML-файла
 
 автор: Tema   (07.05.2006 в 11:33)   письмо автору
 
 

Я копирую страницу в файл:

  $content = file_get_contents("http://www.merlion.ru/print/reviews/review-826/?rss"); 
  $fd = fopen("1.txt","w"); 
  fwrite($fd,$content); 
  fclose($fd); 

А как мне сохранять только вторую по счету таблицу и закачивать картинки(только .jpg), названия картинок состоят из цифр? Пример: http://www.merlion.ru/data/reviews/4032.jpg
Пути к картинкам указаны в этой самой второй таблице.

   
 
 автор: cheops   (07.05.2006 в 12:42)   письмо автору
 
   для: Tema   (07.05.2006 в 11:33)
 

Грузить только одну таблицу не выйдет - небходимо загрузить файл и вырезать из него первую таблицу, после чего разобрать её и загрузить содержимое изображение тем же способом, что вы загружаете XML-файл.

   
 
 автор: Tema   (07.05.2006 в 12:51)   письмо автору
 
   для: cheops   (07.05.2006 в 12:42)
 

Это я понимаю. Вопрос в том как пути найти в тексте, чтобы закачать картинки? И как вырезать именно вторую таблицу?

   
 
 автор: cheops   (07.05.2006 в 12:57)   письмо автору
 
   для: Tema   (07.05.2006 в 12:51)
 

Обычно для этого прибегают к регулярным выражениям, например получить список картинок в этом случае можно следующим образом
<?php 
  $contents 
file_get_contents("http://www.merlion.ru/print/reviews/review-826/?rss");
  
$pattern "|<center><img src=\"([^\"]+)\"[^>]+></center>|is";
  
preg_match_all($pattern$contents$out);
  echo 
"<pre>";
  
print_r($out[1]);
  echo 
"</pre>";
?>

   
 
 автор: Tema   (07.05.2006 в 13:13)   письмо автору
 
   для: cheops   (07.05.2006 в 12:57)
 

А как достать таблицу, какое выражение нужно задать? Я думаю, т.к. она идет второй, то надо искать конец первой, и вырезать все, до </table>.

   
 
 автор: cheops   (07.05.2006 в 22:31)   письмо автору
 
   для: Tema   (07.05.2006 в 13:13)
 

Можно поступить следующим образом
<?php 
  $contents 
file_get_contents("http://www.merlion.ru/print/reviews/review-826/?rss"); 
  
$pattern "|<table[^>]*>.*</table>|isU"
  
preg_match_all($pattern$contents$out); 
  echo 
htmlspecialchars($out[0][1]); 
?>

   
Rambler's Top100
вверх

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