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
4 Nemo 377 22.5.2018, 7:14
автор: Nemo
Открытая тема (нет новых ответов) Ищу php-программиста, работа с Yii2
0 eduarddis 314 19.5.2018, 15:58
автор: eduarddis
Открытая тема (нет новых ответов) Вопрос по поводу цен на сайте
16 WildWeb8 944 13.5.2018, 17:40
автор: genjnat
Открытая тема (нет новых ответов) Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
20 qpPeW 5742 30.4.2018, 15:34
автор: koroluk1990
Открытая тема (нет новых ответов) Нужен backend разработчик (PHP)
0 Jerard 513 27.4.2018, 1:30
автор: Jerard


 



RSS Текстовая версия Сейчас: 25.5.2018, 4:11
Дизайн