X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Нужны советы по поводу оптимизации функции вырезания заданной подстроки
plamar
plamar
Topic Starter сообщение 28.2.2010, 15:54; Ответить: plamar
Сообщение #1


Бывалый
****

Группа: User
Сообщений: 264
Регистрация: 4.11.2008
Поблагодарили: 21 раз
Репутация:   8  


Задача вырезать с отпарсенной страницы все теги ссылок. Написал следующую функцию:

/////////////////////    удаляем сcылки
$contentBlock=KAstr_ALL_replace($contentBlock,"<a",">","");
$contentBlock=str_ireplace("</a>","",$contentBlock);

//Замета всех участкок строки $string, начинающихся подстрокой $begin и заканчивающегося подстрокой $end. Вместо этих участков вставляется $replacement
function KAstr_ALL_replace($string, $begin, $end, $replacement)
{
     $posopen=0;
     while(1)
     {
          $posopen = stripos($string,$begin,$posopen);
         if($posopen===false)return $string;//!!!!!!

         $posclose = stripos($string,$end,$posopen+strlen($begin));
         if($posclose===false)return $string; //!!!!!!!

         $length = $posclose-$posopen+strlen($end);

         $string=substr($string,0,$posopen).substr($string,$posclose+strlen($end),strlen($string)-($posclose+strlen($end)));
    }
}


Проблема в том, что например для данной страницы http://ru.wikipedia.org/wiki/%D0%92%D0%B8%...%B4%D0%B8%D1%8F - функция выполняется около 40 секунд. Можно ли это дело как нибудь ускорить?


--------------------
EA-WS.com - API для автоперевода. 0,02$ за 1000 знаков.
Datacol - универсальный парсер контента, 64+ готовых парсера от 459 руб/мес.!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
molfar
molfar
сообщение 28.2.2010, 16:05; Ответить: molfar
Сообщение #2


Новичок
*

Группа: User
Сообщений: 39
Регистрация: 26.2.2010
Поблагодарили: 9 раз
Репутация:   2  


может здесь лучше подойдет стандартная функция strip_tags() ?)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
life
life
сообщение 28.2.2010, 16:06; Ответить: life
Сообщение #3


Завсегдатай
*****

Группа: Active User
Сообщений: 921
Регистрация: 28.1.2009
Поблагодарили: 147 раз
Репутация:   -4  


function all_replace($pattern, $replacement, $allcode) {
$fincode = preg_replace('/$pattern/i',$replacement,$allcode);
return $fincode;
}


/////////////////////    удаляем сcылки
$contentBlock=all_replace("<a(.*?)>","",$contentBlock);
$contentBlock=all_replace("<\/a>","",$contentBlock);


так не проще?

Сообщение отредактировал life - 28.2.2010, 16:17
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seotouch
seotouch
сообщение 28.2.2010, 16:09; Ответить: seotouch
Сообщение #4


Прощайте!
*****

Группа: Active User
Сообщений: 998
Регистрация: 7.1.2009
Поблагодарили: 405 раз
Репутация:   45  


(life @ 28.2.2010, 15:06) *
preg_replace('/<a(.*?)>/i','',$contentBlock);
preg_replace('/<\/a>/i','',$contentBlock);
так не проще?

$contentBLock =preg_replace('/<a.+?<\/a>/is', '', $contentBlock);


--------------------
Навсегда ушел
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
life
life
сообщение 28.2.2010, 16:16; Ответить: life
Сообщение #5


Завсегдатай
*****

Группа: Active User
Сообщений: 921
Регистрация: 28.1.2009
Поблагодарили: 147 раз
Репутация:   -4  


(seotouch @ 28.2.2010, 15:09) *
$contentBLock =preg_replace('/<a.+?<\/a>/is', '', $contentBlock);

я в регулярках не силен

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужны копирайтеры на медицинские темы, в день по 10-20к по 40р за 1к
Подробное ТЗ для каждой статьи
0 Black_Mag 203 Вчера, 12:51
автор: Black_Mag
Открытая тема (нет новых ответов) Ищу исполнителя, нужны статичные банеры
1 wagan 305 21.5.2018, 17:00
автор: 0pium
Открытая тема (нет новых ответов) Вопрос по поводу цен на сайте
16 WildWeb8 934 13.5.2018, 17:40
автор: genjnat
Горячая тема (нет новых ответов) Веду набор в команду. Нужны специалисты.
29 SequelONE 1524 6.5.2018, 20:35
автор: rokot
Открытая тема (нет новых ответов) Что работает в текстах и оптимизации на 2018 год
seoandme.ru - SEO-блог Анны Ященко
12 AnnaYa 2065 2.5.2018, 20:31
автор: jedai


 



RSS Текстовая версия Сейчас: 23.5.2018, 4:11
Дизайн