|
Импорт удалённого кода
|
|
| Andrano | Дата: 25 Марта 2010, 14:54 | Сообщение # 1 |  ● ● ● ● ● 144 сообщения Статус: Offline | Есть страница http://besttop.org/1t1.php Нужно её импортировать сюда: http://mirtv.org/index/teleprogramma/0-4 Делаю импортом кода, и получается что на импортированной странице сбивается кодировка (ромбики) и поправить ситуацию сменой на другую кодировку не получается. // К исходной странице http://besttop.org/1t1.php доступ имеется Возможно кто-то сталкивался, какие есть выходы из этой ситуации? | | |
|
| Бармалей | Дата: 25 Марта 2010, 14:58 | Сообщение # 2 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Ну тогда в чем проблема? Выдавайте содержимое в юникоде. Можно JSON прикрутить.
 | | |
|
| Andrano | Дата: 25 Марта 2010, 16:08 | Сообщение # 3 |  ● ● ● ● ● 144 сообщения Статус: Offline | Не знаю что такое JSON. А насчёт выдавать содержимое в юникоде: Эта страница имеет такой код: Quote <hr>РТР Планета-1<hr><div id="ccch1p"> <TABLE class=main cellSpacing=0 cellPadding=0 width="99%" border=0><tr valign="top"><td width="5%" class="left"></td><td width="95%" class="left"> <?php $url1 = "http://www.teleguide.info/kanal300057.html"; $unique_start1 = "</b> "; $unique_end1 = "<br></td></tr><tr><td></td>"; function weather1($url1, $unique_start1, $unique_end1) { $code1 = file_get_contents($url1); preg_match('/'.preg_quote($unique_start1, '/').'(.*)'.preg_quote($unique_end1, '/').'/Us', $code1, $match1); return $match1[1]; } echo weather1($url1, $unique_start1, $unique_end1); ?> <br></td></tr><tr><td></td><td></td></tr></table> </div> Всё это дело я в "блокноте" через "сохранить как" сохраняю в утф-8, при этом ромбики получаются ещё раньше - т.е. без импорта. При этом на импортированной странице они тоже не пропадают. Как видно выше http://besttop.org/1t1.php собирает определенный кусок кода со страницы http://www.teleguide.info/kanal300057.html А вот уже к странице http://www.teleguide.info/kanal300057.html доступа нет, и она в кодировке windows-1251. Возможно дело в этом... Добавлено (25 Март 2010, 16:08) --------------------------------------------- Да, определённо, проблема в http://www.teleguide.info/kanal300057.html - если делать импорт прямо этой страницы, то тоже будут те же ромбики. В общем есть страница http://besttop.org/1t1.php где человекопоянтый текст. Как мне этот текст автоматом переносить на свой ucoz-овский сайт - существуют ли решения? | | |
|
| Task | Дата: 25 Марта 2010, 16:09 | Сообщение # 4 | ● ● ● ● ● 703 сообщения Статус: Offline | и она в кодировке windows-1251. Возможно дело в этом... | | |
|
| Andrano | Дата: 25 Марта 2010, 16:11 | Сообщение # 5 |  ● ● ● ● ● 144 сообщения Статус: Offline | Quote Да, определённо, проблема в http://www.teleguide.info/kanal300057.html - если делать импорт прямо этой страницы, то тоже будут те же ромбики. Добавлено (25 Март 2010, 16:11) --------------------------------------------- Проблема понятна, интересует решение  | | |
|
| Бармалей | Дата: 25 Марта 2010, 16:13 | Сообщение # 6 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | iconv. P.S. И не забыть указать правильную кодировку в заголовке.
 | | |
