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

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

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

 

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

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

тема: Помогите с шаблоном, чтото он не то делает...
 
 автор: namo   (10.09.2006 в 14:51)   письмо автору
 
 

Дело такое, в переменной имеется ХТМЛ, задача сделать работающими ссылки с линками на русские файлы, вот как я попытался её решить:


<?
preg_match_all
("/ href=\"(.*)\" /"$text$url_arr );

print_r($url_arr);
?>

но при выводе он почемуто захватывает ещё и target="blank" и прочую муру в ссылке, вот как это выглядит:
Array
(
[0] => Array
(
[0] => href="/upload/ya.gif.gif">Test</a></b></li>
[1] => href="/upload/doosrmarket.jpg.jpg">Test2</a></strong></li>
[2] => href="/upload/parfum.jpg.jpg" target="_blank">Test3</a></strong></li>
[3] => href="/upload/shop.jpg.jpg" target="_blank">Test4</a></strong></li>
[4] => href="/upload/shop.jpg.jpg" target="_blank">20.12.1986 Прайс</a></strong></li></ul>
)

[1] => Array
(
[0] => /upload/ya.gif.gif
[1] => /upload/doosrmarket.jpg.jpg
[2] => /upload/parfum.jpg.jpg" target="_blank
[3] => /upload/shop.jpg.jpg" target="_blank
[4] => /upload/shop.jpg.jpg" target="_blank
)
)
Что можно сделать чтобы он цеплял только ссылки ???

   
 
 автор: cheops   (10.09.2006 в 14:58)   письмо автору
 
   для: namo   (10.09.2006 в 14:51)
 

Когда используете последовательность .* всегд инвертируйте "жадность" иначе регулярное выражение будет захватывать как можно большее соответствие. Используйте либо модификатор U
<? 
  preg_match_all
("/ href=\"(.*)\" /U"$text$url_arr ); 
  
print_r($url_arr); 
?>

либо последовательность .*?
<? 
  preg_match_all
("/ href=\"(.*?)\" /"$text$url_arr ); 
  
print_r($url_arr); 
?>

   
 
 автор: namo   (11.09.2006 в 20:23)   письмо автору
 
   для: cheops   (10.09.2006 в 14:58)
 

спасибо за помощь, буду знать :)

   
Rambler's Top100
вверх

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