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

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

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Регулярное выражение. Url...

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: GeorgeIV   (15.07.2008 в 10:43)   письмо автору
 
   для: AcidTrash   (14.07.2008 в 22:41)
 

А как ты одним реплэйсом заменишь все (неопределенное заранее количество в не определенном месте, судя по вопросу) вхождения http?

   
 
 автор: AcidTrash   (14.07.2008 в 22:57)   письмо автору
 
   для: UnFast   (14.07.2008 в 20:17)
 

>Теперь правильно работает...

Интересно, где же такие ссылки то есть? Начиналось то все как я понимаю с обычного парсинга и разбора html-страниц, где ссылки реальные и как вы потом указали, обязательно должны начинаться с http://.
Первоначальной регулярки от sms-send вполне хватило бы.

P.S. ТЗ надо изначально со всеми аспектами составлять.

   
 
 автор: AcidTrash   (14.07.2008 в 22:52)   письмо автору
 
   для: sms-send   (14.07.2008 в 19:45)
 

-

   
 
 автор: AcidTrash   (14.07.2008 в 22:41)   письмо автору
 
   для: GeorgeIV   (14.07.2008 в 18:58)
 

to GeorgeIV
Вообщето имелось ввиду заменить, а не выбрать, для начала.
sms-send заметил правильно, что для замены существует preg_replace.

   
 
 автор: UnFast   (14.07.2008 в 20:17)   письмо автору
 
   для: sms-send   (14.07.2008 в 19:45)
 

Теперь правильно работает...

Респект тебе sms-send.

   
 
 автор: sms-send   (14.07.2008 в 19:45)   письмо автору
 
   для: UnFast   (14.07.2008 в 19:39)
 

Угловые скобки и так исключены, а эквиваленты то зачем исключать?
Вполне легальная ссылка:

http://site.ru/?var1=123>

UPD:

Хотя и правда, обрабатываем ведь html код...

~http://(?:[,.!@#№*$%()_+/?=\\-;:\\~\\dA-Za-zА-Яа-яЁё]|&(?!lt;|gt;))+~

   
 
 автор: UnFast   (14.07.2008 в 19:39)   письмо автору
 
   для: sms-send   (14.07.2008 в 18:40)
 

Почти то.. Только мне нужно, исключить из замены символ < или > (&gt; &lt;)
и сами символы и их html эквиваленты..

например http://site.ru/>
то меняем на <a href="http://site.ru/">http://site.ru/</a>>

   
 
 автор: sms-send   (14.07.2008 в 19:02)   письмо автору
 
   для: GeorgeIV   (14.07.2008 в 18:58)
 

Эмм.. а чем этот вариант функционально отличается от моего первого варианта, кроме обязательного наличия пробельных символов в конце ссылки?)) Которые, кстати, в эту ссылку попадут. И зачем так вымудряться "через зад", если существует preg_replace ?)

+ строку всё-таки сначала нужно обработать htmlspecialchars, иначе будут проблемы как минимум с символом "&"

   
 
 автор: GeorgeIV   (14.07.2008 в 18:58)   письмо автору
 
   для: sms-send   (14.07.2008 в 18:40)
 

<?php
$var_text 
" text new link1 = http://site.ru ".
"text new link2 = http://php.net ".
"text new link3 = http://softtime.ru/forum/addpost.php?id=2&theme=2 ";
$pattern "/(http:\/\/\S*\s+)/";
$count preg_match_all($pattern$var_text$mucho);
for (
$i=0$i $count$i++)
$var_text =  str_replace($mucho[0][$i], '<a href ="'.$mucho[0][$i].'">'.$mucho[0][$i].'</a>'$var_text);
echo 
$var_text;

?>
Немного через зад, но рабочий день закончился, доделать некогда.

   
 
 автор: sms-send   (14.07.2008 в 18:40)   письмо автору
 
   для: UnFast   (14.07.2008 в 18:26)
 

\\S поменять на [,.!@#№*$%&()_+/?=\\-;:\\~\\dA-Za-zА-Яа-яЁё]

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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