@pinol58

Почему на php криво выводит из файла?

В файле keys.txt ключи русские. каждый с новой строки.
При применение скрипта выходит не понятно что(((c9743a40e96c4318924cf3518c8060b2.png
Подскажите как исправить, пожалуйста!
<?php
error_reporting(0);

$data = file('keys.txt');
$seek = file('keys.ini');
$step = 10;

$i= 0;
$out = array();
//$out = mb_strtolower($out, 'UTF-8');

foreach ($data as $key => $val) {
    $tmp = trim($val);
    if (!empty($tmp)) { $out[$i] = str_replace(' ', '-', $tmp); $i++; }
}

if ($step > count($out)) {
    foreach ($out as $key => $val) {
        echo $val, '<br />';
    } die();
}

if ($seek[0] >= count($out)) $seek[0] = 0;
for ($k=0; $k<$step; $k++) {


    $test = $out[$seek[0]];
    $test = str_replace('+', ' ', $test);
    $test = str_replace('%20', ' ', $test);
    $test = str_replace('-', ' ', $test);
    echo '<li><a href="/',$out[$seek[0]],'.html" ',  'title="',$test,'">',$test,'</a>','</li>';
	 echo "\r\n";
    $seek[0]++; if ($seek[0] == count($out)) $seek[0] = 0;
}

file_put_contents('keys.ini', $seek[0]);
?>
  • Вопрос задан
  • 215 просмотров
Решения вопроса 1
ernesto77
@ernesto77
php, rb, py, js, webdev
надо сохранить файл keys.txt в кодировке UTF8 with BOM. В редакторе посмотри во вкладке "Файл" там нужно поискать такую опцию
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Почему на php криво выводит из файла?
Думаю, что это не PHP так криво выводит, а Ваш браузер так криво отображает, т.к. русские буквы не той кодировке, в которой работает браузер. Попробуйте изменить кодировку в браузере на ту, в которой сохранен файл, который Вы читаете с помощью PHP.

P.S. Так же, если у Вас в качестве веб-сервера, на котором это тестируется - Apache - в нем можно задать кодировку через файл .htaccess, расположенный в корне сайта (создать новый или добавить эту строчку в уже существующий), подробности описаны тут.

А так же можно воспользоваться PHP-заголовком, или попробовать отправить в браузер мета-тег с кодировкой, как обсуждалось тут.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Кодировка файла keys.txt не совпадает с заголовками отправляемыми в браузер.
Выясните какая кодировка используется в файле (или измените ее).
И проверьте кодировку в настройках вебсервера, либо укажите прямо перед отправкой
header("Content-Type: text/html; charset=utf-8");?
Ответ написан
Комментировать
Arris
@Arris
Сапиенсы учатся, играя.
Читайте: кодировки

Русские-то русские, а кодировки разные. У вас keys.ini наверняка в win1251, а проект в UTF-8. Отсюда и такой "странный" результат
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы