DriverCat

DriverCat
Рейтинг
116
Регистрация
10.04.2008
AGRESSOR:
Ситуация следующая
Есть ссылка такого формата

http://site.ru/category/12484d5d0ff56817e5dcaff77a71bbba/file.flv


На денвере он выдирается нормально, а вот на хостинге
место 12484d5d0ff56817e5dcaff77a71bbba выдрает почему-то cae06ca77355854018b7bb184bc60b46

Хотя cae06ca77355854018b7bb184bc60b46 этого нет на странице.
Вот сама регулярка

preg_match_all("/(?<=category\/)([a-z0-9]+)(\/[A-Za-z\_0-9]+)/", $content, $link);

может это специально защита такая от парсинга - яваскриптом подменяются ссылки?

проверьте firebugom итоговую страницу

не пойму, походу что-то не добавляется что-ли в файл, чтобы он в програмах определялся как utf-8 - так как открываю его в блокноте - все нормально, в notepad++ - криво (пишет ANSI, а не ANSI as UTF*), как только кодировать в utf8 - становится нормально. что кривое - скрипт, сервак, php или что?

VHS-1980:
........... потер нафиг....
локали настройте.

вот что стоит setlocale(LC_ALL,"ru_RU.UTF-8"); Debian

VHS-1980:
Попробуйте в cron задание как GET 'http://адрес_скрипта_в_браузере'. Разные ли будут результаты?

дык я через браузер - щас проверил строку для записи mb_detect_encoding - UTF8,а записался криво, посмотрел эту статью в вики http://ru.wikipedia.org/wiki/%CA%F0%E0%EA%EE%E7%FF%E1%F0%FB - получается типа перед записью строка в utf-8, а в самом файле после записи - уже как Windows-1251, как она так слетает?

---------- Добавлено 20.12.2012 в 14:06 ----------

так вот ща через notepad ++ сделал не преобразовать, а кодировать в UTF8 без BOM - стал читаемым текст, получается что данные то в utf-8,а вот файл сохраняется как ANSI - так чтоли? как мне это исправить?

VHS-1980:
пока не понятна закономерность - ничего понять нельзя. Что-то с данными, а что - хз.

mysql_query ("set character_set_client='utf8'"));
mysql_query ("set character_set_results='utf8'"));
mysql_query ("set collation_connection='utf8_general_ci'"));

возможно поможет.

все это уже давно стоит, так как всегда разбирался с кодировками так как проблема была закономерна, а тут вот такое...

VHS-1980:
Я имел в виду настройки кодировок в htaccess, но врядли проблема в этом.
Какая кодировка в БД? SET NAMES принудительно сделайте перед запросом

да сделано давно уже.utf-8 в базе. понять хотя бы из-за чего не каждый раз такое происходит...

VHS-1980:
Если файл 1 и в него идет запись в разных кодировках - разные кодировки имеют данные, записываемые скриптом.

цикле данные на http://www.php.su/functions/?mb-detect-encoding проверьте

дело в том, что этот скрипт работает ночью по крону, сейчас запустил его вручную, тот файл что был кривым стал нормальным, а вот други стали кривыми, то есть не зависит от данных как я понимаю, что может быть с настрофками не то?

VHS-1980:
Я честно - не вижу ни файла с инклудом, ни цикла, ничего. Насильно перекодируйте данные функцией iconv, и посмотрите что будет. Если в новые файлы будет писаться нормально - проблема во входных данных. Если нет - то в чем-то другом. Но не в коде, а в настройках.

такой вот код:


while ($list = mysql_fetch_assoc($query)) { //print_r($list);
$htmlTemplate = file_get_contents(Doska::TEMPLATE);
$e = fopen($filePath,'w+');
fputs($e,$htmlTemplate);
fclose($e);
}

какие можно посмотреть настройки?

VHS-1980:
А данные то в какой кодировке? iconv перекодируйте насильно перед записью и посмотрите результат

данные в utf-8, тут дело в том, что даже те куски, которые инклудятся из одного и того же файла в utf-8 один раз пишутся нормально, а другой плохо.

LovelAss:
Чтобы тянулось по ширине, задайте body свойство display: inline-block;. Хотя не понимаю, если честно, нафига Вы к этому боди привязались, можно ведь обернуть таблицу в div, как советовали выше, и не париться.

Спасибо! Наконец-то. обернул все в

<div style="display: inline-block;"
и все теперь отлично тянется!!!
Всего: 246