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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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


$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


$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


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


(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


(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


(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


(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


(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


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

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

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


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3397 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1240 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44899 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1889 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3402 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 19.4.2024, 3:50
Дизайн