Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Найти ссылку на другом сайте
 
 автор: Minus   (21.03.2009 в 11:40)   письмо автору
 
 

Здравствуйте!

Помогите пожалуйста с моей проблемой.
Я хочу сделать такое:
я пользователям раздаю ссылки, которые пользователи должны установить у себя на сайтах.
Как мне сделать проверку на существование этих ссылок?
Код ненадо. просто на словах объясните :)
Спасибо.

  Ответить  
 
 автор: Minus   (21.03.2009 в 13:17)   письмо автору
 
   для: Minus   (21.03.2009 в 11:40)
 

Подскажите пожалуйста принцип такой проверки.

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 13:47)   письмо автору
 
   для: Minus   (21.03.2009 в 13:17)
 

Смотря какие у вас условаи ))
Ссылку вы будите довать 1 и туже или она может меняться ?

Если будит меняться то вести бвзу вида
URL страницы на которой должна стоять ссылка|ссылка которая должна стоять|
И потом просто по колличеству записей крутите цыкл в котором просто делаете file_get_contents(URL Страницы);
И прегмачем ищете эту ссылку. если найде то ОК ежели нет - тут сами думайте что нужно зделать при отсутствии ссылки !))

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 13:48)   письмо автору
 
   для: Minus   (21.03.2009 в 13:17)
 

Но не забудте что ссылка должна идти в <body> не стоять в ноиндекс и нофолов !
Это тоже проверить прегмачем можно !

  Ответить  
 
 автор: Minus   (21.03.2009 в 13:58)   письмо автору
 
   для: Inviseble_Demon   (21.03.2009 в 13:48)
 

хм. хотел без примеров, но все таки понадобился пример )
Можете показать пример такого скрипта?
Допустим ссылка не меняющаяся.

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 14:03)   письмо автору
 
   для: Minus   (21.03.2009 в 13:58)
 

)) Ктобы мне написал решение моей проблеммы !
Щяс накалякаю...

  Ответить  
 
 автор: Minus   (21.03.2009 в 14:06)   письмо автору
 
   для: Inviseble_Demon   (21.03.2009 в 14:03)
 

Просто я такое делал, но у меня были ошибки.

<?
$fname 
"http://sait.ru/";
echo 
file_get_contents($fname);
?>


Выдавало ошибку.
Прописывал: allow_url_fopen on в php.ini и также не помогало..

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 14:23)   письмо автору
 
   для: Minus   (21.03.2009 в 14:06)
 

Просто я такое делал, но у меня были ошибки.
<?
$fname = "http://sait.ru/";
echo file_get_contents($fname);
?>



Выдавало ошибку.
Прописывал: allow_url_fopen on в php.ini и также не помогало..


Естественно работать не будит !!!!
Вы попробуйте сами зайти на сайт http://sait.ru/ - он не существует !!!

вот так к примеру работать будит
<?
$fname = "http://mail.ru/";
echo file_get_contents($fname);
?>

  Ответить  
 
 автор: Minus   (21.03.2009 в 14:26)   письмо автору
 
   для: Inviseble_Demon   (21.03.2009 в 14:23)
 

Вы меня считаете за дурака какого-то?
Я что незнаю что сайта sait.ru нету.
Я для примера показывал!
ладно. спасибо.

  Ответить  
 
 автор: Minus   (21.03.2009 в 14:10)   письмо автору
 
   для: Inviseble_Demon   (21.03.2009 в 14:03)
 

Да и вообще лучше покажите как получить HTML код с нужного сайта ))
А дальше я сам сделаю.

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 14:21)   письмо автору
 
   для: Minus   (21.03.2009 в 14:10)
 

<?php   
$url_test
='http://afisha.mail.ru/'// ссылка или текст который мы ищем на страницах
$page_test=array('http://google.ru/''http://mail.ru/''http://ya.ru/'); // ссылки которые мы проходим для поиска обратной ссылки

for ($i=0$i<count($page_test); $i++)
{
$str=file_get_contents("$page_test[$i]");
if (
preg_match("#<noindex>.*$url_test.*</noindex>#"$str)) {echo "На сайте $page_test[$i] была найдена ссылка в noindex!<br>";}
if (
preg_match("#<a href=.$url_test.*>.*</a>#"$str)) {echo "На сайте $page_test[$i] была найдена обратная ссылка!<br>";}
else {echo 
"На сайте $page_test[$i] не найдена обратная ссылка!<br>";}
}

?>

  Ответить  
 
 автор: Minus   (21.03.2009 в 14:31)   письмо автору
 
   для: Inviseble_Demon   (21.03.2009 в 14:21)
 

Ошибку выдает на кое-какой сайте.
С Вашими сайтами работает, а когда подставил свои, то не работает..
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/***********/public_html/***.php on line 10

Имеются ли какие-нибудь другие варианты чтобы на всех сайтах работало нормально?

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 15:19)   письмо автору
 
   для: Minus   (21.03.2009 в 14:31)
 

Этот вариант 100% рабочий !
У вас проблемы либо с сервером либо с интернетон !!!

  Ответить  
 
 автор: Inviseble_Demon   (21.03.2009 в 15:44)   письмо автору
 
   для: Minus   (21.03.2009 в 14:31)
 

Мне кажется это у вас бесплатный хостинг !!!
На фришниках закрыты функции скачивания !!!!

  Ответить  
 
 автор: Minus   (23.03.2009 в 12:48)   письмо автору
 
   для: Inviseble_Demon   (21.03.2009 в 15:44)
 

У меня VDS.
Этот вариант, что Вы мне дали - даже плохой.
С ним не все сайты проверяло на наличие ссылок (на некоторых выдавало ошибки).
Я решил проблему сокетами (и уже работает на все 100%, в отличие от вашего способа).

  Ответить  
 
 автор: Dobrynin   (23.03.2009 в 14:06)   письмо автору
 
   для: Minus   (23.03.2009 в 12:48)
 

какой ужас... я в шоке, file_get_content применятся для извлечения данных на локальной машине, а для удалёнки исспользуется curl, вот вам пример:

function DownloadHTML ($url, $timeout=30)
{
        if(!extension_loaded('curl'))
            throw new Exception('Сервис временно недоступен, попробуйте позже');
        $curl = curl_init($url);
        $options = array(
                 CURLOPT_RETURNTRANSFER => true,
                 CURLOPT_TIMEOUT => $timeout,
                 CURLOPT_FAILONERROR => true,
                 CURLOPT_HEADER => false,
                 CURLOPT_FOLLOWLOCATION => true
                );
        curl_setopt_array($curl, $options);
        $html = curl_exec($curl);
        curl_close($curl);
        return $html;
}

  Ответить  
 
 автор: Minus   (23.03.2009 в 14:28)   письмо автору
 
   для: Dobrynin   (23.03.2009 в 14:06)
 

ну а я то здесь причем? Это мне так советовали, но я так не делал =)

Я сделал немного по другому. С использованием сокетов и курл.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования