X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V   1 2 3 4 5 >
Открыть тему
Тема закрыта
> Вопрос по Php, проверка обратной ссылки
Mike1111
Mike1111
Topic Starter сообщение 19.2.2010, 19:20; Ответить: Mike1111
Сообщение #1


Mix Fight M-1
*****

Группа: Active User
Сообщений: 722
Регистрация: 21.9.2009
Поблагодарили: 385 раз
Репутация:   73  


Доброго времени суток! В программировании я ноль, поэтому прошу сразу не кидаться помидорами rolleyes.gif
Вопрос таков: есть сайт, при добавлении материала указывается сайт автора, на котором должна стоять обратная ссылка. Как реализовать проверку этой ссылки?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
life
life
сообщение 19.2.2010, 19:49; Ответить: life
Сообщение #2


Завсегдатай
*****

Группа: Active User
Сообщений: 921
Регистрация: 28.1.2009
Поблагодарили: 147 раз
Репутация:   -4  


$code = file_get_contents('http://backlink.ru');
$back = preg_match('/yousite.ru/i',$code);

if ( $back == TRUE) {
echo 'Обратная ссылка есть';
} else {
echo 'Обратной ссылки нет';
}

Сообщение отредактировал life - 19.2.2010, 20:31


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seotouch
seotouch
сообщение 19.2.2010, 20:00; Ответить: seotouch
Сообщение #3


Прощайте!
*****

Группа: Active User
Сообщений: 998
Регистрация: 7.1.2009
Поблагодарили: 405 раз
Репутация:   45  


$siteContent = file_get_contents('Здесь_Страница_На_проверку');
// куда ведет ссылка
$followTo = 'линк';
if (strpos($siteContent, $followTo) > 0){
$backLink = true;
} else {
$backLink = false;
}
// .............. дальше уже манипулируем как хотим

и регулярки нах не нужны smile.gif

Юзать примерно так:

$siteContent = file_get_contents('http://yandex.ru');
// куда ведет ссылка
$followTo = 'http://rasp.yandex.ru/';
if (strpos($siteContent, $followTo) > 0){
$backLink = true;
} else {
$backLink = false;
}
// .............. дальше уже манипул

Сообщение отредактировал seotouch - 19.2.2010, 20:02


--------------------
Навсегда ушел


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isleman
isleman
сообщение 19.2.2010, 20:02; Ответить: isleman
Сообщение #4


Бывалый
****

Группа: User
Сообщений: 408
Регистрация: 16.10.2009
Из: НН
Поблагодарили: 83 раза
Репутация:   16  


Mike1111, выше life привел вам вполне работоспособный пример
У меня есть только три уточнения:
1. Очень существенное, проверку на простое вхождение адресса сайта делать нельзя, он может быть на странице но не являться ссылкой. Нужно делать проверку на наличие кода ссылки то есть
preg_match('/yousite.ru/i',$code[1]); замениться на строку вида preg_match('<a ... yousite.ru ... <\/a>/i',$code[1]);, где вместо троеточия будет более полные условия регулярки
2. Существенное, что у функции file_get_contents() может быть закрыто обращения к внешним ресурсам хостером;
3. Логическое, что в условии if ( $back == TRUE) проверка на равенство лишняя, так как выше $back принимает логическое значение, а оператор условия как раз и работает с логическими значениями. То есть условие правильно писать так: if ($back)

seotouch, приведенный вами пример с функцией strpos() конечно имеет право на жизнь, но при его использование из за вышеозначенного мной пункта 1, не имеет гибкости так как необходимо точно знать формат ссылки(ведь внутри нее могут быть и другие атрибуты кроме href и в разном порядке).

Сообщение отредактировал isleman - 19.2.2010, 20:12


--------------------


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seotouch
seotouch
сообщение 19.2.2010, 20:04; Ответить: seotouch
Сообщение #5


Прощайте!
*****

Группа: Active User
Сообщений: 998
Регистрация: 7.1.2009
Поблагодарили: 405 раз
Репутация:   45  


(isleman @ 19.2.2010, 19:02) *
Mike1111, выше life привел вам вполне работоспособный пример
У меня есть только два уточнения:
Существенное, что у функции file_get_contents() может быть закрыто обращения к внешним ресурсам хостером;
Логическое, что в условии if ( $back == TRUE) проверка на равенство лишняя, так как выше $back принимает логическое значение, а оператор условия как раз и работает с логическими значениями. То есть условие правильно писать так: if ($back)

Ну, и добавим, что
$back = preg_match('/yousite.ru/i',$code[1]); - неверно
$back = preg_match('/yousite.ru/i',$code); - верно


