optik77, никакие привилегии не нужны.
По сути получается следующая картина: мы с помощью file_get_contents получаем страницу яндекса и записывает это всё в переменную. Далее, в заголовке указываем, что на выходе у нас должен получиться JS-файл (text/javascript), хотя это не обязательно. Потом мы генерируем название ф-ции, которая будет вызвана (в нашем случае - yandexCallback), и в качестве параметра передаём в неё то, что получили от яндекса. В итоге у нас получается JS файл примерно такого вида: yandexCallback("<html><head>....</head><body>....</body></html>"); И мы подключаем этот файл предварительно объявив нашу ф-цию yandexCallback, и она будет вызвана из того самого файла. Как-то так. P.S.: ещё нужно экранировать или удалить переносы строк, иначе будет ошибка: yandexCallback("<html><head>... </head><body>....</body></html>"); //Syntax error Можно сделать вот так: echo 'yandexCallback("' . addslashes(preg_replace(/[\n\r\f]+/, '', $content)) . '")'; |
Цитата:
Чужой, это не ваш, сервером Яшки вы управлять не можете, и распоряжаться его контентом не получится. |
Ruslan_xDD,
Прикол в том, что сделал я все как велели. Создал файл get_content.php Сперва указал в качестве урла некий другой адрес, проверил работу, вызвал пхп, получил html код запрашиваемого ресурса. Указал свой нужный адрес сайта и получил в качестве кода некий штмл код из трех строк с тайтлом этого сайта и в боди указано 'невозможно выполнить запрошенную операцию'. Т.е видимо их сайт был готов что я функцией file_get_contents полезу к ним за кодом и аккуратно послали меня. Help! Как еще можно их обмануть и выцепить злосчастный исходник? |
Цитата:
|
laimas,
Подскажите пожалуйста, как понять какой контекст составить? |
$stream = curl_init(); curl_setopt($stream, CURLOPT_HEADER, 0); curl_setopt($stream, CURLOPT_USERAGENT, 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51'); curl_setopt($stream, CURLOPT_URL, 'http://yandex.ru/'); curl_setopt($stream, CURLOPT_TIMEOUT, 10); curl_setopt($stream, CURLOPT_RETURNTRANSFER, 1); curl_setopt($stream, CURLOPT_FOLLOWLOCATION, 1); $content = curl_exec($stream); curl_close($stream); |
Контекст собственно опции запроса, а вот что проверяет ресурс запрашиваемый, это нужно определять, это могут быть и куки, и реферер... Для file_get_contents контекст задается так.
Но в с случае кук лучше использовать cURL, и почитать об этом: просто - http://www.odmin4eg.ru/2008/curl-cookie-cookies/ продвинуто - http://habrahabr.ru/post/133191/ Экспериментируйте пока не установите, что требует сервер. |
Уважаемые, получилось с помощью курла!
Но только в ie.....*плач* В файерфоксе пустой лист Причем если в файрфоксе открыть мой сайт с пхп скриптом то он на экране отображает весь код: GetHTMLcode("<html>...</html>") А при отработке моей штмл страницы с рабочего стола-пустота, хотя в интернет эксплорере все работает! ? |
Цитата:
Это как, страницу с РНР сценарием? Ну а с чего бы оно выполнялось, для этого нужно локальный сервер иметь. |
Разобрался, в файрфоксе не работало из за кодировки самого файла. Спасибо
|
Часовой пояс GMT +3, время: 21:12. |