LINUX.ORG.RU

PHP проблемы с кодировкой

 


0

1

Пытаюсь написать скрипт, для открытия других сайтов, оставляя ип-адрес сервера на котором запущен скрипт:

<?php
$url = $_GET['showsite'];
if (!empty($url)) {
$site = file_get_contents($_GET['showsite']);
echo $site;
}
else {
echo "<h1>Переменная адреса не заполнена</h1>
<strong>Добавьте к адресу:</strong> ?showsite=адрес сайта
<br>Пример: antiblock.php?showsite=http://mail.ru/";
}
?>
Так вот, он работает, но некоторые сайты открывает с неверной кодировкой (символами), как побороть?



Последнее исправление: makeB (всего исправлений: 2)

Ответ на: комментарий от makeB

Чтобы решить это для общего случая, тебе придется сделать следующее:
1. Твой сервер не должен отдавать в заголовках кодировку.
2. Тебе нужно будет считывать кодировку отдаваемую внешним сервером в заголовках (Content-Type) и подставлять в твоем скрипте (http://php.net/manual/en/function.header.php).
Хотя может пункт №1 и не обязателен.

pi11 ★★★★★
()
Последнее исправление: pi11 (всего исправлений: 1)

И правильно делает. У тебя небось сервер отдает в UTF-8, а сайты которые пытаешься открыть, в какой-нибудь богомерзкой windows-1251. Так вот либо конверть, либо отдавай в той кодировке, в которой получаешь сам.

VirRaa ★★★
()
Ответ на: комментарий от VirRaa

Так вот либо конверть, либо отдавай в той кодировке, в которой получаешь сам.

Проще заголовки поменять, т.к. иначе придется анализировать кодировку, а эта задача сложнее, чем просто хедер поменять.

pi11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.