--------------------
Навсегда ушел


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
life
life
сообщение 19.2.2010, 20:14; Ответить: life
Сообщение #6


Завсегдатай
*****

Группа: Active User
Сообщений: 921
Регистрация: 28.1.2009
Поблагодарили: 147 раз
Репутация:   -4  


(seotouch @ 19.2.2010, 19:04) *
Ну, и добавим, что
$back = preg_match('/yousite.ru/i',$code[1]); - неверно
$back = preg_match('/yousite.ru/i',$code); - верно

не всегда. сегодня столкнулся с проблемой, что в $code[0] ничего нет, т.е. пусто ( print_r($code) )

3. Логическое, что в условии if ( $back == TRUE) проверка на равенство лишняя, так как выше $back принимает логическое значение, а оператор условия как раз и работает с логическими значениями. То есть условие правильно писать так: if ($back)


мне так удобнее smile.gif
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isleman
isleman
сообщение 19.2.2010, 20:15; Ответить: isleman
Сообщение #7


Бывалый
****

Группа: User
Сообщений: 408
Регистрация: 16.10.2009
Из: НН
Поблагодарили: 83 раза
Репутация:   16  


(seotouch @ 19.2.2010, 19:04) *
Ну, и добавим, что
$back = preg_match('/yousite.ru/i',$code[1]); - неверно
$back = preg_match('/yousite.ru/i',$code); - верно

точно, не увидел видимо пример выдернут откуда то и на скорую руку откорректирован


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seotouch
seotouch
сообщение 19.2.2010, 20:16; Ответить: seotouch
Сообщение #8


Прощайте!
*****

Группа: Active User
Сообщений: 998
Регистрация: 7.1.2009
Поблагодарили: 405 раз
Репутация:   45  


(life @ 19.2.2010, 19:14) *
не всегда. сегодня столкнулся с проблемой, что в $code[0] ничего нет, т.е. пусто ( print_r($code) )



мне так удобнее smile.gif

Ну, возможно следует документацию прочитать?

$code[0] - первый символ полученной строки. .. sleep.gif


--------------------
Навсегда ушел
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
isleman
isleman
сообщение 19.2.2010, 20:19; Ответить: isleman
Сообщение #9


Бывалый
****

Группа: User
Сообщений: 408
Регистрация: 16.10.2009
Из: НН
Поблагодарили: 83 раза
Репутация:   16  


(life @ 19.2.2010, 19:14) *
мне так удобнее

ну да наглядние, но происходит лишнее действие в программе, конечно кушает оно времени и памяти мало, но если так организованых проверок много то они выливаются в существенную сумму. Всетаки не стоит забывать что PHP это интерпретатор, а не оптимизирующий компилятор.
(life @ 19.2.2010, 19:14) *
сегодня столкнулся с проблемой, что в $code[0] ничего нет, т.е. пусто ( print_r($code) )

не сталкивался, а можно более конкретный пример?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
seotouch
seotouch
сообщение 19.2.2010, 20:23; Ответить: seotouch
Сообщение #10


Прощайте!
*****

Группа: Active User
Сообщений: 998
Регистрация: 7.1.2009
Поблагодарили: 405 раз
Репутация:   45  


(isleman @ 19.2.2010, 19:19) *
ну да наглядние, но происходит лишнее действие в программе, конечно кушает оно времени и памяти мало, но если так организованых проверок много то они выливаются в существенную сумму. Всетаки не стоит забывать что PHP это интерпретатор, а не оптимизирующий компилятор.

не сталкивался, а можно более конкретный пример?

Попробуйте загрузить ч-з file_get_contents сайт, у которого первый символ равен пробелу smile.gif


--------------------
Навсегда ушел
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
5 страниц V   1 2 3 4 5 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) php скрипты любой сложности / диз+верстка (адаптивно)
любые задачи на php - автоматизация, парсинг, работа с БД
1 affrodita 482 8.12.2017, 17:40
автор: affrodita
Открытая тема (нет новых ответов) Вопрос к знатокам Instagram
20 SEOMR 4136 30.11.2017, 14:25
автор: DiscordPro
Открытая тема (нет новых ответов) Вопрос про Телеграмм
18 syd2010 1112 28.11.2017, 14:25
автор: PostBrigada
Открытая тема (нет новых ответов) Вопрос по seo для интернет магазина
куда девать продвинутые товары, которые уже не выпускают
13 viktormerke 2339 25.11.2017, 20:06
автор: Mikki
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыАrticle manager вопрос
0 Smile3D 437 24.11.2017, 18:27
автор: Smile3D


 



RSS Текстовая версия Сейчас: 12.12.2017, 12:51
Дизайн