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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

/////////////////////    удаляем с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


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


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


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


(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


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

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

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужны ссылки с adult сайтов
3 TABAK 8136 25.3.2024, 13:44
автор: Wilkinson
Открытая тема (нет новых ответов) Как настроить в WordPress для SEO оптимизации
8 rownong27 2473 2.3.2024, 12:59
автор: toplinks
Открытая тема (нет новых ответов) Нужны блоги livejournal и liveinternet для публикации постов азартной тематики
0 FeNNomen 2356 26.1.2024, 20:07
автор: FeNNomen
Горячая тема (нет новых ответов) Дайте советы по направлениям для заработка
38 Suagaring 4815 16.1.2024, 12:16
автор: Antarez
Открытая тема (нет новых ответов) Нужны тексты на английском языке
драгоценные камни
4 GlazAlmaz 2395 20.8.2023, 4:29
автор: projectadmin


 



RSS Текстовая версия Сейчас: 19.4.2024, 0:30
Дизайн