|
|
|
| Здравствуйте, уважаемые программисты.
Есть некий сайт скажем http://сайт.рф/
Не могу получить его контент средствами php.
Пробовал:
1. file_get_contents ('http://сайт.рф/');
2. $handle = fopen('http://сайт.рф/', "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
3. Через сокеты, через Curl
4. gethostbyname ("сайт.рф"); - получить ip и загрузить через него
Вопрос: как загрузить контетн с сайта в зоне РФ? | |
|
|
|
|
|
|
|
для: Filatov_Aleksey
(27.02.2012 в 14:32)
| | Нет, нет... это они выглядят так, а обращаться вам нужно по настоящему имени http://xn--80aswg.xn--p1ai/ | |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 14:45)
| | Встречный вопрос - А как узнать настоящее имя?
Сейчас перешёл по данной вами ссылке http://xn--80aswg.xn--p1ai/ - и произощёл редирект на сайт.рф
По каким принципам перекодируется адреса? | |
|
|
|
|
|
|
|
для: Filatov_Aleksey
(27.02.2012 в 15:11)
| | Я если честно в плагине просмотра HTTP-заголовков подсмотрел. Для конвертации используется алгоритм Punycode, который описан в RFC 3492. Проще всего наверное воспользоваться каким-нибудь онлайн-конвертором, вроде этого http://www.reg.ru/whois/punycode. | |
|
|
|
|
|
|
|
для: cheops
(27.02.2012 в 15:17)
| | Благодарю за помощь.
Есть специальный класс на php для таках дел idna_convert.class.php
Итого:
if (preg_match("/[а-яА-Я]+/",$url))
{//рус хост
include("idna_convert.class.php");
$IDN = new idna_convert(array('idn_version' => '2003'));
$url = iconv("windows-1251","UTF-8",$url);//у меня страницы в win1251, если в utf-8 не надо.
$url=$IDN->encode($url);
}
|
| |
|
|
|