|
| Andrano | Дата: 25 Марта 2010, 16:23 | Сообщение # 7 |  ● ● ● ● ● 144 сообщения Статус: Offline | Похоже на то что нужно, но угол наклона моих рук видимо меня подводит. Вот как стал выглядеть код: Code <html> <head><title>1</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <hr>РТР Планета-1<hr><div id="ccch1p"> <TABLE class=main cellSpacing=0 cellPadding=0 width="99%" border=0><tr valign="top"><td width="5%" class="left"></td><td width="95%" class="left"> <?php $url1 = "http://www.teleguide.info/kanal300057.html"; $unique_start1 = "</b> "; $unique_end1 = "<br></td></tr><tr><td></td>"; function weather1($url1, $unique_start1, $unique_end1) { $code1 = file_get_contents($url1); preg_match('/'.preg_quote($unique_start1, '/').'(.*)'.preg_quote($unique_end1, '/').'/Us', $code1, $match1); return $match1[1]; } echo weather1($url1, $unique_start1, $unique_end1); echo iconv("windows-1251", "UTF-8", "error"); ?> <br></td></tr><tr><td></td><td></td></tr></table> </div> </body> </html> Я не сильно знаком с синтаксисом, поправь где ошибся, пожалуйста. | | |
|
| Task | Отредактировал Task - Четверг, 25 Марта 2010, 16:25 Дата: 25 Марта 2010, 16:25 | Сообщение # 8 | ● ● ● ● ● 703 сообщения Статус: Offline | Andrano, все правильно. Если false, значит это не windows-1251. | | |
|
| Бармалей | Дата: 25 Марта 2010, 16:38 | Сообщение # 9 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Ложь.Code [php]<?php header('Content-type: text/html; charset=utf-8'); ?><html> <head><title>1</title></head> <body> <hr>РТР Планета-1<hr><div id="ccch1p"> <TABLE class=main cellSpacing=0 cellPadding=0 width="99%" border=0><tr valign="top"><td width="5%" class="left"></td><td width="95%" class="left"> <?php $url1 = "http://www.teleguide.info/kanal300057.html"; $unique_start1 = "</b> "; $unique_end1 = "<br></td></tr><tr><td></td>"; function weather1($url1, $unique_start1, $unique_end1) { $code1 = file_get_contents($url1); $code1 = iconv("windows-1251", "UTF-8", $code1); preg_match('/' . preg_quote($unique_start1, '/') . '(.*)' . preg_quote($unique_end1, '/') . '/Us', $code1, $match1); return $match1[1]; } echo weather1($url1, $unique_start1, $unique_end1); ?> <br></td></tr><tr><td></td><td></td></tr></table> </div> </body> </html>
 | | |
|
| Task | Дата: 25 Марта 2010, 17:01 | Сообщение # 10 | ● ● ● ● ● 703 сообщения Статус: Offline | Бармалей, а, я думал он хочет проверить работу функции перекодирования... | | |
|
| Бармалей | Дата: 25 Марта 2010, 17:03 | Сообщение # 11 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | Бармалей, а, я думал он хочет проверить работу функции перекодирования... И как ее проверять на строке, которая заведома в юникоде?
 | | |
|
| Andrano | Дата: 25 Марта 2010, 17:03 | Сообщение # 12 |  ● ● ● ● ● 144 сообщения Статус: Offline | По поводу Code <?php header('Content-type: text/html; charset=utf-8'); ?> ругается, а сама функция не работает... Как я понял отсюда http://www.php.su/functions/?iconv - incov задаётся тремя значениями, последнее из которых - сообщение об ошибке. А в коде стоит Quote "windows-1251", "UTF-8", $code1 Точно всё правильно? | | |
|
| Task | Дата: 25 Марта 2010, 17:04 | Сообщение # 13 | ● ● ● ● ● 703 сообщения Статус: Offline | Бармалей, волшебной палочкой | | |
|
| Andrano | Дата: 25 Марта 2010, 17:05 | Сообщение # 14 |  ● ● ● ● ● 144 сообщения Статус: Offline | Сейчас тут - http://besttop.org/1t1.php - стоит тот код что ты последним публиковал | | |
|
| Бармалей | Дата: 25 Марта 2010, 17:08 | Сообщение # 15 | ● ● ● ● ● Тиран 7772 сообщения Статус: Offline | последнее из которых - сообщение об ошибке. Кто сказал? В описании вроде ясно сказаноQuote string iconv ( string in_charset, string out_charset, string str ) Производит преобразование кодировки символов строки str из начальной кодировки in_charset в конечную out_charset. Возвращает строку в новой кодировке, или FALSE в случае ошибки. ругается, а сама функция не работает... Сохранять в юникоде без BOM. И перед <?php не должно быть ни одного символа.
 | | |
|
| Andrano | Дата: 25 Марта 2010, 17:36 | Сообщение # 16 |  ● ● ● ● ● 144 сообщения Статус: Offline | Спасибо огромное! Заработало  | | |
|