DyaDya

DyaDya
Рейтинг
147
Регистрация
11.04.2007

Да, проверил, так и есть,

И похоже вот такую ссылку не словит ваша регулярка, <a href="http://site.ru/dir to file/index.php">
вроде как вытащит только http://site.ru/dir

Нашёл, офигительную регулярку


preg_match_all('#<(a|area)(\s+?[^>]*?\s+?|\s+?)href\s*=\s*(["\'`]*)\s*?([^>\s]+)\s*\3[^>]*?(/>|>(.*?)</\1>|>)#is', $txt, $links, PREG_SET_ORDER);

Сами ссылки как и у вас находит до пробела, но до кучи ещё и сами анкоры все вытаскивает.

И там же тоже работает:

preg_match_all("/<a.*?href=[\"\']?([^ >\"\']+)[\"\']?.*?>(.*?)<\/a>/si",$txt, $links);

Проверил, работает!

bearman:
меня видимо уже игнорируют...

Кто здесь?

p.s. Вас я уже запомнил ;) и записываю в блокнотик:

регурярка для поиска всех ссылок: preg_match_all('#<a[^>]*? href\s*=\s*(\S+?)[>\s]#ism', $txt, $links);

--

А выборка всех ссылок и анкоров до кучи, вот так?

preg_match_all('#<a[^>]*? href\s*=\s*(\S+?)[>](.*)<\/a>#ism', $txt, $links);

Наверное, есть ошипка, поправьте если что.

И похоже вот такую ссылку не словит ваша регулярка, <a href="http://site.ru/dir to file/index.php">

вроде как вытащит только http://site.ru/dir

В дополнение к своему посту:

Т.е. задачу я бы поставил так, найти все ссылки (вытащить url-ы) и анкоры в коде html, т.е. обрабатывать такие вещи:

<a href="url">анкор</a>

<a href='url'>анкор</a>

<a href=url>анкор</a> - url может быть путём с пробелами, но брать тогда нужно то, что до пробела.

<a opthref=ggg href=url target=blank>анкор</a> - т.е. наличие других параметров не должно мешать выборке url-ов

А если идти дальше, то тогда выборку вообще стоит разбить на две:

1. Поиск все ссылок с анкорами в валидных <a></a>, где параметр href указан в кавычках.

2. Поиск все ссылок без кавычек и помечать их как невалидные!

А дальше, кому нужно пущай с двумя массивами работает и делает то, что требуется. Можно и url и анкоры анализировать и т.п. Достаточно универсальная была бы регулярка или даже две. Пусть две регулярки, но главное, чтобы были попроще ;)

Отдельная выборка невалидных ссылок позволит потом пропарсить сайт и исправить их. Всё-таки нужно стремиться к правильному коду HTML.

Нашёл, что-то интересное (http://forum.php.su/topic.php?forum=4&topic=112):


<?PHP
// $body - строка из которой нужно выдирнуть ссылки
// $link[relative] относительные ссылки
// $link[absolute] абсолютные ссылки
preg_match_all('#<\s*?(a)(.|\n)*?(href)=(\'|\")(.|\n)*?<\/(a)>#i', $body, $links);
for ($i=0; $i<count($links[0]); $i++){
if(!preg_match('/<\s*?(a)(.|\n)*?(href)=(\'|\")(http)/i', $links[0][$i])) {$link[relative][]=$links[0][$i];}else{$link[absolute][]=$links[0][$i];}
}
?>

В общем, самое оптимальное решение всё-таки - это:

Регулярка на поиск ВСЕХ ссылок.

- Универсально и просто. Можно потом при желании и все внешние ссылки найти, и все внутренние, и все ссылки на определённый сайт - не переписывая регулярок!

- Плюс ошибок будет меньше, так как выглядит гораздо проще. А кстати, где она? ;)

Мысли вслух, вспоминая себя ) : Мда, очередной новичёк попал "под пресс".

ТС, ой, desae, интерфейс форума русифицированный, если вы ещё не заметили.

И если что-то вдруг непонятно, то не спешите задавать сразу же вопрос, сначала почитайте правила, с которыми вы должны были познакомиться в момент регистрации.

_Ad:
главное не регистрировать домены, похожие на существующие крупные проекты по написанию и все будет нормально.

Фраза "похожие домены", как у нас модно говорить сегодня, очень коррупциёмкая! ;)

DyaDya добавил 24.07.2009 в 08:29

_Ad:
Пост 225 спасёт вас от бессоницы..

