программная проверка того, что удаленные сайты «показывают» определенный элемент HTML - PullRequest
1 голос
/ 12 июля 2011

Я хочу, чтобы мои бесплатные пользователи добавили ссылку на мой сайт. Но я хочу проверить это программно, чтобы они действительно добавили HTML-элемент linkback, который я предоставил, и не были скрыты каким-либо CSS и Javascript.

Какие-нибудь хорошие предложения?

Ответы [ 2 ]

0 голосов
/ 12 июля 2011
$my_link = '<a href="http://www.myamazingsite.com/" title="Magic Stuff">Total Amazing Magic Tricks</a>';
$remote_html = file_get_contents('http://www.remotesite.com/some-amazing-page.php');
if(strpos($remote_html, $my_link) === false){
    // link was not found
}

Вы не сможете легко определить, скрыта ли ссылка CSS или JS, если у вас недостаточно вычислительной мощности и знаний в области программирования для настройки симуляции.

0 голосов
/ 12 июля 2011

Не эксперт в этом вопросе, но я бы сказал, что самый простой и надежный метод заключается в том, чтобы фактически отобразить их страницу в браузере, чтобы гарантировать, что все CSS и JavaScript применяются так же, как и пользователь.

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

Это может быть осложнено междоменными проблемами безопасности (доступ к содержимому IFrame), но прокси на вашем сервере может легко обойти это.

Без использования браузера и JavaScript я могу себе представить, что было бы огромной задачей проанализировать их серверную часть HTML, CSS и JavaScript и найти любой намек на то, что ваша ссылка не видна - так как существует множество способов, которыми она могла бы быть скрытым (даже случайно).

...