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

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

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

 

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

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

тема: Определить размеры картинки
 
 автор: Я   (16.08.2006 в 08:42)   письмо автору
 
 

Доброго времени суток!

У меня тут возникла небольшая проблема: нужно вытащить из сайта все картинки и найти их размеры, но как это сделать при помощи рег.выражений - я не знаю, потому что картинки на сайтах обычно не имеют абсолютных путей, т.е. вместо src=http://www.mysite.ru/images/banner.gif везде прописано src=images/banner.gif или (что еще хуже!) src=../images/banner.gif, поэтому применить стандартную функцию getimagesize() невозможно.

Если кто-то знает как решить эту проблему - помогите мне, пожалуйста! Буду очень благодарен!

   
 
 автор: Axxil   (16.08.2006 в 09:46)   письмо автору
 
   для: Я   (16.08.2006 в 08:42)
 

Вариант неуниверсальный, но может подойти.
Регулярное выражение нужно дорабатывать для каждого конкретного сайта

<?
$str 
file_get_contents($filename);
$pattern '|src=([^ ]*) |is';
preg_match_all($pattern,$str,$out); 
// В массиве $out[1] хранятся все пути к картинкам
// Далее для каждого элемента этого массива
foreach($out[1] as $url){
  
$url str_replace('../','',$url);
  
$url'http://www.mysite.com/'.$url;
  
getImageSize($url); // ваша функция определения размера изображения.
}
?>


PS вот здесь мы узнавали как-то размер удалённого файла.
Может пригодиться
http://www.softtime.ru/forum/read.php?id_forum=7&id_theme=14763&page=1

   
 
 автор: Trianon   (16.08.2006 в 09:48)   письмо автору
 
   для: Axxil   (16.08.2006 в 09:46)
 

подход поражает своей незатейливостью :)

 $url = str_replace('../','',$url);

   
 
 автор: Axxil   (16.08.2006 в 09:56)   письмо автору
 
   для: Trianon   (16.08.2006 в 09:48)
 

Я вообще сначала explode хотел использовать.
Но потом подумал что это будет уж слишком незатейливо :)))

   
 
 автор: Axxil   (16.08.2006 в 09:54)   письмо автору
 
   для: Axxil   (16.08.2006 в 09:46)
 

Вариант для src вида src="path/to/image"

$pattern = '|src="([^"]*)"|is';

   
 
 автор: Я   (16.08.2006 в 10:18)   письмо автору
 
   для: Axxil   (16.08.2006 в 09:54)
 

Большое всем спасибо! Вы мне оооооочень помогли!

   
Rambler's Top100
вверх

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