224, если быть поточнее ;), 225, наоборот, усугубит положение)).

Если честно, то нифига не понимаю... Если домен раньше ТЗ зареген, то какие проблемы-то?

А если я в суде докажу, что они ТЗ зарегили именно потому что у меня был крутой домен и они хотят его отобрать?!

Ох как хотелось бы судебное решение, основания увидеть! ТС, огласите вердикт.

Выходит любой может зарегить ТЗ, например, на домен Лебедева, Михеева и т. д. ;). А потом прийти и сказать, домен отдайте или нефиг использовать. Мол у меня ТЗ.

Пора начинать на форуме юристов тусить, может что прояснится.

Wild.wind:
А кто-нибудь обратил внимание на то что ТС пошел вызывать милицию вчера в 17:24. И больше не писал. А тут стоко нафлудили.

Будем верить, что всё нормульно. Он и до этого далеко не каждый 5 минут заходил в тему. Решит проблемы и отпишется. Ждём-с. Главное, чтобы до крайностей не дошло в пылу и жару.

Алена69:
меры в таком случае могут быть только одни: не заниматься устранением алкаша

Очень сложный вопрос. Иногда не знаешь, кто виноват. Алкаш или система, которая такими делает. Каждого человека нужно спасать, но не каждый в состоянии это сделать.

Нужно улучшать и улучшать взаимоотношения. Править законы. Менять отношение людей друг к другу. Взаимоуважения бы побольше, участия, и всё будет хорошо. Запойных будет гораздо меньше. А это... работы ещё на десяток лет вперёд!

Вариант одын:

Если вы можете обеспечить себя и её, то в чём проблема? Заработали, сняли хату. Свалили. При этом на время сваливания суток на 15 отчима можно запросто в ментовку сбагрить и есть за что!

То что его поймать не могут (по вашим словам), это чушь). Будет желание, поймают. В квартире стены то есть? Выход вроде один же! На окна можно решётки повесить заблаговременно.

В конце, концов, менты знают, что он такой. Да и вас, небось, они уже хорошо знают. Можно договориться по нормульному, чтобы аккуратно заявились, а не с сиреной ;)

Вариант два:

Да, можно лечить. Есть реальные результаты. Но большой процент возврата к алкоголизму. Всё равно не устоит. Соблазнов много, друзья - пьют, соседи -пьют и т.п. Это даже хуже, чем бросать курить. И требует очень многих усилий и постоянного контроля. После кодировки, как правило люди не менее нервные и бешенные. Иногда не знаешь, что лучше, когда пьёт или когда закодирован ;(.

Вариант тры:

Наезд, угрозы, серьёзный разговор с пацанами плюс сюда же обработка в милиции (в хорошем смысле, они это умеют делать, психологи что надо). Ну и плавный переход к варианту два.

p.s. Всё начинается с нашей любимой армии. У меня 50-60% друзей из служивших в армии, очень любят выпить! и не по поллитра. А одного друга я потерял (пока он жив к счастью, и у него один ребёнок. Хочет второго. Потерял именно как друга. Помочь ничем не смогли. Но он бухает вместе с женой, потому ни его ни её это не парит и их устраивает. Ещё и работает пока, в охране причём). Так вот его я трезвым ниразу не видел после его возвращения из армии. А уже с десяток лет прошло, однако! Знаю, что те кто бухают по чёрному (практически каждый день), доживают лет до 40-45. Помирают от цирроза печени или отравления палёнкой. Т.е. организма на бухалово хватает лет на 20. Не знаю, к чему это я?! Просто, делюсь реальными фактами.

Lenin123:
Поворовали контент и разместили на 200 (!!!) сайтах. Я когда проверил я просто охренел.

Интересно, а этим "проворовавшимся" сайтам ничего не было? ;)

Похоже, ваш проворовался больше, раз оказался крайним в этой куче.

DyaDya добавил 23.07.2009 в 10:45

burunduk:
нет такого фильтра!

должен согласиться ;).

Похоже, что слишком много сайтов под подобным фильтром. И как быть, когда один сайт последний, а другой - предпоследний!

Возможно, фильтр можно переименовать в более правдоподобный, например, "Ты вор!" или "Сопли" (чем не по-гугловски).

Даже сам Платон, пишет: "... развивайте сайт...".

Между строк нужно читать так: "Ваш сайт на данный момент не несёт полезной информации и только захламляет нашу базу, радуйтесь, что он ещё не в бане!"

Всего: 2917