MPavel, однозначно лучшая - спецуха от W3 (По русски здесь), все остальное - вольный пересказ.
Плюс, обязательно прочитать XPath, (по-русски здесь) без него трудно разобраться.
На xmlhack лежит часть бумажной книжки "Технология XSLT", Валиков, но ИМХО там ничего интересного. У меня когда-то была еще другая - вот такая: XSLT - библиотека программиста (Холзнер) - для начала весьма полезно почитать. Правда, подозреваю, что ее хрен достанешь, уже года полтора не попадалась.
Ну, и еще можно почитать архиви пхпклуба:
Преобразование XML + XSLT с помощью Sablotron (морально устарело, но суть передает)
А совсем для начала - стоит почитать статью "Всеобъемлющая история шаблонов" - весьма полезно для общего образования =)
Удачи в изучении сей замечательной технологии +) Если что - обращайтесь +)
Примите и мои поздравления )
Ну, во-первых, стучать "из чувства гражданского долга" - мне лично некогда. Когда натыкаешься на доры - мат и смена поисковой стратегии и без того время отнимают.
Стучать на конкурентов по серпу - стоит ли оно моего времени? "100% попадание" лишь в случае совсем "дурных" нарушений аля скрытый текст - так ведь помилуйте, братцы, 21 век на дворе, так давно уже никто не делает, по крайней мере в серьезных темах!
Совсем другой разговор, когда враг действует по-настоящему масштабно. Ну, т.е. выкатывает, например, сотню доменов-сателлитов, сажает безумных голодных школьников на обмен, и начинает методично оккупировать серпы моей любимой темы. Ну, тут уж, согласитесь, можно и обученного копирайтера нанять, только бы убедил Платона, что конкурент редиска (если это будет дешевле, чем взвинчивать бюджет / создавать свои ресурсы).
Однако надо понимать, что при таких масштабах речь идет не о "моральных нормах", а о стратегии, и всем ясно, что стук - не "подлость", а один из инструментов конкурентной борьбы.
Хочу заметить, что само существование проблемы мне не слишком нравится. В работе Яндекса какую-то неприлично важную роль играет человеческий фактор. Осмысленных телодвижений по улучшению алгоритма уже давно не видно (на мой субъективный взгляд), зато непоты и баны раздают направо и налево. Получается, яндекс некисло зависит от того, будем мы стучать, или нет?
Mitos, я бы сделал так. Коряво, но быстро =)
$text = "Песня про elochka: <p>В лесу родилась elochka, в лесу она росла <img src=\"/elochka.jpg\" alt=\"elochka\"> <br> зимой и летом стройная, веселая <a href=\"http://site.ru/elochka/index.html\">elochka</a> была</p> <p>(Такая вот рагульная песенка про elochka). Как Вам наша elochka?</p>"; function recall($matches) { $repl = str_replace("elochka", "<u>elochcka</u>", $matches[1]); return preg_replace("/".preg_quote($matches[1], '/')."$/", $repl, $matches[0]); } $result = preg_replace("/^<drop>/", '', preg_replace_callback("/<[^>]+>([^<]*)/", 'recall', "<drop>".$text)); echo htmlspecialchars($result);
Т.е. в функцию передается массив из 2х строк -
1) тег+то что за ним (все вхождение)
2) только то что за ним (первая подмаска)
Дальше логика такая:
1) Делаем замену во второй строке (т.е. в тексте без тега), сохраняем в $repl;
2) Поскольку вторая строка точно входит в первую, находим ее внутри первой и заменяем на $repl, не забыв проверить, что вхождение находится в конце (иначе в последовательности <a href="http://site.ru/elochka/index.html">elochcka произошла бы замена и внутри атрибута)
3) Возвращаем результат, коим заменяется полное вхождение
Ну, и хитрость с "<drop>" - добавляем его, чтоб строка гарантированно начиналась с тега (чтоб обработалась часть строки до первого тега), потом, соответственно, удаляем.
Вообще, подозреваю, что можно сделать и в один регексп, но это надо думать +)
Давным-давно я заморачивался составлением соответствий веса картинок денюжки (в байтах) и того, что на ней написано. У этого метода была какая-то засада, какая уже не вспомню =)
Не совсем понял =)
Но обычно, когда одним регекспом разобраться не получается (или лениво) - функция preg_replace_callback() помогает отцу русской демократии =)
lexa2182, ну, с Вас стол =)
Вообще, последнее время все чаще говорят, что Я берет в каталог бесплатно, и это весьма радует... будем ждать, есть кандидаты =)
Лето ж. В нете остались одни айтишники, которым без нета не живется. Ну, они гуглем и ищут (часто из холиварных соображений, но это отдельный разговор). Присоединяюсь к тем, кто высказал эту мысль. ИМХО вполне очевидно.
Devel, скрипт тоже будет. Просто, базы приходят сравнительно маленькими кусками, которые, в любом случае, нужно проглядывать глазками. Ну, и плодить много внешних утилит не хочется - почти весь инструмент для работы с каталогами у меня встроен в брувзер. Короче, особенности архитектуры =) Ну, и вообще, давно хотел такую штуку сделать, чтоб была +)
А ты попробуй =))
Если серьезно - то да, есть такое мнение. Например, знаменитая табличка "Google ranking factors" - см. блок "Outgoing links". Ну и еще много где неоднократно высказывалось.
Топикстартер, а вы вообще уверены, что оно вам надо? Совмещать приятное с полезным - конечно хорошо... но, с другой стороны, неплохо бы хорошо понимать, чем именно вы занимаетесь - продвигаете услуги фирмы, или ссылки торгуете +)