Обработка ссылок с помощью RegExp

winz

Новичок
Обработка ссылок с помощью RegExp

Здравствуйте!

у меня есть около сотни html-страниц с текстом и гиперссылками в нем. Встречаются длинные ссылки вида: "<a target=_blank href="http://atatat.com">много много много слов</a>"

Необходимо с помощью регулярных выражений заменить "<a target=_blank href="http://atatat.com">много много много слов</a>" на "<a target=_blank href="http://atatat.com">первые 8 слов</a> остаток текста из ссылки".

Если можно, предоставьте пожалуйста правильный шаблон для замены.

Т.к., мой скрипт работает неверно:

<?php

function pattern($m) {
return $m[1].((wordcount($m[1])>8)?implode(' ',array_slice(preg_split("/[\s,]+/", $m[2]),0,8)).$m[3].' '.implode(' ',array_slice(preg_split("/[\s,]+/", $m[2]),8)):implode($m));
}

preg_replace_callback("/(<\s*a[^>h]*href\s*=\s*[^>]*>)([^<]*)(<\s*\/\s*a\s*>)/i", "pattern", $data);
?>
 

eXtreme

Новичок
Попробуй:
PHP:
$newhtml = preg_replace('/<a(.*?)href\s*=\s*"(.*?)"(.*?)>(.*?)<\/a>/sie', '"<a$1href=\"$2\"$3>".implode(" ",array_slice(preg_split("/[\s,]+/","$4",-1,PREG_SPLIT_NO_EMPTY),0,8))."</a>"', $html);
З.Ы. Пытался обойтись только регуляркой, но мозгов не хватило :)
 

С.

Продвинутый новичок
Это разве олимпиада какая-то с условием решить задачу одним регулярным выражением? Сделать это в несколько приемов (даже и без регулярных выражений вообще) не судьба?

1. Найти ссылку
2. Локализовать текст ссылки
3. Заменить текст ссылки
 

WP

^_^
А чего ты хочешь? Чтобы накодили за тебя? Запости в раздел Работа. Чтоб отправили читать про регулярки? Думаю ты и сам знаешь где мануал.
 
Сверху