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

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

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

 

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

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

тема: Как "вытащить" значение из img
 
 автор: Tema   (10.06.2006 в 15:25)   письмо автору
 
 

Есть <img src="http://servername.ru/way/to/img/00000123/1.jpg" width="12" height="12" alt="Альт">
как достать "00000123"? Число разное, но в нем всегда 8 разрядов. Путь к файлу произвольный.
Подскажите, пожалуйста.

   
 
 автор: WebTech   (10.06.2006 в 20:57)   письмо автору
 
   для: Tema   (10.06.2006 в 15:25)
 


<?php
$tag 
'<img src="http://servername.ru/way/to/img/00000123/1.jpg" width="12" height="12" alt="Альт">';
$cat preg_replace('%<img\s+src="(?:http://)?(?:[a-z0-9\-_]+.)+[a-z]{2,4}/(?:[a-z0-9\-_]/)*([0-9]{8})/(?:.+)"(?:.*)>%i''\\1'$tag);
echo 
$cat;
?>

   
 
 автор: WebTech   (10.06.2006 в 21:15)   письмо автору
 
   для: WebTech   (10.06.2006 в 20:57)
 

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

   
 
 автор: Tema   (11.06.2006 в 09:47)   письмо автору
 
   для: WebTech   (10.06.2006 в 21:15)
 

Отлично! Спасибо.
А если путь будет постоянным, то как без рег.выр? Или вы имеете ввиду для пути?

   
 
 автор: WebTech   (11.06.2006 в 18:43)   письмо автору
 
   для: Tema   (11.06.2006 в 09:47)
 

Если вот эта часть <img src="http://server.name.ru/way/to/ будет всегда постоянной.

   
 
 автор: Tema   (11.06.2006 в 19:19)   письмо автору
 
   для: WebTech   (11.06.2006 в 18:43)
 

Я понял. И если он будет постоянным, то как мне вытащить нужное значение без рег.выражений?

   
 
 автор: WebTech   (11.06.2006 в 20:45)   письмо автору
 
   для: Tema   (11.06.2006 в 19:19)
 

Тогда так.
Надо посчитать, сколько символов в фрагменте строки до 0000123 и затем подставить их в функцию
<?php
$tag 
'<img src="http://servername.ru/way/to/img/00000123/1.jpg" width="12" height="12" alt="Альт">';
echo 
substr($tag428); // в данном случае - 42 символа
?>

Я понимаю, что это очень жестко, но зато будет работать во много раз быстрее регулярного выражения :-) Регулярные выражения потребляют много вычислительных ресурсов, и за счет этого работают медленнее, чем обычные строковые функции.
Что выбрать - вам решать. Я бы выбрал все-таки рег. выражения :-) Этот путь http://servername.ru/way/to/img/ легко изменить и все равно все сработает. К тому же, это выражение легко приспособить, чтобы "выдирать" это восьмизначное значение из всех тегов img в тексте :-)

   
 
 автор: Tema   (12.06.2006 в 19:16)   письмо автору
 
   для: WebTech   (11.06.2006 в 20:45)
 

Понятно. Спасибо :-)

   
Rambler's Top100
вверх

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