Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

PHP и проверка обратных ссылок

420
05 марта 2007 года
Fobos
197 / / 10.03.2006
Здравствуйте.
Пишу скрипт каталога. В общем уже готов, осталось только систему проверки обратных ссылок сделать.
Короче говоря, думаю не особо заморачиватьсч и проверять на наличие в странице партнёра в html коде моего URL.

Типо так:
Код:
<?
  $result=0;
  $file_array = file("$back_url");//читаем страничку с нашим кодом
  if(!$file_array)
  {
    echo("Ошибка открытия страницы");
  }
  else
  {
    for($i=0; $i < count($file_array); $i++)
    {
      $check = count(explode ($our_url, $file_array));
      if ($check>1)
      {
        $result++;
      }
    }
  }
?>

Таким образом, если переменная $result будет больше 0, то значит на странице наш URL присутствует, а если нет то ID сайта в "баню" :)
Интересно, будет ли этот способ работать с динамическими страницами, или только со статикой? И есть ли ещё какие-либо способы (в инете не нашел)?
337
05 марта 2007 года
shine
719 / / 09.06.2006
Кошмар. Зачем так сложно?

 
Код:
$content = file_get_contents($back_url);
$result = substr_count ($content, $our_url);
13
05 марта 2007 года
RussianSpy
3.0K / / 04.07.2006
Не все так просто ребятки
Нужно проверять стоит ли ссылка в теге <A></A>
А то можно тупо кинуть URL как текст и толку будет ноль зато система покажет что "ссылка" есть.

В общем нужно различать
 
Код:
<i>http://www.site.com</i>

и
 
Код:
<a href="http://www.site.com">site</a>
420
05 марта 2007 года
Fobos
197 / / 10.03.2006
shine,
Спасибо, попробую.
RussianSpy,
Наверное в таком случае лучше проверять на наличие всего кода, а не только url?
Эх, жалко что в пхп нет подобия LIKE из мускула...
337
05 марта 2007 года
shine
719 / / 09.06.2006
Цитата: Fobos
Эх, жалко что в пхп нет подобия LIKE из мускула...


В PHP есть регулярные выражения. С их помощью можно все это сделать.

8
05 марта 2007 года
mfender
3.5K / / 15.06.2005
Цитата: Fobos
Эх, жалко что в пхп нет подобия LIKE из мускула...


Зато есть DOM. Проще говоря, разбираешь и упорядочиваешь весь документ, берёшь все узлы с именем "a" и смотришь, что у них в аттрибуте href написано.

Вот ТУТ я как-то привёл пример, вполне подходящий к данной задаче (при небольшом понимании его. Он был написан для другого. Для тэгов img).

А ещё проще так:

 
Код:
$DOC = new DOMDocument();
$DOC->loadHTML(file_get_contents("<требуемый URL>"));
foreach($DOC->getElementsByTagName("a") as $Root){
    echo "{$Root->getAttribute("href")}\n"; //тут можно не выводить ничего, а проверять
}
420
05 марта 2007 года
Fobos
197 / / 10.03.2006
mfender,
Спасибо!
Буду разбираться.

P.S. Так между делом: почему функция ucfirst(); на локалхосте работает, а на сайте нет?
8
05 марта 2007 года
mfender
3.5K / / 15.06.2005
Цитата:
P.S. Так между делом: почему функция ucfirst(); на локалхосте работает, а на сайте нет?


Нужно у хостёра узнать локали, которые они установили и прописать перед работой скриптов функцией setlocale(); Например так: setlocale(LC_ALL, 'ru_RU.cp1251');

Только что нашёл в своих переписках полезный совет своего хостёра: зайти по ssh к себе и выполнить locale -a|grep ru . Это доджно вывести список доступных локалей, установленных у хостёра.

347
05 марта 2007 года
Maniak
319 / / 05.11.2005
а что это за текст в итоге получается при использовании DOM, как вернуть в номальный вид (это даже не кодировка браузера, я уже все перепробовал...): Òðà Г*çèñòîðû ìà ...
 
Код:
$DOC=new DOMDocument("1.0", "windows-1251");
$DOC->loadHTML(file_get_contents("F:\VT0111.HTM"));
foreach($DOC->getElementsByTagName("td") as $Root){
print $Root->nodeValue."<br>\n";
}
420
05 марта 2007 года
Fobos
197 / / 10.03.2006
Ох и долгий-же процесс проверки, блин. 3 минуты ждал, так и не дождался!
271
05 марта 2007 года
MrXaK
721 / / 31.12.2002
2Maniak unicode получается, iconv()...
832
05 марта 2007 года
Carpus
390 / / 14.04.2005
Цитата: Fobos

Короче говоря, думаю не особо заморачиватьсч и проверять на наличие в странице партнёра в html коде моего URL.



Вообще-то неплохо бы проверить не запрещена ли индексация поисковыми системами. Может быть запрещена индексация страницы или каталога в файле robots.txt, страницы в метатеге "robots" или части страницы с помощью тегов <noindex> (только для Яндекса).

Способы проверки тут уже предложили.

347
05 марта 2007 года
Maniak
319 / / 05.11.2005
да что то не переводицца такой глючный текст не во что...
... а все при использовании DOM такой глючный текст получают?как же его вернуть?
8
06 марта 2007 года
mfender
3.5K / / 15.06.2005
Цитата: Maniak
да что то не переводицца такой глючный текст не во что...
... а все при использовании DOM такой глючный текст получают?как же его вернуть?


Когда строишь XML из HTML, DOM указывает кодировку, которая указана в HTML-документе. Частенько кулхацкеры не указывают кодировку, полагаясь на понимание её браузерами. Соответственно, DOM ставит кодировку по умолчанию - латиноамериканскую, кажется iso. Соответственно, в XML получаются такие кабаллистические символы. Если ты знаешь, что в HTML-документе кодировка windows-1251, то создавая DOM-документ, нужно это указывать: $doc = new DOMDocument("1.0", "windows-1251")

347
06 марта 2007 года
Maniak
319 / / 05.11.2005
а если кодировка в документе не стоит? ...пробовал просто $DOC=new DOMDocument(); - не помогает...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог