ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #271  
Старый 03.03.2009, 18:42
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

это я когда в форум вставлял напутал, вообще то там переменная
preg_replace('#<a href="(.*)">(.*)</a>#sU',"$1",$e);
вот так в оригинале.
твой вариант не особо в тему т.к. новое название я должен вытащить из старого. то есть из
<a href="/bitrix/exturl.php?goto=http%3A%2F%2Fwww.opera.com">www.op era.com</a>
должно получиться www.opera.com

Вообще особенно интересует почему мой вариант не работает.
 
Ответить с цитированием

  #272  
Старый 03.03.2009, 18:50
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Дык если просто вытащить надо, то зачем использовать preg_replace() когда есть preg_match() ?

PHP код:

$a 
'<a href="/bitrix/exturl.php?goto=http%3A%2F%2Fwww.opera.com">www.opera.com</a>';
preg_match('#>([^<]*)</a>#s'$a$out);
echo 
$out[1]; 

Цитата:
Сообщение от blaga  
Вообще особенно интересует почему мой вариант не работает.
Потому что не объявлена переменная $1 и путаница с кавычками (как сказано выше)
 
Ответить с цитированием

  #273  
Старый 03.03.2009, 19:30
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

Нужно не просто вытащить а в тексте заменить.
бла бла бла
<a href="/bitrix/exturl.php?goto=http%3A%2F%2Fwww.opera.com">www.op era.com</a>
бла бла бла

из этого нужно что бы получилось.
бла бла бла
www.opera.com
бла бла бла

там же двойные кавычки внутри одинарных. они вроде как не должны интерпретитьроваться.... ?
например
Код:
$reg='#<div class="postblock1">(.*)</div>#sU';
preg_match_all($reg,$res,$result);
прекрасно работает.

Enot, твоя регулярка тоже не цепляет...

Последний раз редактировалось blaga; 03.03.2009 в 19:32..
 
Ответить с цитированием

  #274  
Старый 03.03.2009, 20:03
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

blaga Регулярка правильна, просто надо следить за подмасками. Достаточно убрать скобки внутри href="(.*)" ИЛИ обращаться ко второй подмаске (ака $2 во втором параметре)

PHP код:
echo preg_replace('#<a href=".*">(.*)</a>#sU',"$1",'<a href="/bitrix/exturl.php?goto=http%3A%2F%2Fwww.opera.com">www.opera.com</a>'); 
Или проще:
PHP код:
preg_replace('~<a[^>]*>(.+)</a>~Usi','$1',$in); 
Код:
На входе: <a href="/bitrix/exturl.php?goto=http%3A%2F%2Fwww.opera.com">www.opera.com</a>

На выходе: www.opera.com
.:EnoT:. К слову, переменная - НЕ может начинаться на цифру
 
Ответить с цитированием

  #275  
Старый 03.03.2009, 20:15
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

я щас об стенку убьюсь. ни одна регулярка не схватывает...
короч вот он чертов быдло код.
PHP код:
function get_full_vul($url)
{
$r=file_get_contents($url);
$re='#<div class="cont-cont">(.*)<p><strong>Источники#sU';
preg_match($re,$r,$all);

$e=str_replace('<div class="cont-cont">'," ",$all[0]);
$e=str_replace('<div class="title-line" id="title-vulnerability">'," ",$e);
$e=str_replace('</div>'," ",$e);
$e=str_replace('<div class="postblock3">'," ",$e);
$e=str_replace('<p><strong>Источники'," ",$e);
preg_replace('~<a[^>]*>(.+)</a>~Usi','$1',$e);


echo 
$e;
}

get_full_vul("http://www.securitylab.ru/vulnerability/369396.php"); 
и еще что за модификатор U ? а то у меня в книге про него нету ничего.
 
Ответить с цитированием

  #276  
Старый 03.03.2009, 20:24
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

полный улёт) Скажи толком, просто, что тебе надо, тут дел на 5 минут Лучше дай ссылку на страничку и чо там с ней надо "выцепить/заменить"
 
Ответить с цитированием

  #277  
Старый 03.03.2009, 20:35
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Дык сразу бы код выложил)

PHP код:
preg_replace('~<a[^>]*>(.+)</a>~Usi','$1',$e); 
замени на:

PHP код:
$e preg_replace('#<a href="[^"]*">([^<]*)</a>#si','<a href="http://\\1">\\1</a>',$e); 
И всё будет работать)
 
Ответить с цитированием

  #278  
Старый 03.03.2009, 20:47
Аватар для rushter
rushter
Reservists Of Antichat - Level 6
Регистрация: 23.05.2008
Сообщений: 756
Провел на форуме:
9257858

Репутация: 979


Отправить сообщение для rushter с помощью ICQ
По умолчанию

Цитата:
Сообщение от blaga  
я щас об стенку убьюсь. ни одна регулярка не схватывает...
короч вот он чертов быдло код.
PHP код:
function get_full_vul($url)
{
$r=file_get_contents($url);
$re='#<div class="cont-cont">(.*)<p><strong>Источники#sU';
preg_match($re,$r,$all);

$e=str_replace('<div class="cont-cont">'," ",$all[0]);
$e=str_replace('<div class="title-line" id="title-vulnerability">'," ",$e);
$e=str_replace('</div>'," ",$e);
$e=str_replace('<div class="postblock3">'," ",$e);
$e=str_replace('<p><strong>Источники'," ",$e);
preg_replace('~<a[^>]*>(.+)</a>~Usi','$1',$e);


echo 
$e;
}

get_full_vul("http://www.securitylab.ru/vulnerability/369396.php"); 
и еще что за модификатор U ? а то у меня в книге про него нету ничего.
U - минимизировать числитель, то есть искать как можно меньше совпадений
 
Ответить с цитированием

  #279  
Старый 03.03.2009, 21:11
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

blaga Может лучше так?
PHP код:
 function get_full_vul($url)
{
$r=file_get_contents($url);

$re='#<div class="cont-cont">(.*)<p><strong>Источники#sU';
preg_match($re,$r,$all);
$e=strip_tags($all[1],'<p><strong><h1><b><br>');

echo 
$e;
}

get_full_vul("http://www.securitylab.ru/vulnerability/369396.php"); 
Про модификаторы - тут http://ru.php.net/manual/ru/reference.pcre.pattern.modifiers.php
 
Ответить с цитированием

  #280  
Старый 04.03.2009, 06:18
Аватар для blaga
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

.:EnoT:., спасиб, работает как нужно.
Gifts, мне не нужно все эти теги удалять, только некоторые.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Delphi, .NET, Asm 6762 17.06.2010 21:23
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[Lan] Задай вопрос - получи ответ! sedoy_xxx АнтиАдмин 133 31.03.2010 08:35
Всё о беспороводном соединении на кпк и смартфонах! Задай вопрос - получи ответ! ARMENIN Беспроводные технологии/WPAN/WLAN 2 02.11.2008 00:40
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