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);
?>
Здравствуйте!
у меня есть около сотни 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);
?>
